Ukraine flag 我们与乌克兰的朋友和同事同在。如需支持处于困境中的乌克兰,请访问此页面

监控 Jaeger

版本  1.69 最新 前往最新的 2.x 版本

Jaeger 本身是一个基于微服务的分布式系统。如果您在生产环境中运行它,您可能需要为不同的组件设置适当的监控,例如,以确保后端不会被过多的跟踪数据饱和。

指标

默认情况下,Jaeger 微服务以 Prometheus 格式公开指标。它由以下命令行选项控制

  • --admin.http.host-port HTTP 管理服务器运行的端口号
  • --metrics-backend 控制测量结果的公开方式。默认值为 prometheus,另一个选项是 expvar,它是 Go 标准的用于公开进程级别统计信息的机制。
  • --metrics-http-route 指定用于抓取指标的 HTTP 端点名称(默认为 /metrics)。

每个 Jaeger 组件都在管理端口上公开指标抓取端点

组件端口
jaeger-collector14269
jaeger-query16687
jaeger-ingester14270
all-in-one14269

Jaeger 的 Prometheus 监控混入

Jaeger 的 Prometheus 监控混入为希望使用 Prometheus、Alertmanager 和 Grafana 监控 Jaeger 的用户提供了起点。这包括一个预构建的仪表盘external link - Jaeger 分布式追踪平台。更多信息请参见文档external link - Jaeger 分布式追踪平台

日志

Jaeger 组件仅将日志输出到标准输出,使用结构化日志库 go.uber.org/zapexternal link - Jaeger 分布式追踪平台,配置为将日志行写入为 JSON 编码的字符串,例如

{"level":"info","ts":1615914981.7914007,"caller":"flags/admin.go:111","msg":"Starting admin HTTP server","http-addr":":14269"}
{"level":"info","ts":1615914981.7914548,"caller":"flags/admin.go:97","msg":"Admin server started","http.host-port":"[::]:14269","health-status":"unavailable"}

日志级别可以通过 --log-level 命令行开关进行调整;默认级别是 info

跟踪

Jaeger 能够跟踪自身的一些组件,即对 Query 服务的请求。例如,如果您按照入门中的描述启动 all-in-one,并刷新 UI 屏幕几次,您将在 Services 下拉菜单中看到 jaeger-all-in-one。如果您不想在 Jaeger UI 中看到这些跟踪,可以通过使用 OTEL_TRACES_SAMPLER=always_off 环境变量运行 Jaeger 后端组件来禁用它们,例如

docker run -e OTEL_TRACES_SAMPLER=always_off -p 16686:16686 jaegertracing/all-in-one:1.69.0