1. 课程导论与目标
1.1 为什么需要 OpenTelemetry + 值班机器人告警
现代分布式系统规模持续增长,微服务、容器化与云原生架构的普及使得系统可观测性面临严峻挑战。传统监控方案往往存在以下痛点:
- 数据孤岛:指标、日志、链路追踪各自独立,无法关联分析。
- 告警疲劳:阈值触发式告警产生大量无效通知,值班人员逐渐麻木。
- 响应滞后:从故障发生到人工介入,中间缺少自动化事件处理环节。
- 上下文缺失:告警消息仅包含数值,缺乏故障根因的关联信息。
OpenTelemetry 作为 CNCF 孵化的可观测性标准,统一了指标、日志、链路追踪的数据采集与导出规范。结合值班机器人(如 PagerDuty、Opsgenie、飞书机器人、钉钉机器人等)的事件驱动能力,可以实现从数据采集 → 异常检测 → 事件触发 → 自动通知 → 协同响应的完整闭环。
课程核心理念:将 OpenTelemetry 的丰富可观测数据转化为结构化事件,通过值班机器人精准触达责任人,让告警不再是噪声,而是可行动的故障上下文。
1.2 整体架构概览
本课程所构建的告警体系采用分层架构,从数据采集到最终通知共包含五个核心层级:
| 层级 | 组件 | 职责 |
|---|---|---|
| 数据采集层 | OpenTelemetry SDK / Collector | 从应用、基础设施采集指标、日志、链路数据 |
| 数据处理层 | OpenTelemetry Collector + 处理器 | 数据过滤、采样、聚合、属性增强 |
| 事件生成层 | 告警规则引擎 / 事件转换器 | 基于可观测数据生成结构化告警事件 |
| 事件路由层 | 事件总线 / Webhook 网关 | 将事件分发至对应值班机器人渠道 |
| 通知与协同层 | 值班机器人(飞书/钉钉/PagerDuty) | 触达值班人员,提供故障上下文与操作入口 |
1.3 课程学习目标
完成本课程后,你将具备以下能力:
- 掌握 OpenTelemetry 核心概念:理解指标、日志、链路追踪三大信号的数据模型与采集方式。
- 搭建生产级数据管道:使用 OpenTelemetry Collector 完成数据采集、处理与导出。
- 设计告警规则与事件模型:将可观测数据转化为结构化告警事件,包含严重级别、故障域、关联链路等上下文。
- 对接主流值班机器人:实现与飞书机器人、钉钉机器人、PagerDuty 等平台的事件推送与自动通知。
- 构建事件触发闭环:实现告警自动创建、升级、关闭与值班排班联动。
- 实战演练:通过一个完整的微服务 Demo,从零搭建 OpenTelemetry + 值班机器人告警系统。
1.4 前置知识要求
本课程面向 SRE、运维工程师、后端开发人员,建议具备以下基础:
| 知识领域 | 具体要求 | 重要程度 |
|---|---|---|
| Linux 基础 | 熟悉命令行操作、进程管理、网络配置 | ⭐⭐⭐ |
| 容器与 Docker | 了解容器化部署,能编写 Dockerfile 和 docker-compose.yml | ⭐⭐⭐ |
| Python 基础 | 能阅读和编写简单 Python 脚本,理解 HTTP 请求 | ⭐⭐ |
| 监控告警基础 | 了解 Prometheus、Grafana 等常见监控工具的基本概念 | ⭐⭐ |
| Webhook 概念 | 了解 HTTP 回调机制,知道如何发送和接收 Webhook | ⭐ |
注意:如果你对 OpenTelemetry 完全陌生,不必担心。本课程第 2-4 章会系统讲解 OpenTelemetry 的核心概念与配置方法,确保零基础也能跟上。
1.5 课程内容路线图
本课程共 30 章,分为五个阶段:
- 第一阶段(第 1-4 章):OpenTelemetry 基础与数据采集
- 第二阶段(第 5-10 章):告警规则设计与事件模型
- 第三阶段(第 11-18 章):值班机器人接入与事件路由
- 第四阶段(第 19-25 章):高级特性与生产化实践
- 第五阶段(第 26-30 章):综合实战与故障演练
1.6 课程环境与工具准备
为了顺利完成课程实验,请提前准备以下环境:
- 操作系统:macOS / Linux / Windows(WSL2 推荐)
- Docker & Docker Compose:用于快速部署 OpenTelemetry Collector、Prometheus、Grafana 等组件
- Python 3.8+:用于编写自定义事件处理器和模拟应用
- 代码编辑器:VS Code 或 PyCharm
- 值班机器人账号:至少准备一个机器人平台(飞书、钉钉、PagerDuty 任选其一)
快速开始提示:本课程所有实验代码均提供 Docker Compose 一键部署脚本,你只需安装 Docker 即可跟随操作,无需手动配置复杂依赖。