配置 traces 到 profiles
注意
你的应用必须配置性能分析和追踪的插桩。更多信息,请参考关联 traces 到 profiles。
使用 Trace to profiles 功能,你可以利用 Grafana 关联不同信号的能力,添加 traces 和 profiles 之间的链接功能。
Trace to profiles 使你能够将 Grafana Pyroscope 数据源与追踪数据关联。配置后,此连接允许你使用 Explore 从 trace span 运行查询到 profile 数据。每个 span 都链接到你的查询。点击链接会在分屏面板中运行查询。如果配置了标签,Grafana 会动态地将 span 属性值插入到查询中。查询将运行在 (span 开始时间 - 60) 到 (span 结束时间 + 60 秒) 的时间范围内。
在每个具有关联 profile 的 span 详情部分,还会嵌入火焰图。这使你无需离开当前视图即可查看每个 span 的资源消耗火焰图可视化。
配置 trace to profiles 功能有两种方式:
- 使用带有默认查询的基本配置,或者
- 配置自定义查询,你可以在其中使用模板语言插值 trace 或 span 中的变量。
开始之前
Traces to profile 功能需要配置了 Traces to profiles 的 Tempo 数据源以及一个 Grafana Pyroscope 数据源。
与 traces 类似,你的应用需要进行插桩以发送性能分析数据。更多信息,请参考使用 Span Profiles 关联追踪和性能分析。
使用基本配置
要使用基本配置,请按照以下步骤操作:
在左侧菜单中,选择 Connections > Data sources。
从数据源列表中选择你已配置的 Tempo 数据源。
向下滚动到 Traces to profiles 部分。
在数据源下拉列表中选择一个 Pyroscope 数据源。
可选:添加一个或多个要在查询中使用的标签。如果留空,将使用默认值
service.name
和service.namespace
。要显示追踪到性能分析的 Span 链接,您配置的标签必须存在于 Span 的属性或资源中。
您可以选择为标签配置一个新名称。如果标签名称中包含点,并且目标数据源不允许标签中包含点,则此功能非常有用。在这种情况下,您可以将
service.name
重新映射到service_name
。选择一个或多个要在查询中使用的性能分析类型。选择下拉菜单并从菜单中选择选项。
必须选择性能分析类型或应用程序,查询才有效。如果运行查询时未选择性能分析类型或应用程序,Grafana 将不会显示任何数据。
选择保存并测试。
如果您已配置 Pyroscope 数据源但没有可用的性能分析数据,或者此 Span 的性能分析按钮和嵌入式火焰图不可见,请验证 Span 标签中是否存在 pyroscope.profile.id
键值对。
配置自定义查询
要将自定义查询与配置一起使用,请按照以下步骤操作
在左侧菜单中,选择 Connections > Data sources。
从数据源列表中选择一个已配置的 Tempo 数据源。
向下滚动到 Traces to profiles 部分。
在数据源下拉列表中选择一个 Pyroscope 数据源。
可选:选择要在查询中使用的任何标签。如果留空,将使用默认值
service.name
和service.namespace
。这些标签可以在自定义查询中使用
${__tags}
变量。此变量将映射的标签以内插形式作为列表提供,其语法适用于数据源。仅包含 Span 中存在的标签。不存在的标签将被忽略。您还可以为标签配置名称。如果标签名称中包含点,并且目标数据源不允许在标签中使用点,则标签名称很有用。例如,您可以将
service.name
重新映射到service_name
。如果您此处未映射任何标签,仍然可以在查询中使用任何标签,例如:method="${__span.tags.method}"
。了解更多关于自定义查询变量的信息。选择一个或多个要在查询中使用的性能分析类型。选择下拉菜单并从菜单中选择选项。
启用使用自定义查询以输入自定义查询。
指定用于查询性能分析数据的自定义查询。您可以使用各种变量使查询与当前 Span 相关。仅当所有变量都以非空值进行内插时,链接才会显示,以防止创建无效查询。您可以使用
$__tags
关键字内插已配置的标签。选择保存并测试。
配置选项
下表描述了配置追踪到性能分析设置的选项
设置名称 | 描述 |
---|---|
数据源 | 定义目标数据源。您可以选择 Pyroscope [性能分析] 数据源。 |
标签 | 定义要在性能分析查询中使用的标签。默认值:cluster 、hostname 、namespace 、pod 、service.name 、service.namespace 。您可以更改标签名称,例如,如果目标数据源不允许名称中包含点,则可以删除名称中的点。例如,将 http.status 映射到 http_status 。 |
性能分析类型 | 定义查询中使用的性能分析类型。 |
使用自定义查询 | 切换是否使用自定义查询并进行内插。 |
查询 | 输入自定义查询。使用变量内插从 Span 中获取变量进行自定义。 |