Jaeger链路追踪如何过滤指定Span搭建分步骤监控仪表盘
答复
Jaeger原生UI能力边界
Jaeger原生UI 不支持 你需要的自定义独立仪表盘、按指定Span集合做聚合耗时统计的能力。
原生Jaeger UI的核心定位是单链路明细查询、调用拓扑展示,自带的统计面板仅支持服务、操作接口维度的粗粒度全链路耗时统计,既无法实现指定Span集合的过滤聚合,也不支持为不同角色配置专属的拆分视图,步骤1的长耗时波动会直接拉宽全局统计的Y轴范围,确实会掩盖短耗时步骤的性能劣化。
可行实现方案
不用调整现有全量Span采集、存储的逻辑,直接用Grafana对接现有Jaeger的存储后端即可完全满足需求,所有配置均在可视化层完成,不会修改或删除任何存量Span数据:
- 数据源对接:如果你的Jaeger用Elasticsearch/Cassandra做存储,直接在Grafana添加对应存储的数据源即可;如果已经部署了OpenTelemetry Collector,也可以将Span生成的耗时指标导出到Prometheus后对接Grafana,两种方式都可以读取全量Span数据。
- 三个专属仪表盘的配置逻辑:
- 步骤1专属仪表盘:查询时添加过滤规则,仅匹配步骤1对应的
span.name或自定义标签,聚合统计该Span的p50/p90/p99耗时、错误率、同比波动等指标即可,统计结果完全不受其他Span影响。 - 步骤2专属仪表盘:同理配置过滤规则匹配步骤2对应的Span属性,单独统计该步骤的耗时指标即可。
- 步骤3-5聚合仪表盘:查询时过滤匹配步骤3、4、5对应的Span集合,先按
traceID分组求和单条链路下这三个Span的总耗时,再基于聚合结果做全局的分位值、趋势、异常统计,即可得到三个步骤的总耗时监控视图。
- 步骤1专属仪表盘:查询时添加过滤规则,仅匹配步骤1对应的
- 额外适配能力:可以给三个仪表盘配置独立的访问权限,分别开放给对应负责流程优化的团队,还可以针对每个步骤的正常耗时阈值单独配置告警,比如步骤2耗时超过4小时、步骤3-5单步耗时超过30分钟时直接推送给对应负责人,不会被步骤1的1-2天级别的耗时阈值干扰。
注意事项
配置查询规则时,注意关闭Span级联聚合选项,不要自动关联匹配目标Span的子Span数据,避免统计到无关步骤的耗时,导致指标不准。
内容的提问来源于stack exchange,提问作者Hashcut
相关产品推荐
相关产品推荐

