菜单
开源 RSS

监控 Tempo

Tempo 进行了插桩,以暴露指标、日志和追踪。此外,Tempo 仓库包含一个 mixin,其中包含一组仪表盘、规则和警报。这些一起可以用于监控生产环境中的 Tempo。

插桩

可以收集 Tempo 的指标、日志和追踪来观察其服务和功能。

指标

Tempo 使用 Prometheus 指标进行了插桩,并为大多数服务和后端发出 RED 指标。RED 指标是一种用于监控微服务的标准化格式,其中 R 代表请求 (Requests),E 代表错误 (Errors),D 代表持续时间 (Duration)。

Tempo mixin 使用这些指标提供了多个仪表盘。

日志

Tempo 以 key=value ( logfmt) 格式发出日志。

追踪

Tempo 使用 OpenTelemetry SDK 进行追踪插桩。Tempo 的完整读取路径和部分写入路径都已进行追踪插桩。

您可以使用环境变量配置追踪器。要启用追踪,请设置以下其中一个变量:OTEL_EXPORTER_OTLP_ENDPOINTOTEL_EXPORTER_OTLP_TRACES_ENDPOINT

OpenTelemetry SDK 默认使用 OTLP/HTTP,可以使用 OTEL_EXPORTER_OTLP_PROTOCOL 进行配置。

Polling

Tempo 通过定期 polling 后端来维护对后端状态的了解。目前只有两个组件需要这种了解,因此也只有这两个组件会 polling 后端:compactor 和 querier。

请参阅 使用 polling 监控后端状态 以了解 Tempo 的相关信息。

仪表盘

Tempo mixinyamls 文件夹中包含四个 Grafana 仪表盘,您可以下载这些仪表盘并将其导入到您的 Grafana UI 中。当您在 Kubernetes (k8s) 环境中运行 Tempo 且采集的指标具有 clusternamespace 标签时,这些仪表盘效果很好。

Tempo 读取仪表盘

此仪表盘可用作 tempo-reads.json

读取仪表盘提供了 Tempo 查询路径上的请求、错误和持续时间 (RED) 信息。每个查询都会涉及网关 (Gateway)、Tempo-Query、查询前端 (Query-Frontend)、Querier、Ingester、后端以及(如果存在)缓存 (Cache)。

使用此仪表盘监控上述每个组件的性能,并决定每个部署中的副本数量。

Tempo 写入仪表盘

此仪表盘可用作 tempo-writes.json

写入仪表盘提供了 Tempo 写入/摄取路径上的 RED 信息。一个写入查询会涉及网关 (Gateway)、Distributor、Ingester 和后端。此仪表盘还提供了 Compactor 对后端执行的操作次数信息。

使用此仪表盘监控上述每个组件的性能,并决定每个部署中的副本数量。

Tempo 资源仪表盘

此仪表盘可用作 tempo-resources.json

资源仪表盘提供了 CPUContainer MemoryGo Heap Inuse 的信息。此仪表盘对于 Tempo 不同组件的资源预配置很有用。

使用此仪表盘查看是否有任何组件接近其分配的限制。

Tempo 操作仪表盘

此仪表盘可用作 tempo-operational.json

Tempo 操作仪表盘值得特别提及,因为它可能是仪表盘反模式的堆砌。它庞大而复杂,不使用 jsonnet,并且在一个地方显示了过多的指标。对于刚开始使用的人来说,RED 仪表盘是学习如何以不透明方式监控 Tempo 的好地方。

此仪表盘包含在 Tempo 仓库中,原因有二:

  • 此仪表盘提供了一系列指标,供其他操作员在运行 Tempo 时考虑监控。
  • 我们希望在我们的内部基础设施中使用此仪表盘,因此我们通过供应商引入 tempo-mixin 来实现此目的。

规则和警报

规则和警报在仓库的已编译 mixin 中的 YAML 文件中提供。

要设置警报,请下载提供的 JSON 文件,并将其配置用于您的 Prometheus 监控服务器。

查看运行手册,了解可以采取哪些步骤来解决触发的警报。