第 9 章 分布式追踪简介


分布式追踪跟踪分布式系统中应用程序之间的事务进度。在微服务架构中,跟踪服务间的事务进度。trace 数据可用于监控应用程序性能和调查目标系统和最终用户应用程序的问题。

在 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 Protocol)导出器和端点来获取追踪数据。您可以指定 OpenTelemetry 支持的其他追踪系统,包括 Jaeger tracing。要做到这一点,您可以在追踪配置中更改 OpenTelemetry exporter 和端点。
jaeger
指定 type:jaeger 以使用 OpenTracing 和 Jaeger 客户端来获取 trace 数据。
注意

支持 type: jaeger tracing 已被弃用。Jaeger 客户端现已停用,OpenTracing 项目存档。因此,我们不能保证其对将来的 Kafka 版本的支持。如果可能,我们将保持对 type: jaeger tracing 的支持,直到 2023 年 6 月为止。请尽快迁移到 OpenTelemetry。

9.1. 跟踪选项

使用 OpenTelemetry 或 OpenTracing (已弃用) Jaeger 追踪系统。

OpenTelemetry 和 OpenTracing 提供独立于追踪或监控系统的 API 规格。

您可以使用 API 检测应用程序代码进行追踪。

  • 检测的应用程序会在 分布式系统中为单个请求生成跟踪
  • trace 由 范围 组成,它们定义一段时间内的特定工作单元。

Jaeger 是基于微服务的分布式系统的追踪系统。

  • Jaeger 实现追踪 API,并为工具提供客户端库。
  • Jaeger 用户界面允许您查询、过滤和分析追踪数据。

Jaeger 用户界面显示简单的查询

The Jaeger user interface showing a simple query

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat