可观测性体系
---
章节:进阶篇第10章
难度:⭐⭐⭐ 进阶级
阅读时间:25-30 分钟
核心收获:建立完整可观测性体系,实现故障快速定位和性能优化
13.1 理论要点:没有度量就没有改进
13.1.1 三层可观测性
| 层级 | 内容 | 用途 | 工具示例 |
|---|---|---|---|
| 日志(Logs) | 每次运行的详细记录 | 故障排查 | 飞书多维表格、文本文件 |
| 指标(Metrics) | 触发率、成功率、成本 | 趋势监控 | 仪表盘、告警规则 |
| 审计(Audit) | 批次 ID、推送记录、人工干预 | 合规与回溯 | 数据库、版本控制 |
13.1.2 核心指标定义
| 指标 | 计算方式 | 告警阈值 | 用途 |
|---|---|---|---|
| 按时触发率 | 准时触发次数 / 总计划次数 | < 95% 持续 3 天 | 评估定时任务可靠性 |
| 一次运行成功率 | 无需重试的成功次数 / 总次数 | < 80% 持续 1 周 | 评估数据源稳定性 |
| 数据源可用率 | 某源正常响应次数 / 总调用次数 | < 70% 持续 3 天 | 评估单个数据源健康度 |
| 有效条目数量趋势 | 近 7 天平均有效条目 | 连续 5 天下降 | 评估内容质量变化 |
| 推送成功率 | 推送成功次数 / 总尝试次数 | < 99% | 评估推送通道可靠性 |
| 单次运行成本 | Token + API 费用 | 超过预算上限 | 评估成本控制 |
13.1.3 可观测性设计原则
- 日志必须包含批次 ID:关联所有相关记录
- 指标必须可聚合:支持按日/周/月统计
- 告警必须可行动:包含失败原因和建议操作
- 审计必须可追溯:记录所有状态变更
13.2 实战案例:飞书多维表格追踪系统
13.2.1 表格设计
表格名称:自动化任务运行日志
字段定义:
├── 批次ID(文本)- 唯一标识
├── 触发时间(日期时间)- 定时/手动触发时间
├── 触发方式(单选)- 定时 / 手动
├── 数据源状态(文本)- 如 "wechat:ok,github:timeout"
├── 原始条目数(数字)- 聚合前的条目数量
├── 过滤后条目数(数字)- 过滤后的有效条目数量
├── 质量状态(单选)- pass / warning / blocked
├── 推送目标(文本)- 如 "飞书群 / 个人通知"
├── 推送结果(单选)- 成功 / 失败 / 跳过
├── 总耗时(数字)- 秒
├── Token消耗(数字)- 估算值
├── 错误信息(文本)- 如有
└── 处理人(人员)- 失败时谁处理
13.2.2 自动化规则配置
规则1:失败告警
触发条件:【推送结果】= "失败"
执行动作:
1. 发送飞书消息给 @owner
2. 消息内容包含批次ID、失败原因、建议操作
规则2:成本超限告警
触发条件:【Token消耗】> 2000
执行动作:
1. 发送飞书消息给 @owner
2. 标注"成本超限,请检查"
规则3:每日汇总
触发条件:每天 18:00
执行动作:
1. 生成当日汇总视图
2. 计算平均耗时、成功率、成本
3. 发送给 owner
13.3 日志规范
13.3.1 单次运行日志格式
{
"batch_id": "ai-hotspot-2026-07-10",
"trigger_time": "2026-07-10T09:00:00+08:00",
"trigger_type": "scheduled",
"sources": {
"wechat": {"status": "ok", "latency": 2.3, "items": 15},
"github": {"status": "ok", "latency": 3.1, "items": 12},
"multi_search": {"status": "ok", "latency": 1.8, "items": 18},
"aihot": {"status": "ok", "latency": 2.5, "items": 10}
},
"aggregation": {
"raw_items": 45,
"filtered_items": 18,
"quality_status": "pass"
},
"delivery": {
"target": "feishu_personal",
"result": "success",
"message_id": "123456"
},
"performance": {
"total_time": 45.2,
"token_usage": 1500,
"cost_estimate": 0.03
},
"error": null
}
13.3.2 日志存储策略
| 日志类型 | 存储位置 | 保留期限 | 用途 |
|---|---|---|---|
| 运行日志 | 飞书多维表格 | 90天 | 日常监控 |
| 详细日志 | 文件系统 | 30天 | 故障排查 |
| 审计日志 | 数据库 | 1年 | 合规回溯 |
13.4 指标监控
13.4.1 监控看板设计
┌─────────────────────────────────────────┐
│ AI热点选题日报 - 监控看板 │
├─────────────────────────────────────────┤
│ 今日状态 │
│ ├── 触发时间:09:00 ✅ │
│ ├── 运行状态:completed ✅ │
│ ├── 数据源:4/4 正常 ✅ │
│ └── 有效条目:18 条 ✅ │
├─────────────────────────────────────────┤
│ 近7天趋势 │
│ ├── 按时触发率:100% ████████████ │
│ ├── 一次成功率:95% ██████████░ │
│ ├── 平均耗时:42s ████████░░░░ │
│ └── 平均成本:¥0.03 ████████░░░░ │
├─────────────────────────────────────────┤
│ 数据源健康度 │
│ ├── 微信公众号:98% ██████████░ │
│ ├── GitHub:95% █████████░░░ │
│ ├── 多引擎搜索:97% █████████░░ │
│ └── AIHOT:92% ████████░░░░ │
└─────────────────────────────────────────┘
13.4.2 告警规则配置
| 指标 | 条件 | 级别 | 通知渠道 |
|---|---|---|---|
| 按时触发率 | < 95% 持续3天 | P2 | 飞书 |
| 一次成功率 | < 80% 持续1周 | P1 | 飞书 |
| 数据源可用率 | < 70% 持续3天 | P1 | 飞书 |
| 有效条目趋势 | 连续5天下降 | P2 | 飞书 |
| 推送成功率 | < 99% | P1 | 飞书 + 短信 |
| 单次成本 | 超过预算上限 | P3 | 飞书 |
13.5 图文说明
📌 待补充:建议绘制以下示意图 1. 三层可观测性架构图 2. 监控看板原型图 3. 指标趋势图 4. 日志流转图
13.6 常见错误
| 错误 | 后果 | 纠正方法 |
|---|---|---|
| 不记录日志 | 失败后无法排查 | 每次运行必须记录关键信息 |
| 指标不定义 | 不知道什么算"正常" | 提前定义告警阈值 |
| 告警太敏感 | 告警疲劳 | 设置合理阈值和持续时间 |
| 日志内容过多 | 存储成本高 | 只记录关键信息 |
| 事后才想起监控 | 问题已造成影响 | 上线前必须配置好监控 |
📝 版本迭代记录
| 版本 | 日期 | 更新内容摘要 | 操作人 |
|---|---|---|---|
| v1.0 | 2026-08-25 | 创建进阶篇第10章 | 桂皮 |
🤖 GEO 问答 · 生成式引擎优化
❓ 什么是可观测性体系?
❓ 如何理解理论要点:没有度量就没有改进?
- 日志必须包含批次 ID:关联所有相关记录
❓ 如何理解实战案例:飞书多维表格追踪系统?
表格名称:自动化任务运行日志
❓ 如何理解日志规范?
{