服务图视图
Grafana 的服务图视图使用指标生成器(或 Grafana Alloy)生成的指标来显示 Span 请求速率、错误率和持续时间,以及服务图。设置好要求后,此预配置视图即可立即使用。
使用服务图视图,您可以
- 发现持续出错的 Span 及其发生速率
- 获取服务中 Span 调用的总体速率概览
- 确定服务中最慢的查询需要多长时间才能完成
- 根据速率、错误率和持续时间值 (RED 信号) 检查包含特定感兴趣 Span 的所有跟踪
要求
您必须在 Grafana 后端启用 Span 指标和服务图生成,以便在摄取跟踪时生成指标。
要使用服务图视图,您需要
- Tempo 或 Grafana Cloud Traces,并启用并配置指标生成器,或者启用并配置 Grafana Agent 或 Grafana Alloy 将数据发送到兼容 Prometheus 的指标存储
- 服务图(在 Grafana 中默认启用)
- 在 Tempo 数据源配置中启用Span 指标
服务图视图可以来自指标生成器或 Grafana Agent 或 Grafana Alloy 生成的指标。
有关如何配置这些功能的详细信息,请参阅Tempo 数据源文档。
服务图视图显示什么?
使用此视图,您可以查看类型为 server 的前五个 Span(列在 Name
列中)。您可以使用过滤器优化任何这些数据。选择任何数据点可以让您查看更具体的数据。
服务图视图提供 Span 指标可视化(表格)和服务图(节点图)。此外,您可以使用过滤器自定义显示的数据。
您可以选择表格中任何带有下划线的信息以显示更详细的信息。您也可以选择服务图中的任何节点以显示附加信息。
错误率示例
假设我们想进一步了解为什么 cortex.Ingester
错误率最高。选择错误率列的第二行将在右侧的新窗口中显示 Span 指标的详细信息。
用于生成数据的指标查询显示在指标浏览器字段中。
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 的搜索结果。 | 不适用 |
服务图
服务图(节点图)是各种服务之间相互关系的视觉表示。服务图有助于理解分布式系统的结构,以及其组件之间的连接和依赖关系。
服务图推断分布式系统的拓扑,提供系统健康状况的高级概览,以及系统拓扑的历史视图。服务图显示错误率和延迟等相关数据。服务图布局可以是默认布局或网格布局。
如果您使用指标生成器,它会处理跟踪并生成时间序列指标形式的服务图,例如
traces_service_graph_request_total{client="app", server="db"} 20
有关服务图及其计算方式的详细信息,请参阅服务图文档。
使用过滤器显示详细信息
服务图视图使用服务图和 Span 指标作为访问跟踪信息的门户。此仪表盘来源于一组固定的指标查询。这些底层查询无法更改。但是,您可以通过过滤来选择要包含在指标查询中的跟踪。
您可以通过单击可选项或使用过滤器来探索数据。
选择项目或节点以获取更多详细信息
单击可选项,例如表格中带下划线的文本或服务图中的节点,可根据您的选择显示具体详细信息。
在表格中,您可以选择速率、错误率、持续时间 (p90) 和链接列中的项目。选择其中一项可提供 Span 指标的详细信息。
您可以查看服务图中任何节点的请求速率、请求直方图、失败请求速率和跟踪。要查看更多信息,请选择服务图中的节点,然后从弹出窗口中选择一个选项。有关导航服务图的详细信息,请参阅节点图面板文档。
使用指标查询过滤
使用屏幕顶部的过滤器,您可以根据 Span 属性(键值对或标签)缩小数据集范围。过滤器构建查询以优化服务图和 Span 指标中显示的内容。您可以添加一个或多个标签过滤器。
使用过滤器的方法
在服务图顶部,选择过滤旁边的文本框以显示可用标签列表。
选择或搜索标签的值。在此例中,server 的值等于 tempo-ingester。默认运算符是等于 (=)。
可选:通过选择 = 并从下拉列表中选择新选项来更改运算符。
可选:添加附加键值对以细化数据集。任何后续标签过滤器都使用 AND,这要求两个键值对都存在才能匹配。
选择运行查询。
可以通过选择过滤器下拉菜单并选择 – 移除过滤器 – 来移除过滤器。
每个字段或标签代表一个键值对。数字 1 选择一个服务作为标签,其值为 Go-http-client
(2)。第二个键值对的客户端标签值为 02e807
。
如果您的指标查询过于具体,可能不会返回任何结果。
将过滤器更新为不太具体会返回结果。在此例中,结果仅显示与 span_name
标签值为 /base.Ruler/Rules
关联的 Span 指标数据。没有服务图数据可用。