第 16 章 设置分布式追踪
分布式追踪允许您跟踪分布式系统中的应用程序间事务的进度。在微服务架构中,追踪跟踪服务间事务的进度。跟踪数据对于监控应用程序性能和目标系统和最终用户应用程序的问题非常有用。
在 Apache Kafka 的流中,追踪有助于对消息的端到端跟踪:从源系统到 Kafka,然后从 Kafka 到目标系统和应用程序。它补充了 JMX 指标 中可以查看的指标,以及组件日志记录器。
以下 Kafka 组件内置了对追踪的支持:
- Kafka Connect
- MirrorMaker
- MirrorMaker 2
- Apache Kafka Bridge 的流
Kafka 代理不支持追踪。
您可以将追踪配置添加到组件的属性文件中。
要启用追踪,您可以设置环境变量,并将追踪系统库添加到 Kafka 类路径。对于 Jaeger tracing,您可以使用 Jaeger Exporter 为 OpenTelemetry 添加追踪工件。
Apache Kafka 的流不再支持 OpenTracing。如果您之前将 OpenTracing 与 Jaeger 搭配使用,我们建议您改为使用 OpenTelemetry。
要在 Kafka producer、消费者和 Kafka Streams API 应用程序中启用追踪,您可以 检测 应用程序代码。在检测程序时,客户端会生成 trace 数据;例如,当生成消息或向日志写入偏移时。
对于除 Apache Kafka 的流外的应用程序和系统设置追踪不在此内容范围内。
16.1. 流程概述
要为 Apache Kafka 设置流追踪,请按照以下步骤操作:
为 Kafka Connect、MirrorMaker 2 和 MirrorMaker 设置追踪:
为客户端设置追踪:
使用 tracers 检测客户端:
有关为 Kafka Bridge 启用追踪的详情,请参考使用 Apache Kafka Bridge 的 Streams。