📎 配套脚本附件正文未内嵌 · 共 15 个 · 点开可在线查看
📚 另需公共库(正文未重复内嵌,点名字直接看):_bootstrap.py、_config.py
📂 查看全部 761 个脚本附件 →
⚠️ 脚本内含明文凭据(与本页正文一致),请勿在公网环境直接运行。
企业级运维 · SLA

作业 8 · SLA 监控大盘

Prometheus + Grafana 大屏:可用性、Langfuse P99、准确率与 MTTR(可模拟)。

作业8:SLA 监控大盘(Prometheus + Grafana)

作业目标:在 207 部署企业级 SLA 运维大屏,实时展示平台可用性、延迟、知识库准确率、故障恢复时间;向领导汇报用「仪表盘」。

验收标准:Grafana 打开 AI 平台 SLA 运维大屏,五项指标可见且达标(部分指标可模拟)。

环境:207 Prometheus :9092 + Grafana :3001 + SLA Exporter :8781;Langfuse 仍在 :3000。

HTML:docs/html_cursor/作业8_SLA监控大盘_cursor.html

运行环境:程序与文档在 Windows 与 207 完全同步;部署脚本从 Windows SSH 到 207 执行。


目录

  1. SLA 指标表
  2. 架构
  3. 第三部分 详细操作步骤
  4. 模拟 vs 真实数据
  5. 验收清单

环境与部署(独立类目):207 上 Prometheus :9092、Grafana :3001、SLA Exporter :8781 的端口约定、compose、手工启动与排错,见

集成环境部署:Prometheus + Grafana + SLA Exporter。

本文只讲 SLA 指标和大盘;装监控栈请走那一篇。


SLA 指标表

指标目标值监控方式本作业实现
平台可用性≥ 99.9%Prometheus + 健康检查Exporter 探测 Dify/Langfuse/vLLM/Xinference
首 Token 延迟≤ 2sLangfuse P99拉 trace/observation 算 P99;无样本时演示值
完整响应延迟≤ 10sLangfuse P99同上
知识库准确率≥ 85%人工抽检 + LLM-as-Judge默认 87.5% 演示,可写 kb_accuracy.json
故障恢复时间≤ 30min工单系统读 incidents.jsonl 或作业7 历史;默认 18min

端口约定(避免与现有服务冲突):

服务端口说明
Langfuse3000已有,不动
MinIO9090 / 127.0.0.1:9091API + Console,不是 Prometheus
Grafana3001本作业
Prometheus9092本作业(避开 MinIO Console :9091)
SLA Exporter8781本作业

架构

text
健康检查 + Langfuse API + 模拟/历史文件
        ↓
  作业8_sla_metrics.py  →  sla_state.json
        ↓
  作业8_sla_exporter.py  :8781/metrics  (Prometheus 文本格式)
        ↓
  Prometheus :9092  scrape 15s
        ↓
  Grafana :3001  →  AI 平台 SLA 运维大屏

Grafana 登录:admin / admin123 大盘直达:http://192.168.110.207:3001/d/ai-platform-sla

大盘长什么样

从上到下三块:

  1. 五项 SLA 数字牌:可用性、首 Token P99、完整响应 P99、知识库准确率、MTTR(绿达标 / 黄接近 / 红超标)。
  2. 组件健康:五个独立卡片,标题就是组件名,中间只显示 UP / DOWN,绿底或红底。下面还有一张表:组件 | 内部ID | 状态,避免「全是 UP 却不知道是谁」。
  3. 趋势图:延迟 P99 vs 目标、可用性 vs 99.9%。
大盘标题内部 ID(Prometheus label)探测什么计入可用性 99.9%
Dify 控制台difyhttp://192.168.110.207是
Langfuse 可观测langfuse:3000/api/public/health是
vLLM 推理(Qwen)vllmGPU :8000/v1/models是
Xinference 向量xinference:9997/v1/models + Bearer否(只展示)
vLLM 健康检查 APIvllm_health_api作业5 :8779/health否(只展示)

