---
source: ../../../core/alerting-standards.md
source_version: 1.0.0
translation_version: 1.0.0
last_synced: 2026-04-10
status: current
---

# 告警標準

> 版本: 1.0.0 | 最後更新: 2026-04-01

## 概述

本文件定義生產環境告警的設計、分類、路由和維護標準。有效的告警是可觀測性資料與人工行動之間的橋樑 — 每個告警都應該是可操作的、具有適當的緊急程度，並連結到解決路徑。

---

## 告警嚴重度分類（P1-P4）

| 等級 | 名稱 | 標準 | 回應時間 | 通知管道 |
|------|------|------|---------|---------|
| **P1** | 關鍵 | 完全服務中斷；資料遺失風險；安全漏洞 | < 5 分鐘 | 電話 + SMS + Chat |
| **P2** | 高 | 主要功能降級；部分中斷；大量使用者影響 | < 15 分鐘 | SMS + Chat |
| **P3** | 警告 | 效能降級；資源接近上限；次要功能受影響 | < 4 小時 | Chat + Ticket |
| **P4** | 資訊 | 異常趨勢；預防性通知；非緊急維護 | 下個工作日 | Email + Ticket |

---

## 升級路徑

| 時間 | P1（關鍵） | P2（高） | P3（警告） |
|------|-----------|---------|-----------|
| 0 分鐘 | 值班工程師 | 值班工程師 | — |
| 5 分鐘（未確認） | 值班主管 | — | — |
| 15 分鐘（未確認） | 工程經理 | 值班主管 | 值班工程師 |
| 30 分鐘（未解決） | VP Engineering | 工程經理 | — |
| 60 分鐘（未解決） | CTO/高管 | VP Engineering | 值班主管 |

---

## 可操作告警設計

每個告警通知必須包含 6 個要素：

1. **What** — 發生了什麼（清晰描述性標題）
2. **When** — 問題何時開始
3. **Where** — 受影響的服務/元件
4. **Impact** — 使用者影響與嚴重度
5. **Dashboard** — 相關儀表板連結
6. **Runbook** — 處理程序連結（P1/P2 必須）

---

## 降噪策略

| 策略 | 運作方式 | 使用情境 |
|------|---------|---------|
| **Deduplication** | 合併相同告警 | 同一告警重複觸發 |
| **Grouping** | 按根因分組 | 多個服務告警（級聯故障） |
| **Suppression** | 計畫維護期間靜音 | 預定維護 |
| **Dampening** | 條件持續 N 分鐘才觸發 | 指標在閾值附近波動 |

---

## Alerts as Code

所有告警規則必須：
1. **儲存於 Git** — 告警定義視為程式碼
2. **程式碼審查** — 變更需同儕審查
3. **自動測試** — CI 在合併前驗證告警規則
4. **透過 CI/CD 部署** — 告警變更走部署流程

---

## Quick Reference Card

### 告警設計檢查清單
```
□ 具有清晰、描述性的標題
□ 包含影響與當前狀態
□ 連結到 Runbook（P1/P2 必要）
□ 連結到 Dashboard
□ 說明問題何時開始
□ 具有適當的嚴重度（P1-P4）
```

### 降噪選擇
```
同一告警重複觸發？     → Deduplication
多個服務同時告警？     → Grouping（級聯故障）
計畫維護中？           → Suppression
指標在閾值附近波動？   → Dampening
```

---

**相關標準：**
- [SLO 標準](slo-standards.md) — SLI/SLO/Error Budget 定義
- [可觀測性標準](observability-standards.md) — 指標與監控
- [Runbook 標準](runbook-standards.md) — Runbook 格式與維護
