53 lines
2.6 KiB
Plaintext
53 lines
2.6 KiB
Plaintext
|
|
一、存储
|
|||
|
|
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导出器]
|