第 9 章 分布式追踪


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

在 AMQ Streams 中,追踪有助于对消息的端到端跟踪:从源系统到 Kafka,然后从 Kafka 到目标系统和应用程序。它补充了可在 Grafana 仪表板 中查看的指标,以及组件日志记录器。

AMQ Streams 如何支持追踪

在以下组件中内置了对追踪的支持:

  • Kafka Connect
  • MirrorMaker
  • MirrorMaker 2.0
  • AMQ Streams Kafka Bridge

您可以使用自定义资源中的模板配置属性为这些组件启用和配置追踪。

要在 Kafka 产生者、消费者和 Kafka Streams API 应用程序中启用追踪,您可以 instrument 应用程序代码,使用 OpenTracing Apache Kafka Client Instrumentation 库(附带 AMQ Streams)。在检测程序时,客户端会生成 trace 数据;例如,当生成消息或向日志写入偏移时。

注意

对 OpenTracing 的支持已弃用。Jaeger 客户端现已停用,OpenTracing 项目存档。因此,我们不能保证其对将来的 Kafka 版本的支持。我们基于 OpenTelemetry 项目推出新的追踪实施。

trace 根据抽样策略抽样,然后在 Jaeger 用户界面中视觉化。

注意

Kafka 代理不支持追踪。

在 AMQ Streams 之外为应用程序和系统设置追踪不在本章范围内。要了解有关此主题的更多信息,请在 OpenTracing 文档中 搜索 "inject and extract"。

步骤概述

要为 AMQ Streams 设置追踪,请按照以下步骤执行:

先决条件

  • Jaeger 后端组件部署到 OpenShift 集群。有关部署说明,请参阅 Jaeger 文档

9.1. OpenTracing 和 Jaeger 概述

AMQ Streams 使用 OpenTracing 和 Jaeger 项目。

OpenTracing 是一种独立于追踪或监控系统的 API 规范。

  • OpenTracing API 用于检测 应用代码
  • 检测的应用程序会在 分布式系统中为独立事务生成追踪
  • trace 由 范围 组成,它们定义一段时间内的特定工作单元

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

  • Jaeger 实施 OpenTracing API,并提供客户端库以用于检测
  • Jaeger 用户界面允许您查询、过滤和分析追踪数据

The Jaeger user interface showing a simple query

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat