问题标签 [distributed-tracing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2311 浏览

microservices - Zipkin 和 Elastic Stack(ELK)的区别?

Spring Cloud Sleuth 用于创建 traceIds(跨服务请求唯一)和 spanId(一个单元工作相同)。我的想法是 Zipkin 服务器用于跨服务获取这些日志的集体可视化。但我知道并使用过 ELK 堆栈,它必然具有相同的功能。我的意思是我们可以使用 ELK 堆栈将具有相同 traceId 的请求分组以进行可视化。但我确实看到有人尝试使用 Sleuth、ELK 和 Zipkin 来实现分布式跟踪,如这些示例(Link1Link2)。但是,如果已经有 ELK 用于日志收集和可视化,为什么我们还需要 Zipkin?我在哪里失踪?

0 投票
1 回答
506 浏览

monitoring - OpenTracing 和 Zipkin 之间的主要区别是什么?

我正在研究分发跟踪工具。

发现有两个很受欢迎。

它们之间的主要区别是什么?你会推荐哪一个?你会推荐其他开源分布式跟踪工具吗?

0 投票
0 回答
186 浏览

spring - jpa存储库级别的spring sleuth @NewSpan注释

问题:我无法使用此注释启用我的 jpa 存储库接口。它抱怨'@NewSpan' not applicable to type。我想,它只是不适用于接口,需要具体的实现,这对动态生成的 jpa 函数不利。任何指示或解决方案?

0 投票
3 回答
1689 浏览

azure - 如果未发送客户端,如何在 APIM 入站策略中获取/设置 Traceparent 标头?

我们想要关联 Azure APIM 和 Application Insight 中的请求。对于 API,我们有一个在入站和出站部分使用发送请求的策略。我们正在使用W3C 分布式跟踪 Azure规范

现在,如果客户端不发送 traceparent 标头,则入站中的发送请求在应用程序洞察力中没有关联。

如果我们尝试在入站策略中设置 traceparent 标头,它将在策略的后端部分被覆盖。看起来 APIM 检查传入的请求,如果没有设置 traceparent,它将生成它。但是我们不能在策略中的传入请求中添加标头(只读)。

示例政策

痕迹

0 投票
1 回答
1274 浏览

c# - ASP.NET Core Web API 和 Jaeger - 我可以更改顶级 Span 名称吗?

我正在为 ASP.NET Core Web API 进行 Jaeger Tracing 的一些原型设计,并且我能够使用入门文档中描述的 Jaeger 的多合一实例Startup.ConfigureServices()以及我的方法中的以下代码使其工作:

要使用所有这些,您需要在项目中添加一些包:

  1. dotnet add package OpenTracing.Contrib.NetCore --version 0.6.2
  2. dotnet add package Jaeger --version 0.4.1

所以这工作正常,我的 Jaeger Search UI (http://localhost:16686/search) 中显示了带有 Spans 的 Trace,但它只显示带有我的服务名称的 Trace(在本例中为“MySuperCoolWebAPI”),后跟“ HTTP 获取”:

jaeger ui截图

在那里看到“HTTP GET”并不是非常有用。相反,我想查看 Web API 操作名称或其他内容,让我知道这到底是什么类型的请求。

正如您从上面的示例代码中看到的那样,我尝试设置HttpHandlerDiagnosticOptions.OperationNameResolver但这只会影响HttpClient我从我的 Web 服务中进行的调用。它似乎不会影响与我收到的请求关联的 Trace/Span 的命名方式。

我还尝试使用这样的 GlobalTracer 在我的 Web API Controller 方法中设置 Span OperationName ,但这会影响内部跨度,而不是 Jaeger UI 搜索结果页面上显示的主 Trace/Span:

在这里,您可以看到第一个子 Span 的名称设置为我强制设置的名称,但主级别 Span(我更改的那个的父级)不受影响:

带有子跨度的 jaeger ui 屏幕截图

有没有办法可以使用 Jaeger C# Client 设置主 Span 的操作名称?

另外,我正在使用 .NET Core 3.1,以防万一。

0 投票
1 回答
294 浏览

spring - spring boot with p6spy sleuth traces 解读

我们一直在我们的微服务中使用 spring cloud sleuth 进行跟踪。我们还从 spring 数据存储库连接、获取和查询中添加了启用的 jdbc 级别跨度。我看到一些奇怪的 jps 名称痕迹,jdbc:/datasource/connection其中似乎包括我的一些服务特定跨度。我认为父跨度仅包括它称为孩子的跨度。

在此处输入图像描述

venderproxy, profile:fetchorganization是我的其他服务的 grpc 端点,为什么jdbc:/datasource/connectionspansupplier包括我的一些服务?

0 投票
1 回答
1614 浏览

grpc - 如何使用 opentracing api 在 grpc 客户端请求中收集和传递 b3 传播标头?

我正在使用带有 jaegar 跟踪器的https://github.com/opentracing-contrib/java-grpc在我的 grpc 客户端程序中启用跟踪。现在我想使用 istio 服务网格来处理服务器端的跟踪。https://istio.io/latest/docs/tasks/observability/distributed-tracing/overview/。因此,grpc 客户端现在需要将适当的跟踪 HTTP 标头与每个 grpc 客户端请求一起发送,以便 istio 可以将这些指标发送给 Jaegar。有没有人有一个在 grpc 客户端中获取跟踪跨度信息并在 grpc 客户端请求中包含相应的 b3 传播标头的工作示例?

需要在 java/C# grpc 客户端请求中传递以下 http 标头:

  • x-请求-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-parentspanid
  • x-b3-采样
  • x-b3-标志
  • x-ot-span-上下文

谢谢。

0 投票
1 回答
211 浏览

azure - Azure AKS 是否支持 Sleuth 跟踪?

我有一个应用程序将使用 Spring Cloud Sleuth 提供跟踪数据。我想将此跟踪数据发送到 Azure Application Insights。

从 Azure 的文档中,我了解到,如果我将应用程序部署到 Azure Spring Cloud,则本机支持 Sleuth 跟踪。但是,该应用程序将改为在 Azure AKS 中运行。是否仍然可以在 AKS 版本的 Application Insights 中查看 Sleuth 跟踪数据?

我对 Azure(或一般的云服务)没有太多经验,所以如果问题有点愚蠢,我深表歉意:)

0 投票
1 回答
233 浏览

typescript - 我们如何指定opentelemetry中的跟踪数

我正在使用 opentelemetry 来检测 nest js 应用程序。假设要发出的请求数量很大。那么我们如何指定要收集的跟踪数量。

0 投票
1 回答
854 浏览

amazon-web-services - AWS X-RAY [错误] 发送分段批处理失败,原因是:NoCredentialProviders:链中没有有效的提供程序。已弃用

我正在使用带有 Fargate 的 X-Ray 守护程序。不幸的是,在守护进程的日志中,我看到如下错误:

[错误] 发送分段批处理失败:NoCredentialProviders:链中没有有效的提供者。已弃用。有关详细消息,请参阅 aws.Config.CredentialsChainVerboseErrors Warn] 将额外批次的发送延迟 0 秒

AWS X-Ray 与 IAM 一起使用:权限:AWSXrayFullAccess

我已经检查过: