TraceQL 指标查询
注意
TraceQL 指标是实验性功能。工程和值班支持不可用。文档有限或仅在代码注释中提供。不提供 SLA。请在 Grafana 中启用功能开关以使用此功能。请联系 Grafana 支持以在 Grafana Cloud 中启用此功能。
TraceQL 指标是 Grafana Tempo 中的一项实验性功能,可以从追踪创建指标。
指标查询通过对追踪查询结果应用函数来扩展追踪查询。这项强大功能允许您按追踪中可用的任何维度对现有 TraceQL 查询进行即时聚合,就像 LogQL 指标查询从日志创建指标一样。
追踪是一种独特的可观测性信号,它包含系统中组件之间的因果关系。
TraceQL 指标可以帮助回答以下问题
- 您的应用程序下游跨所有系统的数据库调用有多少?
- 给定端点下的哪些服务正在发生故障?
- 给定端点下的哪些服务速度很慢?
TraceQL 指标可以通过聚合解析您的追踪来帮助您回答这些问题。
TraceQL 指标由TraceQL 指标 API 提供支持。
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 组的函数:rate
、count_over_time
、max_over_time
、min_over_time
、avg_over_time
、quantile_over_time
、histogram_over_time
和 compare
。这些函数可以作为运算符添加到任何 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 版本中得到支持。