40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# 可观测性 SLO 与告警阈值
|
||
|
||
## 日志与请求 ID
|
||
|
||
- Go 后端每个 HTTP 请求生成或透传 `X-Request-ID`,日志统一记录 `requestId/method/path/query/status/latency/ip/authType`。
|
||
- 日志不记录 Authorization 原始值;query 中 `token/password/secret/authorization` 类参数统一替换为 `[redacted]`。
|
||
- AI 服务 `/detect` 同样透传 `X-Request-ID`,便于跨 Go/Python 全链路追踪。
|
||
|
||
## 依赖指标
|
||
|
||
`GET /api/v1/ops/metrics`(`log:read`)返回依赖指标,至少记录请求数、失败数、最近延迟、P50/P95、最近成功/失败时间和最近错误。目标覆盖:
|
||
|
||
- PostgreSQL
|
||
- Redis
|
||
- MQTT
|
||
- IoTDB
|
||
- S3
|
||
- AI 服务
|
||
- WVP/ZLM
|
||
- 微信
|
||
- 天气
|
||
|
||
## 初始告警阈值
|
||
|
||
| 指标 | 目标 | 告警阈值 | 负责人 |
|
||
|---|---|---|---|
|
||
| API 可用性 | 99.5% | 5 分钟错误率 >5% | 后端 + 运维 |
|
||
| API p95 延迟 | <500ms(业务接口) | 5 分钟 p95 >1s | 后端 |
|
||
| 登录失败率 | 正常用户 <2% | 5 分钟失败率 >10% | 后端 + 安全 |
|
||
| Redis | 可用 | Ping 失败 3 次 | 运维 |
|
||
| PostgreSQL | 可用 | 连接/查询失败 3 次 | 后端 + 运维 |
|
||
| IoTDB | 可用或明确降级 | 持续不可用且遥测回退 | 后端 |
|
||
| AI 推理失败率 | <1% | 5 分钟失败率 >5% | AI + 后端 |
|
||
| Ceph 容量 | 使用率 <80% | 使用率 >80% | 运维 |
|
||
| Outbox 积压 | 常态 <50 | pending+retry >200 | 后端 |
|
||
|
||
## 模拟故障验证
|
||
|
||
每次发布前至少验证一次通知链:断开 Redis → 确认认证接口返回 503 → 恢复 Redis → 确认自动恢复;如部署告警工具,则同时验证告警通道可送达负责人。
|