一、存储 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导出器] 10.0.0.38:9090 10.0.0.38:9200 elastic -0NiIBOJGn2CATuPWzNc