文章目录
- jaeger安装和使用
- 什么是jaeger
- jaeger安装
jaeger安装和使用
什么是jaeger
官网:https://www.jaegertracing.io/
Jaeger 是一个分布式追踪系统。Jaeger的灵感来自 Dapper 和 OpenZipkin,是一个由 Uber 创建并捐赠给 云原生计算基金会(CNCF) 的分布式跟踪平台。它可以用于监控基于微服务的分布式系统:
- 分布式上下文传递
- 分布式事务监听
- 根因分析
- 服务依赖性分析
- 性能/延迟优化
jaeger是100%开源、云原生、可无限扩展的。Jaeger后端设计为无单点故障,并可根据业务需求进行扩展。例如,通常 Uber 的任何一个 Jaeger 实例每天都要处理数十亿个 span。
**Jaeger对分析性能和延迟以及进行优化特别有帮助。**有了Jaeger,进行根本原因分析和研究服务依赖关系要容易得多。例如,Jaeger可用于识别特定微服务延迟的高峰,包括那些影响最终用户体验的微服务。
Jaeger 和 Prometheus 是最常用的两种可观测性后端。Jaeger 用于收集和展示链路追踪数据,而 Prometheus 则专注于指标数据的收集与存储。
jaeger安装
官方文档:https://www.jaegertracing.io/docs/2.4/deployment/
all in one 模式,专为快速本地测试而设计。它通过内存存储组件启动Jaeger UI、collector收集器、query查询和agent代理。因此重启 dockre 后就看不到之前的数据了。所以,该模式仅用于前期的 demo 或者测试验证,不可在生产环境中使用这种模式部署。
Jaeger 从 1.35 版本开始支持 OTLP。你可以通过以下方式配置 Jaeger 以接收 OTLP 数据:
docker run --rm --name jaeger \-e COLLECTOR_OTLP_ENABLED=true \-e COLLECTOR_OTLP_HTTP_HOST_PORT=0.0.0.0:4318 \-p 6831:6831/udp \-p 6832:6832/udp \-p 5778:5778 \-p 16686:16686 \-p 4317:4317 \-p 4318:4318 \-p 14250:14250 \-p 14268:14268 \-p 14269:14269 \-p 9411:9411 \jaegertracing/all-in-one:1.59
OTEL Collector升级后,OTLP接收器默认监听地址改为localhost,导致容器环境中其他容器无法访问,临时解决方法是通过设置环境变量指定监听0.0.0.0.
相关资料:https://blog.cnbattle.com/release/jaegertracing-jaeger-v1.59.0/
Jaeger 默认将 OTLP HTTP 服务绑定到 localhost
,需要将其修改为 0.0.0.0
,以允许外部访问。
- COLLECTOR_OTLP_GRPC_HOST_PORT=0.0.0.0:4317
- COLLECTOR_OTLP_HTTP_HOST_PORT=0.0.0.0:4318
浏览器Web UI: http://localhost:16686/