3.2. 配置分布式追踪
启用分布式追踪,以跟踪 Kafka Bridge 使用和生成的消息,以及来自客户端应用程序的 HTTP 请求。
启用追踪的属性存在于 application.properties
文件中。要启用分布式追踪,请执行以下操作:
-
设置
bridge.tracing
属性值,以启用您要使用的追踪。可能的值有jaeger
和opentelemetry
。 - 设置用于追踪的环境变量。
使用默认配置时,OpenTelemetry tracing 使用 OTLP 作为 exporter 协议。通过配置 OTLP 端点,您仍然可以使用 Jaeger 后端实例来获取 trace。
Jaeger 自版本 1.35 起支持 OTLP 协议。旧的 Jaeger 版本无法使用 OTLP 协议获取 trace。
OpenTelemetry 和 OpenTracing 是收集追踪数据的 API 规格,作为指标数据的 spans。span 代表特定的操作。trace 是一个或多个范围的集合。
当 Kafka Bridge 进行以下操作时会生成 trace:
- 将信息从 Kafka 发送到消费者 HTTP 客户端
- 从制作者 HTTP 客户端接收发送到 Kafka 的信息
Jaeger 实现所需的 API,并在其用户界面中显示 trace 数据的视觉化,以便进行分析。
要进行端到端追踪,您必须在 HTTP 客户端中配置追踪。
OpenTracing 项目现已存档,因此 AMQ Streams 已被弃用对 OpenTracing 的支持。如果可能,我们将维护对 bridge.tracing=jaeger
追踪的支持,直到 2023 年 6 月后被删除。请尽快迁移到 OpenTelemetry。
先决条件
流程
编辑 Kafka Bridge 安装存档提供的
application.properties
文件。使用
bridge.tracing
属性启用您要使用的追踪。启用 OpenTelemetry 的示例配置
#bridge.tracing=jaeger 1 bridge.tracing=opentelemetry 2
启用追踪后,您可以在运行 Kafka Bridge 脚本时初始化追踪。
- 保存配置文件。
设置用于追踪的环境变量。
OpenTelemetry 的环境变量
OTEL_SERVICE_NAME=my-tracing-service 1 OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 2
OpenTracing 的环境变量
JAEGER_SERVICE_NAME=my-jaeger-service 1 JAEGER_AGENT_HOST=localhost 2 JAEGER_AGENT_PORT=6831 3
使用为追踪启用的属性运行 Kafka Bridge 脚本:
在启用了 OpenTelemetry 的情况下运行 Kafka Bridge
./bin/kafka_bridge_run.sh --config-file=<path>/application.properties
Kafka Bridge 的内部消费者和制作者现在已启用用于追踪。
3.2.1. 使用 OpenTelemetry 指定追踪系统
您可以指定 OpenTelemetry 支持的其他追踪系统,而不是默认的 OTLP tracing 系统。
如果要将另一个追踪系统与 OpenTelemetry 搭配使用,请执行以下操作:
- 将追踪系统的库添加到 Kafka 类路径中。
将追踪系统的名称添加为额外的 exporter 环境变量。
如果不使用 OTLP 时的额外环境变量
OTEL_SERVICE_NAME=my-tracing-service OTEL_TRACES_EXPORTER=zipkin 1 OTEL_EXPORTER_ZIPKIN_ENDPOINT=http://localhost:9411/api/v2/spans 2
其他资源