菜单
Grafana Cloud Enterprise Open source

使用搜索查询生成器调查跟踪

TraceQL 受 PromQL 和 LogQL 的启发,是一种用于选择跟踪的查询语言。TraceQL 提供了一种精确构建查询的方法,因此您可以快速定位所需数据。由于查询限制了搜索范围,因此结果返回速度更快。

要了解如何通过 TraceQL 进行查询的更多信息,请参阅 TraceQL 文档

位于 Grafana 的 Explore > Query type > Search 中的搜索查询生成器提供了下拉列表和文本字段,帮助您编写查询。

The Search query builder

使用查询生成器启用搜索

此功能在 Grafana 10(及更高版本)和 Grafana Cloud 中自动可用。

要在自托管的 Grafana 10.1 及更低版本中启用 TraceQL 查询生成器,请启用 traceqlSearch 功能开关

位于 Grafana 的 Explore > Query type > Search 中的搜索查询生成器提供了下拉列表和文本字段,帮助您编写查询。您的选择会自动生成 TraceQL 查询

The Search query builder

该生成器允许您以最少的点击次数运行最常见的查询。您无需了解底层查询语言或数据库架构即可使用它。

生成器支持 TraceQL 功能的子集,包括一些结构运算符(>>, >, =~, !=)。

要访问搜索,请选择您的 Tempo 数据源,然后选择Explore,再选择Query type > Search。您可以使用查询生成器按资源服务名称、span 名称、持续时间、一个或多个标签搜索跟踪数据。此页面上的示例使用默认过滤器。

此外,您可以添加查询生成器块、查看查询历史记录,并使用Inspector查看详细信息。

Screenshot of the Tempo Search query type
Tempo 搜索查询类型截图

要执行搜索,您需要选择过滤器,然后运行查询。结果显示在查询生成器下方。截图标识了用于执行搜索的区域。

Parts of the Search query builder

编号名称操作评论
1数据源使用数据源下拉列表选择 Tempo 数据源。每个数据源都有自己的搜索版本。此搜索特定于 Tempo 数据源。
2查询类型选择搜索
3选择过滤器选择一个或多个过滤器。可选。您可以在“搜索”选项卡中执行空查询。在 TraceQL 中,{} 是一个有效的查询,是提供所有跟踪或 span 列表的默认查询。
4过滤器条件为一个或多个过滤器选择选项。例如,您可以定义一个过滤器,其中Service Name (resource.service.name) 等于 (=) user可选。必须至少定义一个标签或过滤器。
5标签和按...聚合添加 span、资源或无范围的标签,并定义其条件。使用按...聚合对结果进行分组。可选。
6TraceQL 查询显示由您的选择构建的 TraceQL 查询。当您选择运行查询时,此 TraceQL 查询将被执行。

每个查询都搜索选定时间范围的数据。默认情况下,查询针对过去一小时的数据运行。选择运行查询左侧的时间范围,选择查询运行的数据时间范围。阅读仪表盘时间范围文档了解更多信息。

要访问搜索查询生成器,请遵循以下步骤:

  1. 登录 Grafana。
  2. 选择您的 Tempo 数据源。
  3. 从菜单中选择Explore,然后选择Query type > Search

定义过滤器

使用过滤器,您可以通过选择Service NameSpan NameStatusDuration来优化查询返回的数据。Duration表示 span 时间,通过从 span 的开始时间减去结束时间计算得出。

Grafana 管理员可以使用 Tempo 数据源配置更改默认过滤器。过滤器可以通过运算符进行限制。字段类型决定了可用的运算符。例如,Span NameService Name是字符串字段,因此比较运算符为等于 (=)、不等于 (!=)、匹配正则表达式 (=~) 或不匹配正则表达式 (!~)。Duration是持续时间字段类型,使用范围选择器 (>, >=, <, <=)。

当您为同一过滤器选择多个值时,Grafana 会自动将运算符更改为正则表达式 (regex) 运算符 =~,并将值与 | 连接。此功能仅适用于带有下拉值选择的字段。

例如,如果您选择 Span Name = get,然后选择 Span Name = log_results_cache,运算符下拉列表会从 = 更改为 =~,并且 getlog_results_cache 都列在 Span Name 字段中。生成的查询将更新为:

{duration>5ms && duration<10ms && name=~"get|log_results_cache"}

要定义过滤器,请按照以下步骤操作:

  1. 选择一个过滤器。
  2. 从下拉列表中选择一个比较运算符。
  3. 仅限Service NameSpan NameStatus:从下拉列表中选择一个或多个值。
  4. 仅限Duration:输入范围的值和单位,并为下拉列表选择比较运算符。单位可以是纳秒 (ns)、毫秒 (ms)、秒 (s)、分钟 (m) 和小时 (h)。

