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, 偏差过滤, 可观测性, 告警系统, 安全防御评估, 版权保护, 监控, 自定义请求头, 请求拦截