架构
该架构基于 Istio、OpenTelemetry 和 Jaeger 技术栈,实现分布式追踪的全生命周期管理。系统由数据采集、传输、存储、查询和可视化五个核心模块组成。

目录
核心组件
-
Istio 系统
- istio-proxy
一个 sidecar 代理,自动捕获并生成服务间通信的追踪数据,无需修改代码。 - istiod
控制 istio-proxy 的配置和生命周期,包括服务网格的追踪配置。
- istio-proxy
-
OpenTelemetry 系统
- opentelemetry-operator
一个集群级 Operator,负责部署和管理 otel-collector 组件,提供 OTel 自动注入能力。 - otel-collector
接收来自应用的追踪数据,进行过滤和批处理,然后转发给 jaeger-collector。 - Tracing UI
自研的可视化界面,集成 jaeger-query API,支持多维度查询条件。
- opentelemetry-operator
-
Jaeger 系统
- jaeger-operator
部署和管理 jaeger-collector 及 jaeger-query 组件。 - jaeger-collector
接收 otel-collector 转发和处理的追踪数据,进行格式转换,并写入 Elasticsearch。 - jaeger-query
提供追踪查询 API,支持包括 TraceID 和标签在内的多条件检索。
- jaeger-operator
-
存储层
- Elasticsearch
一个分布式存储引擎,支持对海量 Span 数据的高效写入和检索。
- Elasticsearch
数据流
-
Istio 写入流程
Application -> jaeger-collector -> Elasticsearchistio-proxy 自动捕获服务间通信的追踪数据,直接发送至 jaeger-collector,持久化存储到 Elasticsearch。
-
OpenTelemetry 写入流程
Application -> otel-collector -> jaeger-collector -> Elasticsearch应用通过 SDK 或自动注入生成 Span 数据,otel-collector 进行标准化处理,随后由 jaeger-collector 持久化到 Elasticsearch。
-
查询流程
User -> Tracing UI -> jaeger-query -> Elasticsearch用户通过 UI 提交查询条件,jaeger-query 从 Elasticsearch 检索数据;UI 根据返回数据进行可视化展示。