# 灰度阶段最小 Dashboard

> 状态：已定义  
> 用途：灰度 5% / 20% / 50% / 100% 放量时，值班工程师和 TechLead 必须看的单页观察面

---

## 1. 必须展示的 8 个指标

1. `Webhook 5xx 比例`
2. `Webhook reject 数`
3. `Ticket 创建量`
4. `Handoff 比率`
5. `Audit 写入失败数`
6. `Readiness down 次数`
7. `PostgreSQL 连接异常`
8. `单实例重启次数`

---

## 2. 推荐布局

### 第一行：放量门禁

- Webhook 5xx 比例
- Audit 写入失败数
- PostgreSQL 连接异常
- Readiness down 次数

这些指标用于判断：**是否必须停止放量或立即回滚**

### 第二行：业务链路健康

- Ticket 创建量
- Handoff 比率
- Webhook reject 数

这些指标用于判断：**是否出现隐性降级或业务异常漂移**

### 第三行：实例稳定性

- 单实例重启次数
- 当前灰度比例
- 当前版本
- 最近一次 Gate B / 回滚演练记录链接

---

## 3. 颜色规则

| 指标 | 绿色 | 黄色 | 红色 |
|------|------|------|------|
| Webhook 5xx | `<= 0.5%` | `0.5% ~ 1%` | `> 1%` |
| Webhook reject 数 | 在预期基线内 | 高于基线但 <20% | `>= 20%` |
| Ticket 创建量 | 与 handoff 基本匹配 | 明显下降 | handoff 存在但 ticket 持续为 0 |
| Handoff 比率 | `<= 15%` 或接近基线 | `15% ~ 25%` | `> 25%` 或高于基线 `2x` |
| Audit 写入失败数 | `0` | 短时抖动 | `> 0` 持续 5 分钟 |
| Readiness down 次数 | `0` | 偶发 | 连续 3 次 |
| PostgreSQL 连接异常 | `0` | 短时抖动 | 持续异常 |
| 单实例重启次数 | `0` | `1~2 / 10min` | `>2 / 10min` |

---

## 4. Dashboard 直接用途

值班期间，只允许做三类决策：

1. **继续放量**
   前提：所有门禁指标为绿色，且观察窗口已满足

2. **冻结当前档位**
   前提：出现黄色趋势，但未触发红色门禁

3. **立即回滚**
   前提：任一核心门禁指标变红

---

## 5. 当前状态

这份 dashboard 文档已经定义完成，但真实共享预生产/灰度环境还需要补：

- 指标来源接线
- 展示面板
- 告警路由

在这些接线完成前，只能说：

> **Dashboard 设计已完成，运行时观察面尚未真正上线。**

