mrsddq/sre-observability-incident-response-lab

GitHub: mrsddq/sre-observability-incident-response-lab

一个 SRE 可观测性与事件响应实验项目,通过 Python 演示服务和 Kubernetes 部署演示完整的监控、告警、SLO 管理及事件响应流程。

Stars: 0 | Forks: 0

# SRE 可观测性 + 事件响应实验 实战 SRE 实验,演示了服务仪表化、SLO、告警、仪表盘、合成检查、故障注入、运维手册、RCA 模板以及 Kubernetes 部署模式。 ## 构建内容 - 一个小型的 Python HTTP 服务,包含 `/healthz`、`/readyz`、`/work` 和 `/metrics` - Prometheus 抓取配置和告警规则 - 用于延迟、流量、错误和饱和度的 Grafana dashboard JSON - 包含错误预算策略的 SLO 定义 - 合成 HTTP 检查脚本 - 用于应用部署和告警的 Kubernetes manifests - 故障注入 playbook - 事件运维手册、RCA 模板和事件时间线模板 ## 架构 ``` flowchart LR User["Synthetic Check"] --> API["Demo API"] API --> Metrics["/metrics"] Metrics --> Prometheus["Prometheus"] Prometheus --> Alerts["Alertmanager"] Prometheus --> Grafana["Grafana"] Alerts --> Runbooks["Runbooks"] Runbooks --> RCA["RCA Template"] ``` ## 本地演示 运行服务: ``` python services/api/app.py ``` 调用 endpoint: ``` curl http://localhost:8000/healthz curl http://localhost:8000/work curl http://localhost:8000/metrics python synthetics/check_http.py --url http://localhost:8000/healthz ``` 可选的 Docker Compose: ``` docker compose up --build ``` ## SRE 场景 - 高延迟:调用 `/work?delay_ms=800` - 错误激增:调用 `/work?fail=true` - 就绪检查失败:设置 `FORCE_NOT_READY=true` - 饱和度审查:比较请求速率、延迟和错误预算消耗 ## 验证目标 - 理解 RED/USE 可观测性信号 - 能够定义 SLO 和告警阈值 - 能够为事件响应构建实用的运维手册 - 能够对事件时间线、缓解措施和后续工作进行逻辑分析 - 能够在 Kubernetes 上部署和运维服务
标签:API集成, SRE, 偏差过滤, 可观测性, 子域名突变, 版权保护, 监控告警, 自定义请求头, 请求拦截, 逆向工具