3. 管线(Pipeline)的定义与组成:Receivers、Processors、Exporters、Connectors
在 OpenTelemetry 架构中,Pipeline(管线)是数据采集、处理与导出的核心执行单元。一个 Pipeline 定义了“从哪收 → 怎么改 → 发到哪”的完整链路。平台工程团队通过自助目录将 Pipeline 抽象为可组合的配置单元,让应用团队无需理解底层 Collector 细节即可完成观测数据接入。
3.1 Pipeline 的基本定义
Pipeline 是 OpenTelemetry Collector 中串联 Receivers、Processors、Exporters 的有向数据流。数据从 Receiver 进入,经过零个或多个 Processor 处理,最终由 Exporter 发送到后端。Connectors 则用于在多个 Pipeline 之间桥接数据,实现跨管线通信。
3.2 四大组件的职责与对比
| 组件 | 职责 | 输入 | 输出 | 典型场景 |
|---|---|---|---|---|
| Receiver | 数据接入入口 | 外部系统(应用 SDK、其他 Collector、Prometheus 等) | 内部 pdata 格式 | OTLP gRPC/HTTP、Jaeger、K8s 集群指标 |
| Processor | 数据处理与转换 | pdata 格式 | 处理后的 pdata 格式 | 采样、过滤、属性修改、批处理 |
| Exporter | 数据导出到后端 | pdata 格式 | 外部系统(存储、分析平台) | OTLP、Prometheus Remote Write、S3、Datadog |
| Connector | 管线间数据桥接 | 上游 Pipeline 输出 | 下游 Pipeline 输入 | Trace → Metrics 衍生、Logs → Metrics 聚合 |
3.3 Pipeline 的典型拓扑结构
下图展示了一个包含两个 Pipeline 的典型部署:Trace Pipeline 负责链路数据采集与采样,Metrics Pipeline 负责指标聚合与导出,两者通过 Connector 实现数据衍生。
3.4 组件详解
3.4.1 Receiver:数据接入入口
Receiver 负责从外部系统接收观测数据,并将其转换为 Collector 内部统一的 pdata(Pipeline Data)格式。平台工程团队在自助目录中预置常用 Receiver 模板,应用团队只需选择数据源类型即可。
常用 Receiver 清单:
- OTLP Receiver:接收 OTLP 协议数据(gRPC/HTTP),是应用 SDK 的首选接入方式
- Jaeger Receiver:兼容 Jaeger 协议,用于迁移场景
- Prometheus Receiver:从 Prometheus 端点抓取指标
- Kubernetes Cluster Receiver:采集 K8s 集群状态指标
- Filelog Receiver:从日志文件采集,支持多行合并
3.4.2 Processor:数据处理与转换
Processor 是 Pipeline 中最灵活的组件,负责对数据进行过滤、增强、聚合、采样等操作。Processor 的执行顺序决定了最终数据质量。
batch 应放在 filter 之后,否则过滤后的空批次仍会占用资源。自助目录应提供“推荐顺序”校验。
Processor 分类与典型用途:
| 类别 | Processor 名称 | 核心功能 | 性能影响 |
|---|---|---|---|
| 采样 | tail_sampling / probabilistic_sampler | 按策略保留部分 Trace,降低存储成本 | 中 |
| 批处理 | batch | 合并数据为批次,提升导出效率 | 低(推荐始终启用) |
| 过滤 | filter / attributes | 按条件丢弃或保留数据 | 低 |
| 属性修改 | attributes / resource / span | 添加、删除、修改属性或资源标签 | 低 |
| 衍生 | span_metrics / servicegraph | 从 Trace 生成指标或服务拓扑 | 高(建议单独 Pipeline) |
3.4.3 Exporter:数据导出到后端
Exporter 将处理后的数据发送到外部存储或分析平台。平台工程团队应在自助目录中封装后端连接信息,应用团队只需选择“目标环境”即可。
典型 Exporter 配置示例(OTLP):
exporters:
otlp:
endpoint: "https://otel-backend.example.com:4318"
headers:
"Authorization": "Bearer ${env:OTEL_AUTH_}"
compression: gzip
tls:
insecure: false
ca_file: "/etc/ssl/certs/ca-certificates.crt"
3.4.4 Connector:管线间数据桥接
Connector 是 OpenTelemetry Collector v0.55+ 引入的组件,允许一个 Pipeline 的输出直接作为另一个 Pipeline 的输入,无需经过 Exporter/Receiver 网络传输。这在以下场景中极为有用:
- Trace → Metrics:使用
span_metricsConnector 从 Trace 数据中生成 RED 指标 - Logs → Metrics:从日志中提取错误率等指标
- Metrics → Metrics:对指标进行二次聚合或降采样
3.5 Pipeline 配置的完整示例
以下是一个生产级 Pipeline 配置,包含 Trace 和 Metrics 两条管线,并通过 Connector 桥接:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
batch:
timeout: 1s
send_batch_size: 1024
memory_limiter:
check_interval: 1s
limit_mib: 512
attributes:
actions:
- key: environment
value: production
action: upsert
exporters:
otlp:
endpoint: "https://backend.example.com:4318"
tls:
insecure: false
prometheus:
endpoint: "0.0.0.0:8889"
connectors:
span_metrics:
histogram:
explicit:
buckets: [0.1, 0.5, 1, 2, 5, 10]
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, attributes, batch]
exporters: [otlp, span_metrics]
metrics:
receivers: [span_metrics]
processors: [batch]
exporters: [prometheus]
3.6 自助目录中的 Pipeline 抽象
在平台工程自助目录中,Pipeline 被抽象为以下层级:
- 信号类型:Traces / Metrics / Logs(用户选择)
- 数据源:预置 Receiver 模板(用户选择数据源类型)
- 处理策略:预置 Processor 组合(用户选择采样率、过滤规则等)
- 目标后端:预置 Exporter 模板(用户选择环境)
- 衍生需求:是否启用 Connector 桥接(可选)
3.7 组件选型决策矩阵
下表帮助平台团队在自助目录中为不同场景推荐合适的组件组合:
| 场景 | 推荐 Receiver | 推荐 Processor | 推荐 Exporter | 是否需要 Connector |
|---|---|---|---|---|
| 微服务 Trace 采集 | otlp | batch + tail_sampling | otlp | 可选(span_metrics) |
| K8s 集群指标 | k8s_cluster + prometheus | filter + batch | prometheus | 否 |
| 日志文件采集 | filelog | batch + attributes | otlp / elasticsearch | 否 |
| Trace 衍生指标 | otlp | batch | otlp | 是(span_metrics → metrics Pipeline) |
| 边缘节点聚合 | otlp | memory_limiter + batch | otlp(压缩) | 否 |
3.8 本章小结
Pipeline 是 OpenTelemetry 数据流的骨架,Receivers 定义数据入口,Processors 定义数据变换,Exporters 定义数据出口,Connectors 实现管线间高效桥接。平台工程团队通过自助目录将这四类组件封装为可组合的配置单元,使应用团队能够以“搭积木”的方式快速构建符合平台标准的观测管线。