在 Spring Kafka 3 中启用跟踪的配置

问题描述 投票:0回答:1

我正在尝试在 Kafka 模板中启用可观察性来为事件创建跨度。我正在使用 Jaeger 的本地实例。在 Jaeger 实例中,我可以看到与 S3 存储桶交互相关的跨度,但没有看到与 Kafka 交互的任何内容。当我检查 Kafka 主题中的事件时,它们没有任何包含 spanId 或 traceId 的标头。

我已设定

kafkaTemplate.setObservationEnabled(true)'
。我已将以下内容添加到 application.properties

management.tracing.enabled=true
management.tracing.sampling.probability=1.0
management.tracing.propagation.type=w3c
management.tracing.propagation.produce=w3c
management.tracing.propagation.consume=w3c
management.otlp.tracing.endpoint=http://localhost:4318/v1/traces

我已将以下依赖项添加到服务中

    <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-tracing</artifactId>
        </dependency>

        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-tracing-bridge-otel</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>io.opentelemetry</groupId>
            <artifactId>opentelemetry-exporter-otlp</artifactId>
        </dependency>

我正在使用 Spring Boot 3.2.1 和 Spring Kafka 3.1.1。

我主要在这里遵循本指南: https://piotrminkowski.com/2023/11/15/kafka-tracing-with-spring-boot-and-open-telemetry/

spring apache-kafka spring-kafka open-telemetry
1个回答
0
投票

概括答案

kafkaTemplate
实例必须是由Spring管理的bean。如果是这样,将调用 afterSingletonsInstantiated 方法,并设置 ObservationRegistry 对象来代替默认的 ObservationRegistry.NOOP。

© www.soinside.com 2019 - 2024. All rights reserved.