我有一个 spring-boot 应用程序和 java spanner 客户端。 Spring Boot 使用 Micrometer 和 Brave 作为跟踪仪器,而 Java Spanner 客户端使用 OpenTelemetry。
由
我能够将扳手跟踪跨度发送到 Stackdriver,但它们未连接到父级。这是因为 Spring 默认情况下不填充 OpenTelementry 跟踪上下文。
我必须将勇敢的仪器作为主要仪器,但也想将 OpenTelementry 跨度连接到父跨度。
实现它的一种方法可能是手动启动 OpenTelementry span 并从勇敢的上下文(如traceId/spanId/sampled)复制数据。但随后我将让父母仅在我放置自定义跨度的地方设置扳手跨度。
是否有另一种方法可以在不同的跟踪工具(OpenTelemetry 和 Brave)之间传播跟踪上下文?也许可以覆盖一些 spring bean 并在两个跟踪上下文之间手动复制数据?
如果您使用 micrometer 的 otel bridge,上下文传播应该可以工作。请参阅https://spring.io/blog/2022/10/12/observability-with-spring-boot-3#resttemplate-client-application-setup