简介
Jaeger组成:
- Jaeger Client 为不同语言实现了符合OpenTracing标准的SDK.应用程序通过API写入数据,client library把trace信息按照应用程序指定的采样策略传递给jaeger-agent.
- Agent 它是一个监听再UDP端口上接收span数据的网络守护进程,它会将数据批量发送给collector.它被设计成一个基础组件,部署到所有的宿主机上.Agent将client library和collector解耦,为client library屏蔽了路由和发现collector的细节
- collector 接收jaeger-agent发送来的数据.然后将数据写入到后端存储.collector被设计成无状态的组件,因此可以同事运行任意数量的jaeger-collector
- Data Store 后端存储被设计成一个可插拔的组件,支持将数据写入cassandra,elasticsearch
- Query 接收查询请求,然后从后端存储系统中检索trace并通过UI进行展示.Query是无状态的,可以启动多个实例,把他们部署再nginx这样的负载均衡器后面
分布式追踪系统发展很快,种类繁多,但核心步骤一般有三个:
- 代码埋点
- 数据存储
- 查询展示
安装
docker run \
--rm \
--name jaeger \
-p6831:6831/udp \
-p16686:16686 \
jaegertracing/all-in-one:latest
输入ip:16686进行测试