MG-ge/observability-incident-response-lab
GitHub: MG-ge/observability-incident-response-lab
面向初级运维和技术支持岗位的本地实验室,通过 FastAPI 应用练习结构化日志、健康检查、事件分诊和复盘报告等可观测性与事件响应核心技能。
Stars: 0 | Forks: 0
# 可观测性 + 事件响应实验室
职业实验室中的项目 3。
这是一个对初级人员友好的作品集项目,适用于云支持、应用支持、SaaS 技术支持、产品支持以及初级运维相关岗位。
本项目专注于实际的故障排查:
- 结构化日志
- 请求 ID
- 简单的可用性检查
- 事件场景
- 运维手册
- 复盘报告
这不是生产环境经验。这是一个本地的学习和作品集项目。
## 当前状态
项目 3 v1 已完成。
该项目目前包含:
- 一个小型的 FastAPI 应用
- `GET /health`
- `GET /work`
- `GET /fail`
- 结构化请求日志
- 使用 `X-Request-ID` 的请求 ID 处理
- 本地可用性检查脚本
- 支持风格的事件场景
- 事件分诊运维手册
- 简短的实验复盘报告
- 最终项目审查
- 职业指南包
- 已知限制
- AI 使用说明
- pytest 覆盖率
- 本地运行脚本
## 为什么会有这个项目
项目 1 和项目 2 已经涵盖了:
- REST API 基础
- SQL/数据检查
- 健康和就绪端点
- Docker
- GitHub Actions
- CI 测试
- 部署就绪文档
项目 3 回答了一个不同的问题:
```
Can I investigate an application problem using logs, simple signals, runbooks, and incident notes?
```
## 目标岗位
- 初级技术支持工程师
- SaaS 技术支持专家
- 应用支持专家
- 产品支持工程师
- 初级或助理级别云支持工程师
- API 支持工程师
- 初级集成专家
- Sovellusasiantuntija
## 技术栈
该技术栈故意保持简单:
- Python
- FastAPI
- pytest
- Shell 脚本
- curl
- 本地日志
Docker 和 GitHub Actions 可能会在稍后添加,前提是它们能够支持可观测性目标。
## 本地运行
在项目文件夹中:
```
cd /Users/mg/Desktop/Dreams/career-lab-2026/observability-incident-response-lab
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pytest
PORT=8030 scripts/run-dev.sh
```
在另一个终端中:
```
curl -s http://127.0.0.1:8030/health | python -m json.tool
curl -s -H "X-Request-ID: demo-123" http://127.0.0.1:8030/work | python -m json.tool
curl -s -i -H "X-Request-ID: incident-demo-1" http://127.0.0.1:8030/fail
```
在服务器终端中查看结构化请求日志。
运行本地可用性检查:
```
scripts/check-uptime.sh
```
预期的健康结果:
```
uptime_check=pass
url=http://127.0.0.1:8030/health
http_status=200
request_id=uptime-check-local
next_action=No action needed.
```
## 运行测试
```
pytest
```
预期结果:
```
7 passed
```
## v1 范围
项目 3 v1 包含:
- 一个小型本地 API
- 结构化日志
- 请求 ID 行为
- 一个简单的可用性检查工作流
- 支持风格的事件场景
- 一份运维手册
- 简短的复盘报告
- 已知限制
- AI 使用说明
## 事件场景
支持场景位于 `support-cases/` 中:
- `01-uptime-check-app-not-running.md`
- `02-lab-failure-endpoint-returns-500.md`
- `03-wrong-health-path-returns-404.md`
## 运维手册和复盘报告
首次响应运维手册位于 `runbooks/` 中:
- `incident-triage.md`
实验复盘报告位于 `postmortems/` 中:
- `01-uptime-check-app-not-running.md`
- `02-wrong-health-path-used.md`
## 最终审查和职业指南包
最终文档位于 `docs/` 中:
- `project-review.md`
- `career-package.md`
- `known-limitations.md`
- `ai-usage.md`
## 不在范围内
- Kubernetes
- 微服务
- 前端工作
- 复杂的身份验证
- 付费监控工具
- 真实的生产部署
- 生产环境事件声明
- 高级 SRE/平台工程声明
## 从这里开始
阅读计划:
```
cat docs/project-plan.md
cat STATUS.md
cat NEXT_STEPS.md
```
标签:API开发, API支持, API集成, AV绕过, CI/CD准备, curl, Cutter, FastAPI, OISF, Pytest, Python, REST API, Runbook, SaaS技术支持, Shell脚本, X-Request-ID, 事件分级, 事件管理, 事后总结, 云支持, 作品集, 健康检查, 初级工程师, 单元测试, 可用性监控, 可观测性, 安全规则引擎, 实验环境, 库, 应急响应, 应用支持, 开发运维, 技术支持, 故障手册, 故障排查, 教学项目, 无后门, 日志管理, 本地开发, 系统运维, 结构化日志, 请求路由, 请求追踪, 逆向工具