遥测流水线是什么
遥测流水线是可观测性数据链路的通用形态:agent 或采集器收集数据,网关统一加工(批处理、过滤、脱敏、采样、路由),再写入时序库、日志库或链路库,供看板、告警与临时查询消费。它把采集与消费解耦,中间层成为统一治理点——脱敏、采样、字段规范只在一处维护,应用侧只负责产出数据。
基本信息
| 采集层 | agent、exporter、SDK 直接上报 |
|---|---|
| 加工层 | 批处理、过滤、脱敏、采样、路由 |
| 存储层 | TSDB、日志库、链路库按信号分治 |
| 消费层 | 告警、看板、临时查询、审计 |
| 常见实现 | OpenTelemetry Collector、Vector、Logstash、Fluent Bit |
典型使用场景
- 统一脱敏:在网关层去掉手机号、身份标识等敏感字段
- 采样治理:把采样决策集中到网关,避免每个服务各写一套策略
- 协议转换:把不同协议的遥测数据归一成统一格式再写入后端
- 削峰缓冲:写入洪峰由中间层的批处理与队列吸收
- 路由分发:按租户或环境把数据写入不同后端与不同保留期
设计要点
- 管道自身要被监控:数据停止流入时业务不会报错,必须配心跳指标
- 采样点统一规划,应用侧与网关侧重复采样会让实际采样率低于预期
- 中间层是单点,需要多副本与本地缓冲,避免故障时全链路数据一起丢
- 字段规范与命名在中间层统一,避免下游为同一含义维护多套映射
- 容量按原始量、加工后量、存储放大三段分别估算
Collector 管道结构
Collector 管道结构
receivers:
otlp:
protocols:
grpc: {}
http: {}
processors:
batch: {}
exporters:
otlp:
endpoint: backend:4317
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp]分层与故障表现
| 分层 | 职责 | 故障表现 |
|---|---|---|
| 采集 | 产生并上报数据 | 业务侧无异常但监控缺数据 |
| 加工 | 批处理、过滤与脱敏 | 字段丢失或采样率低于预期 |
| 存储 | 按信号分治保存 | 写入被拒或查询变慢 |
| 消费 | 告警与看板 | 数据在但人看不到结论 |
管道故障常常是静默的:数据停止流入而业务没有任何报错,因此必须对管道自身的吞吐、延迟与丢弃量做监控。