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导出器] |