您可以选择运行查询执行查询,或者定义标签后再运行查询。

定义标签

您可以向查询添加任何标签,以进一步过滤结果。可以按范围(span 或 resource)或无范围选择标签。如果选择无范围,则会搜索所有标签以查找匹配项。

要添加标签,请按照以下步骤操作:

  1. 选择 span、resource 或 unscoped。
  2. 选择标签下拉列表中选择一个标签。
  3. 选择一个比较运算符。
  4. 选择值下拉列表中选择一个值。此字段根据标签填充。
  5. 可选:选择 + 添加另一个标签。

可选:使用按...聚合

警告

指标摘要 API 和按...聚合功能在 Grafana Cloud 和 Grafana 11.3 及更高版本中已被弃用。它将在未来的版本中移除。

使用按...聚合,您可以计算符合过滤条件的 kind=server 的 spans 的 RED 指标(总 span 计数、错误率 span 和延迟信息),并按一个或多个属性分组。此功能基于指标摘要 API。指标摘要仅计算最近一小时内接收到的 spans 的摘要。更多信息,请参阅跟踪到指标:Grafana Tempo 中使用按...聚合的即时 RED 指标

按...聚合默认禁用。在 Grafana 中启用 metricsSummary 功能开关以使用此功能。

您的 Grafana Tempo 数据源还必须指向一个启用了Metrics Summary API的 Tempo 数据库。联系 Grafana Support 在 Grafana Cloud 中启用此功能。

使用按...聚合

当您使用按...聚合时,您的选择决定了信息在表格中如何报告。表格中列出了与您的数据中选择匹配的每个组合。每个聚合值(例如 intrinsic:name)在结果表格中都有相应的列。

例如,名称匹配 GET /:endpointspan.http.user_agentk6/0.46 的 span 出现在 31,466 个 span 中。查询结果不是按跟踪和相关 span 列出,而是按按...聚合中的选择分组。

RED 指标是针对您的数据中找到的每个名称和用户代理组合计算的。

截图显示了针对 mystical-server 服务的所有成功 HTTP status_code API 调用。结果按按...聚合中使用的相同顺序显示。例如,按...聚合列出 intrinsic.name,后跟 span.http.user_agent。结果表格的第一列显示名称,然后是span.http.user_agent

Use Aggregate by to calculate RED metrics for spans and group by attributes

要使用此功能,请按照以下步骤操作:

  1. 按...聚合行中,从第一个下拉框中选择一个范围。例如,span
  2. 从第二个下拉列表中选择一个属性。
  3. 可选:选择 + 添加另一行按...聚合
  4. 可选:选择时间范围以扩展或缩小一小时范围的数据集。
  5. 选择运行查询

可选:添加查询和服务图块

使用添加查询,您可以拥有按顺序运行的连续查询块或服务节点块。例如,查询 A 运行,然后查询 B。您可以通过拖放将查询重新排序到其他查询之上或之下。选择 + 添加查询添加另一个查询块。

更多信息,请参阅一起使用查询类型

运行查询并查看结果

选择运行查询以运行 TraceQL 查询(截图中的 1)。

查询可能需要一些时间才能返回结果。结果显示在查询生成器下方的表格中。选择跟踪 ID(截图中的 2)将显示更详细的信息(截图中的 3)。Span 过滤器(截图中的 4)提供了一个附加选项来优化查询结果。

Query results with numbered sections

流式处理结果

Tempo 数据源支持对 TraceQL 查询进行流式响应,因此您可以在整个查询完成之前看到部分查询结果。

激活后,所有配置的 Tempo 数据源都尝试使用流式处理。您可以在每个数据源级别使用 Tempo 数据源配置的流式处理部分激活和控制哪些 Tempo 数据源尝试流式处理结果。有关更多信息,请参阅 Tempo 数据源文档。

流式处理适用于搜索TraceQL查询类型。您可以在结果表格中立即看到传入跟踪。

在 spans 上使用过滤器和标签

使用Span 过滤器,您可以在查看 span 详细信息时使用过滤器优化结果。这些过滤器在查看跟踪的详细信息时可用。

您可以继续应用过滤器,直到将结果 span 缩小到您最感兴趣的几个。

Service NameSpan NameDurationTags的功能和操作与搜索查询生成器中同名过滤器相同。

此外,您可以搜索关键字,选择仅显示匹配项,选择仅显示关键路径,并使用上一个下一个浏览匹配项。

使用清除重置过滤器。