OpenTelemetry 是什么
它是厂商中立的遥测标准与工具集:定义采集接口、提供各语言的实现、附带统一的数据处理管道,以及一套字段命名约定。目标是让埋点代码与后端存储解耦,替换后端不必改动业务代码。
项目结构
项目由几部分组成:接口层供业务代码调用,实现层负责采样、批处理与导出,收集器负责接收、加工与转发,语义约定统一字段命名。应用通常只依赖接口与少量配置,后端替换与数据加工都在收集器完成。
基本信息
| 接口层 | 定义埋点接口,业务代码依赖它 |
|---|---|
| 实现层 | 负责采样、批处理与导出 |
| 收集器 | 统一接收、加工与转发遥测数据 |
| 语义约定 | 统一字段命名与取值 |
| 覆盖信号 | 指标、日志与链路 |
典型使用场景
- 统一埋点:多语言服务使用同一套接口与字段命名
- 后端解耦:更换存储与展示系统时不改业务代码
- 集中加工:在收集器统一做过滤、采样与补充属性
- 渐进迁移:新服务用标准埋点,旧服务逐步改造
- 多云与自建并存:收集器承接不同后端的分发需求
组件分工
| 组件 | 作用 | 谁使用 |
|---|---|---|
| 接口层 | 定义链路、指标与日志的埋点接口 | 应用代码依赖 |
| 实现层 | 负责采样、批处理与导出 | 进程内运行时 |
| 收集器 | 接收、处理与转发遥测数据 | 基础设施层 |
| 语义约定 | 规定字段命名与取值 | 全链路统一口径 |
采用时的注意点
- 先统一服务命名与字段约定,再谈后端接入
- 收集器要规划容量与高可用,它是全链路的汇聚点
- 版本升级关注接口变动说明,锁定版本后再灰度
- 自动埋点与手动埋点配合使用,语义仍靠手工补充
它提供的是标准与管道,不是存储与界面:数据最终流向哪个后端、如何查询展示,仍由链路存储与可视化系统承担。
把它当成开箱即用的监控平台会落空:没有后端与看板,采集到的遥测数据无法被有效使用。