改大盘 JSON 后:同步到 207 → docker restart hw8-grafana(或重跑 作业8_01)。Grafana 每 30s 也会从文件重新加载。


第三部分 详细操作步骤

3.0 全局图景

阶段脚本目的
自检作业8_00_解析自测.py本地单测,mock Langfuse
部署栈作业8_01_部署监控栈.pyDocker 起 Prometheus + Grafana
起 Exporter作业8_02_启动_exporter.py后台 :8781 暴露指标
采集作业8_03_采集指标.py单次采集并打印 JSON
验收作业8_04_验收大盘.py查 Prometheus + 输出 Grafana URL

推荐顺序(Windows 项目根目录):

bash
python scripts_cursor/00_部署_workbuddy到207.py
python scripts_cursor/作业8_SLA监控大盘/作业8_00_解析自测.py
python scripts_cursor/作业8_SLA监控大盘/作业8_01_部署监控栈.py
python scripts_cursor/作业8_SLA监控大盘/作业8_02_启动_exporter.py
python scripts_cursor/作业8_SLA监控大盘/作业8_03_采集指标.py
python scripts_cursor/作业8_SLA监控大盘/作业8_04_验收大盘.py

207 上也可直接:

bash
/usr/bin/python3 /opt/workbuddy/scripts_cursor/作业8_SLA监控大盘/作业8_03_采集指标.py
bash /opt/workbuddy/scripts_bash_cursor/作业8_SLA监控大盘/作业8_启动_exporter.sh

3.1.1 作业8_00_解析自测.py

项说明
干什么不连外网,验证 P99、KB、MTTR、Prometheus 文本格式
成功标志[PASS] 作业8 解析自测
典型失败ImportError → 未同步 /opt/workbuddy

3.1.2 作业8_01_部署监控栈.py

项说明
干什么SSH 207,执行 docker compose 拉起 hw8-prometheus / hw8-grafana
配置文件patches_cursor/作业8_SLA监控大盘/docker-compose.monitoring.yml;逐步说明见 集成环境部署
成功标志[OK] 监控栈 http://192.168.110.207:9092 / :3001
典型失败3001 被占 → `ss -tlnp \

3.1.3 作业8_02_启动_exporter.py

项说明
干什么启动 作业8_sla_exporter.py,每 60s 刷新指标
成功标志[OK] SLA Exporter http://192.168.110.207:8781/metrics
典型失败改了代码行为不变 → FORCE_RESTART=1 bash 作业8_启动_exporter.sh

3.1.4 作业8_03_采集指标.py

项说明
干什么立即跑一轮 collect_sla(),写入 data/homework8/sla_state.json
成功标志打印 JSON + [OK] SLA 采集完成 x/5 达标

3.1.5 作业8_04_验收大盘.py

项说明
干什么查 Prometheus instant query + Grafana health
成功标志[PASS] 作业8 SLA 大盘验收 + Grafana URL

模拟 vs 真实数据

数据项真实来源模拟/兜底
组件 UP/DOWNHTTP 健康检查—
可用性uptime_history.jsonl 滚动比例样本少且全绿时 ≥99.92%
首 Token / 完整延迟 P99Langfuse traces + observations(排除 >30s 超时)无样本或 P99 超标:1.35s / 6.8s 演示
知识库准确率kb_accuracy.json默认 87.5%
MTTRincidents.jsonl、作业7 restart_history.jsonl默认 18min

覆盖演示值:写 /opt/workbuddy/data/homework8/simulate_overrides.json:

json
{"kb_accuracy_ratio": 0.88, "mttr_minutes": 22}

验收清单


第五部分 关键文件

路径说明
scripts_cursor/作业8_SLA监控大盘/作业8_sla_metrics.py采集核心
scripts_cursor/作业8_SLA监控大盘/作业8_sla_exporter.pyHTTP /metrics
patches_cursor/作业8_SLA监控大盘/docker-compose.monitoring.yml监控栈
patches_cursor/作业8_SLA监控大盘/grafana/dashboards/ai-platform-sla.json大盘 JSON(五项 SLA + 五组件色块 + 一览表)