This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
一、存储
ES、Prometheus、Tempo 均二进制部署在k8s集群外部
二、采集、处理、中转
OpenTelemetry Collector 其它 部署在 k8s 集群内
1、DaemonSet Collector 采集(节点 / 容器级)「指标 + 日志」
2、Deployment Collector 接收DaemonSet Collector 的数据、处理、中转至存储「追踪数据」
三、三种类型数据
1、指标数据( 最终到 Prometheus)
采集方: OTel Collector( 部署在 k8s 内的DaemonSet 模式)
采集内容:节点 CPU / 内存 / 磁盘( 替代node-exporter) 、容器资源使用率( 替代kubelet指标) 、业务 Pod 的自定义指标(需应用集成 OTel SDK) 。
处理方: OTel Collector( Deployment 模式,集群级聚合)
处理逻辑:标准化指标格式、补充 k8s 标签( 如集群名、Pod 名)、批处理。
发送方: OTel Collector
发送协议: Prometheus Remote Write
接收方:集群外的 Prometheus。
graph TD
A[k8s节点] -->|DaemonSet Collector采集| B[节点CPU/内存/磁盘指标]
C[k8s容器] -->|DaemonSet Collector采集| D[容器使用率指标]
B -->|上报| E[Deployment Collector]
D -->|上报| E[Deployment Collector]
E -->|标准化+批处理| F[Remote Write协议]
F -->|转发| G[集群外Prometheus]
2. 日志数据(最终到 ES)
采集方: OTel Collector( DaemonSet 模式)
采集内容: k8s 节点/var/log/containers目录下的容器日志( 替代 Filebeat) 。
处理方: OTel Collector( Deployment 模式)
处理逻辑: 解析日志格式( JSON / 正则)、过滤冗余日志、补充 k8s 资源标签。
发送方: OTel Collector
发送协议: Elasticsearch API
接收方:集群外的 ES。
3. 请求链路(追踪数据,最终到 Tempo)
采集方:分两种场景
基础设施链路: OTel Collector( Deployment 模式)采集 k8s 组件的链路数据(如 Ingress/Nginx)
业务链路: 业务应用集成OTel SDK( 如 Java Agent、Go SDK) , 在应用内部采集请求链路。
处理方: OTel Collector( Deployment 模式)
处理逻辑:标准化 Trace 格式、关联 k8s 资源信息、批处理。
发送方: OTel Collector
发送协议: OTLP( OpenTelemetry 协议,支持 gRPC/HTTP)
接收方:集群外的 Tempo。
graph LR
A[指标接收器] -->|metrics流水线| B[指标处理器] --> C[Prometheus导出器]
D[日志接收器] -->|logs流水线| E[日志处理器] --> F[ES导出器]
G[追踪接收器] -->|traces流水线| H[追踪处理器] --> I[Tempo导出器]