菜单
开源

服务图视图

Grafana 的服务图视图使用指标生成器(或 Grafana Alloy)生成的指标来显示 Span 请求速率、错误率和持续时间,以及服务图。设置好要求后,此预配置视图即可立即使用。

使用服务图视图,您可以

  • 发现持续出错的 Span 及其发生速率
  • 获取服务中 Span 调用的总体速率概览
  • 确定服务中最慢的查询需要多长时间才能完成
  • 根据速率、错误率和持续时间值 (RED 信号) 检查包含特定感兴趣 Span 的所有跟踪

Service graph view

要求

您必须在 Grafana 后端启用 Span 指标和服务图生成,以便在摄取跟踪时生成指标。

要使用服务图视图,您需要

  • Tempo 或 Grafana Cloud Traces,并启用并配置指标生成器,或者启用并配置 Grafana Agent 或 Grafana Alloy 将数据发送到兼容 Prometheus 的指标存储
  • 服务图(在 Grafana 中默认启用)
  • 在 Tempo 数据源配置中启用Span 指标

服务图视图可以来自指标生成器或 Grafana Agent 或 Grafana Alloy 生成的指标。

有关如何配置这些功能的详细信息,请参阅Tempo 数据源文档

服务图视图显示什么?

使用此视图,您可以查看类型为 server 的前五个 Span(列在 Name 列中)。您可以使用过滤器优化任何这些数据。选择任何数据点可以让您查看更具体的数据。

服务图视图提供 Span 指标可视化(表格)和服务图(节点图)。此外,您可以使用过滤器自定义显示的数据。

您可以选择表格中任何带有下划线的信息以显示更详细的信息。您也可以选择服务图中的任何节点以显示附加信息。

Service graph with extended information

错误率示例

假设我们想进一步了解为什么 cortex.Ingester 错误率最高。选择错误率列的第二行将在右侧的新窗口中显示 Span 指标的详细信息。

Error rate example

用于生成数据的指标查询显示在指标浏览器字段中。

Error example query editor

Span 指标表

表格中显示的 Span 指标由指标生成器或 Grafana Agent 生成。这些指标是根据摄取的跟踪数据(包括 RED 指标)创建的。

Span 指标生成两种指标

  • 计算请求的计数器
  • 跟踪所有请求持续时间分布的直方图

有关 Span 指标及其计算方式的详细信息,请参阅Span 指标文档

表格内容

Span 指标表包含七列,有五个列标题。选择标题可按升序或降序对数据进行排序。

说明Span 的 PromQL 查询
名称使用 Span 名称。OTel 语义约定通常期望 Span 名称是 HTTP 路由或数据库函数执行的某种低基数指标。不适用
速率LCD 仪表(水平条形图)。每秒 Span 实例数。单击此字段可跳转到相应的指标。sum(rate( traces_spanmetrics_calls_total{ span_name="", <filters> }[$__range]))
错误率数字和 LCD 仪表(水平条形图)。单击此字段显示更详细的指标。sum(rate( traces_spanmetrics_calls_total{ span_name="", span_status="STATUS_CODE_ERROR", <filters> }[$__range]))
持续时间p90 持续时间:90% 的 Span 都在此时间内完成。单击此字段显示相应的指标。histogram_quantile(.9, sum(rate( traces_spanmetrics_duration_seconds_bucket{ span_name="", span_status="STATUS_CODE_ERROR", <filters> }[$__range]) by (le))
链接根据 Span 名称和应用的过滤器提供示例跟踪的链接。链接到同一 Tempo 数据源中同名所有 Span 的搜索结果。不适用

服务图

服务图(节点图)是各种服务之间相互关系的视觉表示。服务图有助于理解分布式系统的结构,以及其组件之间的连接和依赖关系。

服务图推断分布式系统的拓扑,提供系统健康状况的高级概览,以及系统拓扑的历史视图。服务图显示错误率和延迟等相关数据。服务图布局可以是默认布局或网格布局。

Node graph view

如果您使用指标生成器,它会处理跟踪并生成时间序列指标形式的服务图,例如

yaml
traces_service_graph_request_total{client="app", server="db"} 20

有关服务图及其计算方式的详细信息,请参阅服务图文档

使用过滤器显示详细信息

服务图视图使用服务图和 Span 指标作为访问跟踪信息的门户。此仪表盘来源于一组固定的指标查询。这些底层查询无法更改。但是,您可以通过过滤来选择要包含在指标查询中的跟踪。

您可以通过单击可选项或使用过滤器来探索数据。

选择项目或节点以获取更多详细信息

单击可选项,例如表格中带下划线的文本或服务图中的节点,可根据您的选择显示具体详细信息。

在表格中,您可以选择速率错误率持续时间 (p90)链接列中的项目。选择其中一项可提供 Span 指标的详细信息。

您可以查看服务图中任何节点的请求速率、请求直方图、失败请求速率和跟踪。要查看更多信息,请选择服务图中的节点,然后从弹出窗口中选择一个选项。有关导航服务图的详细信息,请参阅节点图面板文档。

使用指标查询过滤

使用屏幕顶部的过滤器,您可以根据 Span 属性(键值对或标签)缩小数据集范围。过滤器构建查询以优化服务图和 Span 指标中显示的内容。您可以添加一个或多个标签过滤器。

使用过滤器的方法

  1. 在服务图顶部,选择过滤旁边的文本框以显示可用标签列表。

  2. 选择或搜索标签的值。在此例中,server 的值等于 tempo-ingester。默认运算符是等于 (=)。

  3. 可选:通过选择 = 并从下拉列表中选择新选项来更改运算符。

  4. 可选:添加附加键值对以细化数据集。任何后续标签过滤器都使用 AND,这要求两个键值对都存在才能匹配。

  5. 选择运行查询

可以通过选择过滤器下拉菜单并选择 – 移除过滤器 – 来移除过滤器。

每个字段或标签代表一个键值对。数字 1 选择一个服务作为标签,其值为 Go-http-client (2)。第二个键值对的客户端标签值为 02e807

Filter example with numbers

如果您的指标查询过于具体,可能不会返回任何结果。

将过滤器更新为不太具体会返回结果。在此例中,结果仅显示与 span_name 标签值为 /base.Ruler/Rules 关联的 Span 指标数据。没有服务图数据可用。

Filter example with one results