首页 > 解决方案 > 如何使用 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 标头:

谢谢。

标签: grpcistiogrpc-javaopentracingdistributed-tracing

解决方案


查看OpenTelemetry-Java-Instrumentation项目。它可以自动跟踪您的应用程序,而无需编写自定义代码。它使用在应用程序旁边的 JVM 中运行的检测代理。

java -javaagent:path/to/opentelemetry-javaagent-all.jar \
     -jar myapp.jar

它支持将指标导出到 Jaeger

它还支持将标头传播到下游请求

他们刚刚添加了对b3-multi 标头的支持,因此未来几天应该会提供新版本


推荐阅读