Jaeger是否支持Grafana Tempo作为后端存储?
技术栈可行性结论
这套Grafana Tempo作为后端存储、Jaeger作为UI的技术栈完全可以正常搭配使用。Jaeger官方文档没有相关说明,是因为原生Jaeger的内置存储实现没有包含Tempo,但Tempo本身做了Jaeger生态的兼容适配,不需要改造核心组件就能对接。
两种常用对接方案
- 轻量化直接对接方案
Tempo默认在3200端口暴露兼容Jaeger查询协议的HTTP接口,你只需要修改Jaeger UI的启动配置,将查询后端地址指向Tempo的对应接口即可,不需要部署额外的中间组件。示例Docker环境下的Jaeger UI启动环境变量配置:jaeger-ui: image: jaegertracing/jaeger-ui:latest environment: - QUERY_HOST_PORT=tempo:3200 depends_on: - tempo - 带OpenTelemetry Collector的扩展方案
如果你的链路数据来自多源、需要做统一采样、格式转换或者流量控制,可以在链路上报侧和存储之间增加OpenTelemetry Collector:Collector接收各类格式的链路数据(包括Jaeger原生格式),处理后批量导出到Tempo存储,查询阶段依然走Tempo的兼容接口给Jaeger UI返回数据,这种方案扩展性更强,适合后续链路追踪体系扩容的场景。
注意事项
- 最新的官方Tempo镜像默认已经开启Jaeger查询接口支持,不需要额外配置
- 跨Docker容器网络访问时,要确认Tempo的
3200端口在同一网络下对Jaeger UI容器可访问
内容的提问来源于stack exchange,提问作者Jiří Šafář
相关产品推荐
相关产品推荐

