SatishShinde-SRE/realtime-sre-observability-platform
GitHub: SatishShinde-SRE/realtime-sre-observability-platform
基于 Docker Compose 构建的实时 SRE 可观测性与事件响应平台,集成 Prometheus、Grafana、Loki 等工具,完整展示从监控告警到故障排查和事后复盘的 SRE 工作流。
Stars: 0 | Forks: 0
# 实时 SRE 可观测性与事件响应平台
## 概述
本项目展示了类生产环境的站点可靠性工程工作流,使用了容器化的 Order Service 和完整的可观测性技术栈。
本项目的目标是展示 SRE 如何监控服务健康状况、检测故障、使用指标和日志排查问题、通过 Runbook 进行响应,以及使用复盘报告记录事件。
## 架构
用户 / 负载脚本
|
v
Order Service (Flask App)
|
| 暴露 /metrics
v
Prometheus
|
| 发送告警
v
Alertmanager
Order Service 日志
|
v
Promtail
|
v
Loki
|
v
Grafana
cAdvisor ------------> Prometheus
Node Exporter -------> Prometheus
Prometheus ----------> Grafana
## 技术栈
应用:- Python Flask
容器化:- Docker
编排:- Docker Compose
指标:- Prometheus
仪表盘:- Grafana
告警:- Alertmanager
日志:- Loki
日志转发:- Promtail
容器指标:- cAdvisor
系统指标:- Node Exporter
脚本:- PowerShell
## 功能
- 容器化的 Flask Order Service
- 健康检查 endpoint
- Prometheus metrics endpoint
- 用于查看服务健康状况的 Grafana dashboard
- Alertmanager 集成
- 基于 Loki 的集中式日志记录
- cAdvisor 容器指标
- Node Exporter 系统指标
- 故障模拟脚本
- 服务恢复脚本
- SLO 和 SLI 文档
- 事件 Runbook
- 事后复盘文档
- 用于 Grafana、Prometheus 和 Loki 的持久化 Docker volumes
## 应用 Endpoints
/ :- 服务信息
/health :- 健康检查
/order :- 成功的业务请求
/slow :- 模拟延迟
/error :- 模拟 HTTP 500 错误
/metrics :- Prometheus metrics
## 本地 URLs
Order Service:-
http://localhost:5000
Prometheus:-
http://localhost:9090
Grafana:-
http://localhost:3000
Alertmanager:-
http://localhost:9093
Loki Ready Check:-
http://localhost:3100/ready
cAdvisor:-
http://localhost:8080
Node Exporter:-
http://localhost:9100/metrics
## Grafana 登录:
用户名: admin
密码: admin
## 展示的 SRE 概念
SLIs:- 可用性、延迟、错误率、流量、饱和度
SLOs:- 为 Order Service 定义的可靠性目标
Error Budget:- 99.9% 的月度正常运行时间预算计算
Four Golden Signals:- 延迟、流量、错误、饱和度
监控:- Prometheus 抓取服务和基础设施指标
告警:- Prometheus 告警规则和 Alertmanager
日志记录:- Promtail 将 Docker 日志发送到 Loki
事件响应:- Runbook 和恢复脚本
事后复盘:- 已记录的停机分析
持久化:- 用于 Grafana、Prometheus 和 Loki 的 Docker volumes
## 如何运行本项目
确保 Docker Desktop 正在运行。
从项目根目录执行:
#docker compose up -d --build
检查容器:
#docker ps
停止容器而不删除数据:
#docker compose stop
再次启动容器:
#docker compose start
除非您有意要移除容器,否则不要使用此命令:
#docker compose down
除非您想要删除已存储的 dashboard、指标和日志,否则切勿使用此命令:
#docker compose down -v
## 故障模拟脚本
从项目根目录运行:
.\scripts\generate-load.ps1
.\scripts\simulate-error.ps1
.\scripts\simulate-latency.ps1
.\scripts\simulate-outage.ps1
恢复服务:
.\scripts\recover-service.ps1
## 告警
ServiceDown:- Order Service 不可用
HighErrorRate:- 超过 5% 的请求返回 5xx
HighLatency:- P95 延迟高于 500ms
ContainerHighCPU:- 容器 CPU 使用率高
ContainerHighMemory:- 容器内存使用率高
## 目录结构
Realtime-Sre-Project/
├── app/
│ ├── app.py
│ ├── Dockerfile
│ └── requirements.txt
├── monitoring/
│ ├── prometheus.yml
│ ├── alert-rules.yml
│ ├── alertmanager.yml
│ ├── loki-config.yml
│ └── promtail-config.yml
├── scripts/
│ ├── generate-load.ps1
│ ├── simulate-error.ps1
│ ├── simulate-latency.ps1
│ ├── simulate-outage.ps1
│ └── recover-service.ps1
├── docs/
│ ├── architecture.md
│ ├── slo-sli.md
│ ├── incident-runbook.md
│ ├── postmortem.md
│ └── screenshots/
├── docker-compose.yml
└── README.md
标签:AI合规, API集成, Docker, Grafana, SRE, 偏差过滤, 可观测性, 告警系统, 安全防御评估, 版权保护, 监控, 自定义请求头, 请求拦截