问题标签 [opentracing]

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 回答
349 浏览

spring-3 - 如何使用 xml 手动配置 OpenTracing Spring Web Instrumentation

我继承了一个遗留的 Spring3 应用程序,我正在尝试向它添加 Lightstep 检测。我无法转换此处找到的手动配置说明。 https://github.com/opentracing-contrib/java-spring-web

简而言之,我需要将下面的代码块转换为 xml 等效项。

我已经使用以下依赖项成功创建了我的 Lightstep Tracer bean。

0 投票
0 回答
244 浏览

java - OpenTracing 与 Completable Futures

如何将 CompleatableFuture 与其父跟踪器 span 关联?

我得到了整个预定方面的跨度。我需要在里面或周围做什么

fun runTaskOne()

让它工作?

0 投票
2 回答
3264 浏览

python - 获取已发送请求的跟踪 ID

我正在为 GRPC 使用 Open Tracing Python 库,并尝试在此处构建示例脚本:https ://github.com/opentracing-contrib/python-grpc/blob/master/examples/trivial/trivial_client.py .

通过拦截通道发送请求后,如何找到请求的 trace-id 值?我想用它来查看 Jaeger UI 中的跟踪数据。

0 投票
2 回答
2989 浏览

c# - OpenTracing 不使用 Serilog 发送日志

我正在尝试将OpenTracing.Contrib.NetCore与 Serilog 一起使用。我需要将我的自定义日志发送给 Jaeger。现在,它仅在我使用默认记录器工厂时才有效Microsoft.Extensions.Logging.ILoggerFactory

我的启动:

在控制器的某个地方:

结果,我将能够在 Jaeger UI 中看到该日志 在此处输入图像描述

但是当我使用 Serilog 时,没有任何自定义日志。我已添加UseSerilog()WebHostBuilder, 以及我可以在控制台中看到但在 Jaeger 中看不到的所有自定义日志。github中有未解决的问题。您能否建议我如何将 Serilog 与 OpenTracing 一起使用?

0 投票
1 回答
171 浏览

aspectj - 在定义用于跟踪 RabbitMQ 发送的方面时修复切入点定义错误

spring-rabbitmq 的 opentracing 工具没有定义用于跟踪org.springframework.amqp.rabbit.core.RabbitTemplate#send. 这是代码的链接:RabbitMqSendTracingAspect.java

我尝试实现它并在定义切入点时遇到了一些严重的错误。

这是我的代码:

CglibAopProxy即使我用@EnableAspectJAutoProxy(proxyTargetClass = false)

请帮帮我!

0 投票
1 回答
1104 浏览

go - 使用 Jaeger 在分布式应用程序中跟踪 Kafka 总线

我已经分发了由几个 Go 服务组成的应用程序。其中一些使用 Kafka 作为数据总线。opentracing我能够使用Jaeger跟踪服务之间的调用。我在图表上绘制 Kafka 跨度时遇到问题,它们显示为间隙。

这是我能做的。初始跨度由 gRPC 中间件创建。制作方:

消费端:

当消息在 Kafka 中时,我应该如何修改它以在图上绘制跨度?

0 投票
1 回答
4740 浏览

java - 如何在 opentracing 中更改 trace-id 标头?

有没有办法配置 opentracing-spring-jaeger-cloud-starter 来处理除 Uber-Trace-Id 之外的任何其他标头?我将 Traefik 作为我的 kubernetes 集群中的入口。Traefik 可以配置为更改 traceContextHeaderName。默认值为“uber-trace-id”。当我将其更改为某种自定义时,服务之间没有连接(我的意思是跨度连接)。我相信 opentracing 只适用于 Uber-Trace-Id。有没有办法配置它?

我在 minikube 中使用 Traefik 作为入口对此进行了测试。然后所有请求都转到 spring-cloud-gateway 并传播到服务。

感谢帮助!

0 投票
2 回答
758 浏览

python - Python jaeger-client 跟踪器未报告重用

使用示例代码在 celery 4.1.1 中跟踪任务。每个工人运行:

当我第一次启动 celery 并运行任务时,每个工作人员都会获得一个工作跟踪器,并且每个工作人员都有一个日志输出:

在初始之后运行的任何任务都会从Config.initialze_tracer(返回None)和日志警告中获取全局跟踪器Jaeger tracer already initialized, skipping

在控制台上观看 tcpdump 表明没有发送 UDP 数据包,我想我得到了一个未初始化的默认跟踪器,它正在使用 noop 报告器。

我仔细研究了 opentracing 和 jaeger_client 中的代码,但找不到解决此问题的规范方法。

0 投票
1 回答
496 浏览

java - 使用ByteBuddy实现OpenTracing时如何避免NoClassDefFoundError

我正在尝试实现一个 Java 代理,它可以很容易地添加到我们一些遗留服务的命令行中,以使用OpenTracing API启用分布式跟踪。到目前为止,我正在使用ByteBuddy(1.9.12) 并在检测代码针对以下场景运行时点击:NoClassDefFoundErrors

  1. 在包中检测了一个类java.util.concurrent:找不到,GlobalTracer因为 Java 代理仅在应用程序类路径中。我通过将包含跟踪 API 的 Java 代理添加到命令行上的引导类路径(仅限 Java 8)暂时解决了这个问题,但我希望能够以编程方式执行此操作。寻找正确的方法来做到这一点。(编辑:这是通过使用Boot-Class-PathJava 代理的清单文件中的选项来解决的——只需输入 Java 代理 JAR 本身的文件名——没有路径。)
  2. 检测自定义网络客户端类:在我的 Intercept 类(在字节码注入期间)的自定义网络包中找不到类,因为网络客户端包不在 Java 代理 JAR 中。我正在寻找“正确的方法”来高层次地构建事物以避免这种情况。

方案 2 的代码:

错误发生在 NettyAgentIntercept 类中,该类引用 Netty 类。

我研究了 OpenTracing 'contrib' SpecialAgent 如何处理这些场景,并且它有相当多的自定义类加载正在进行,这与它们的构建结构紧密耦合(JAR 中的 JAR 遵循命名约定)。如果可能的话,最好避免这种情况。

场景 2 中的示例异常堆栈:

我还按照建议尝试了以下代码

byte-buddy 抛出 java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

但它会导致同样的异常:

建议类在哪里

0 投票
2 回答
721 浏览

java - Springboot - 使用骆驼追踪器创建自己的 Opentracing 跨度

我在我的 Spring Boot 项目中添加了以下注释:

@CamelOpenTracing

这为我的消息通过的每条路线创建了一个跨度,并且效果很好。

但是,如何创建自己的跨度?我想为我的消息到达时添加一个跨度onException(添加使错误标记为真)。

我尝试从 中获取跟踪器camelContext并创建一个跨度,但没有成功。