菜单
文档面包屑箭头 Grafana Tempo面包屑箭头 TraceQL面包屑箭头 TraceQL 指标查询
开源 RSS

TraceQL 指标查询

注意

TraceQL 指标是实验性功能。工程和值班支持不可用。文档有限或仅在代码注释中提供。不提供 SLA。请在 Grafana 中启用功能开关以使用此功能。请联系 Grafana 支持以在 Grafana Cloud 中启用此功能。

TraceQL 指标是 Grafana Tempo 中的一项实验性功能,可以从追踪创建指标。

指标查询通过对追踪查询结果应用函数来扩展追踪查询。这项强大功能允许您按追踪中可用的任何维度对现有 TraceQL 查询进行即时聚合,就像 LogQL 指标查询从日志创建指标一样。

追踪是一种独特的可观测性信号,它包含系统中组件之间的因果关系。

TraceQL 指标可以帮助回答以下问题

  • 您的应用程序下游跨所有系统的数据库调用有多少?
  • 给定端点下的哪些服务正在发生故障?
  • 给定端点下的哪些服务速度很慢?

TraceQL 指标可以通过聚合解析您的追踪来帮助您回答这些问题。

TraceQL 指标由TraceQL 指标 API 提供支持。

Metrics visualization in Grafana

RED 指标、TraceQL 和 PromQL

RED 是以下三种指标的首字母缩写词

  • 速率(Rate),每秒请求数
  • 错误(Errors),发生故障的请求数
  • 持续时间(Duration),请求所花费的时间

有关 RED 方法的更多信息,请参阅RED 方法:如何对服务进行埋点

您可以编写 TraceQL 指标查询来计算不同 Span 组的速率、错误和持续时间。

有关如何使用 TraceQL 指标排查问题的更多信息,请参阅使用指标查询解决问题

启用和使用 TraceQL 指标

要使用 TraceQL 指标,您需要在 Tempo 数据库中启用它们。请参阅配置 TraceQL 指标获取更多信息。

然后,您可以直接查询 TraceQL 指标 API(例如,使用curl)或使用 Grafana(推荐)。要在 Grafana 中运行 TraceQL 指标查询,您需要 Grafana Cloud 或 Grafana 10.4 或更高版本。无需额外配置。请使用指向已启用 TraceQL 指标的 Tempo 数据库的 Tempo 数据源。

请参阅使用指标查询解决问题获取一些实际示例。

函数

TraceQL 指标查询目前包含以下用于聚合 Span 组的函数:ratecount_over_timemax_over_timemin_over_timeavg_over_timequantile_over_timehistogram_over_timecompare。这些函数可以作为运算符添加到任何 TraceQL 查询的末尾。

有关每个函数的详细信息和示例查询,请参阅TraceQL 指标函数

示例追踪 (Exemplars)

示例追踪是 TraceQL 指标的一项强大功能。它们允许您查看促成给定指标值的精确追踪。当您想了解为什么某个指标偏高或偏低时,此功能特别有用。

示例追踪在 TraceQL 指标的所有范围查询中均可用。要获取示例追踪,您需要在 query-frontend 中配置参数query_frontend.metrics.max_exemplars,或在查询中传递查询提示。

示例

{ span:name = "GET /:endpoint" } | quantile_over_time(duration, .99) by (span.http.target) with (exemplars=true)

注意

Grafana Explore 尚未完全支持带有示例追踪的 TraceQL 指标查询。这将在未来的 Grafana 版本中得到支持。