You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Data Links从Grafana跳转至Jaeger时指向错误追踪

问题描述

我们正将Grafana、Jaeger、Prometheus等工具接入生产环境。在此过程中,我们为各类服务/操作配置了图表,希望能从图表中的“峰值”直接跳转至对应追踪(Grafana Explorer或Jaeger中),但目前匹配出现异常。

我们通过数据字段转换(重命名“Organize fields”)使Data Links可用,将Trace ID重命名为TraceId,随后为图表添加本地数据链接模板:
http://localhost:16686/trace/${__data.fields['TraceId']}

配置详情如下:

  • 图表类型:Time Series
  • 数据源:Jaeger
  • 查询语句:Service=<Our Service>, Operation=All, Tags="category=REQUEST"
  • 限制条数:2500
  • 转换规则:Organize Fields: Trace ID -> TraceId
  • 数据链接:http://localhost:16686/trace/${__data.fields['TraceId']}

表面上该配置生效,但实际点击图表峰值跳转时,会指向完全错误的追踪。放大查看时,工具提示中的时长与目标追踪匹配,但链接的Trace ID却与图表数据点顺序反转。例如4个数据点的Trace ID与链接对应关系完全颠倒,请问我们的配置存在什么问题?

问题原因与解决办法

核心问题是Grafana时间序列图表的Data Links引用字段值时,是按字段的原始返回顺序匹配,而非数据点的时间展示顺序。

Jaeger数据源默认按追踪结束时间倒序返回数据(最新追踪在前),但Grafana时间序列图表会将这些数据按时间戳正序展示(最早的点在左,最晚的在右),这就导致字段数组里的TraceId顺序和图表数据点的显示顺序完全反转,点击时自然会拿到错误的TraceId。

解决方式有两种:

  1. 修改Jaeger查询排序规则(优先推荐)
    在查询语句中添加Sort=startTime,让Jaeger按追踪开始时间正序返回数据,确保字段数组的TraceId顺序和图表展示顺序一致。修改后的查询语句示例:
    Service=<Our Service>, Operation=All, Tags="category=REQUEST", Sort=startTime
    现有字段转换和Data Links配置无需改动。

  2. 通过Grafana转换规则调整顺序
    添加一个Sort by field转换,选择按时间字段(比如Start Time)正序排序,让TraceId的顺序与数据点展示顺序对齐。这种方式属于在Grafana层做二次处理,适合无法修改Jaeger查询规则的场景。

内容的提问来源于stack exchange,提问作者Jens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 06:09:21