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, 偏差过滤, 可观测性, 子域名突变, 版权保护, 监控告警, 自定义请求头, 请求拦截, 逆向工具