概述
Jaeger 是用于追踪分布式服务之间事务的开源软件。它用来监控复杂的微服务环境并对其进行故障排除。
Jaeger 组件及相关术语
Jaeger 将执行请求显示为一条条迹线(trace)。迹线代表系统中的数据/执行路径。
一个迹线包含一个或多个跨度(span)。跨度是 Jaeger 中作业的逻辑单元。每个跨度都由作业名称、开始时间和持续时间组成。跨度可以进行嵌套和排序。
Jaeger 内含多个组件,这些组件可以协同工作,一起收集、存储和可视化跨度与迹线。
Jaeger 客户端包括含用于分布式跟踪的 OpenTracing API 的特定语言实施。您可以手动使用这些实施,也可以将其与各种开源框架一起使用。
Jaeger 代理是一个网络守护进程,可侦听通过用户数据报协议发送的跨度。该代理应与所检测的应用放置在同一主机上。这通常是通过 Kubernetes 等容器环境中的 sidecar 实现的。
Jaeger 收集器可接收跨度并将它们放在队列中等待处理。
收集器需要持久的存储后端,因此 Jaeger 还具有可插拔的跨度存储机制。
查询是一项从存储中检索迹线的服务。
Jaeger 控制台是用于直观查看分布式跟踪数据的用户界面。
Jaeger 与红帽
Jaeger 是作为红帽® OpenShift® 服务网格的默认组件安装的,后者包括 Istio(一个开源服务网格)的实施。
这种分布式跟踪实施方案具有很多好处。Jaeger 可与 Kiali(Istio 的一个可观测性控制台)集成。Jaeger 后端支持根据业务需要大规模扩容,没有单点故障。Jaeger 可连接来自不同组件的数据,实现完整的端到端跟踪。Jaeger 还提供与 Zipkin 的向后兼容性。