2.2.4. Jaeger 介绍

每次用户在某个应用程序中执行一项操作时,一个请求都会在所在的系统上执行,而这个系统可能需要几十个不同服务的共同参与才可以做出相应的响应。这个请求的路径是一个分布式的事务。Jaeger 提供了分布式追踪功能,可以在组成一个应用程序的多个微服务间追踪请求的路径。

分布式追踪是用来将不同工作单元的信息关联起来的技术,通常是在不同进程或主机中执行的,以便理解分布式事务中的整个事件链。分布式追踪可让开发人员在大型服务架构中视觉化调用流程。它对理解序列化、平行和延迟来源会很有价值。

Jaeger 在微服务的整个堆栈中记录了独立请求的执行过程,并将其显示为 trace。trace是系统的数据/执行路径。一个端到端的 trace 由一个或者多个 span 组成。

span 代表 Jaeger 中的逻辑工作单元,它包含操作名称、操作的开始时间和持续时间。span 可能会被嵌套并排序以模拟因果关系。

2.2.4.1. 分布式追踪概述

作为服务所有者,您可以使用分布式追踪来检测您的服务,以收集与服务架构相关的信息。您可以使用分布式追踪来监控、网络性能分析,并对现代、云原生的基于微服务的应用中组件之间的交互进行故障排除。

通过分布式追踪,您可以执行以下功能:

  • 监控分布式事务
  • 优化性能和延迟时间
  • 执行根原因分析

Red Hat OpenShift distributed tracing 包括两个主要组件:

  • Red Hat OpenShift distributed tracing Platform - 此组件基于开源 Jaeger 项目
  • Red Hat OpenShift distributed tracing 数据收集 - 此组件基于开源 OpenTelemetry 项目

这两个组件都基于厂商中立的 OpenTracing API 和工具。