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

监控 Jaeger

版本  1.71 最新 转到最新的 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 的用户提供了起点。这包括一个预构建的仪表盘外部链接 - Jaeger 分布式追踪平台。更多信息请参见文档外部链接 - Jaeger 分布式追踪平台

日志

Jaeger 组件仅将日志输出到标准输出,使用结构化日志库go.uber.org/zap外部链接 - 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 屏幕几次,您将在“服务”下拉菜单中看到 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.71.0