9.4. 分布式追踪
分布式追踪跟踪分布式系统中应用程序之间的事务进度。在微服务架构中,追踪跟踪服务间的事务进度。跟踪数据可用于监控应用程序性能和调查目标系统和最终用户应用的问题。
在 AMQ Streams 中,追踪有助于对消息的端到端跟踪:从源系统到 Kafka,然后从 Kafka 到目标系统和应用程序。分布式追踪补充了 Grafana 仪表板中的指标的监控,以及组件日志记录器。
以下 Kafka 组件内置了对追踪的支持:
- MirrorMaker 将来自源集群的信息追踪到目标集群
- Kafka 连接到由 Kafka Connect 使用和生成的 trace 信息
- Kafka Bridge 用来跟踪 Kafka 和 HTTP 客户端应用程序之间的信息
Kafka 代理不支持追踪。
您可以通过其自定义资源为这些组件启用和配置追踪。您可以使用 spec.template
属性添加追踪配置。
您可以使用 spec.tracing.type
属性指定追踪类型来启用追踪:
OpenTelemetry
-
指定
type: opentelemetry
以使用 OpenTelemetry。默认情况下,OpenTelemetry 使用 OTLP (OpenTelemetry 协议)导出器和端点来获取追踪数据。您可以指定 OpenTelemetry 支持的其他追踪系统,包括 Jaeger 追踪。要做到这一点,您可以在追踪配置中更改 OpenTelemetry exporter 和端点。 jaeger
-
指定
type:jaeger
来使用 OpenTracing 和 Jaeger 客户端来获取 trace 数据。
对 type: jaeger
tracing 的支持已被弃用。Jaeger 客户端现已停用,OpenTracing 项目存档。因此,我们不能保证其对将来的 Kafka 版本的支持。如果可能,我们将保持对 type: jaeger
tracing 的支持,直到 2023 年 6 月为止。请尽快迁移到 OpenTelemetry。
Kafka 客户端的追踪
还可以设置 Kafka producer 和使用者等客户端应用程序,以便监控事务。客户端配置了追踪配置集,并且初始化 tracer 供客户端应用使用。