# IwoooS Monitoring / Alerting / Observability owner request draft

| 項目 | 內容 |
|------|------|
| 日期 | 2026-06-14 |
| 狀態 | `owner_request_draft_ready_not_dispatched` |
| 工具 | `scripts/security/monitoring-owner-request-draft.py` |
| Snapshot | `docs/security/monitoring-owner-request-draft.snapshot.json` |
| Source inventory | `docs/security/monitoring-alerting-observability-inventory.snapshot.json` |
| runtime gate | `0` |

## 1. 目的

本文件把 Monitoring / Alerting / Observability repo-only 清冊中的 60 個 surface 轉成人工送件前 owner request draft，讓 Prometheus、Alertmanager、Grafana、SigNoz、Sentry、Langfuse、OTEL、Telegram / notification policy、deploy / reload script 與 alert chain smoke script 都有一致的 owner 回覆欄位。

本階段仍是 metadata-only request draft：不連 live Prometheus、不 reload Alertmanager、不套用 Grafana / SigNoz、不部署 Sentry、不改 Langfuse、不 reload OTEL、不改 receiver route、不建立 silence、不送 Telegram、不 fire live alert、不跑 alert chain smoke、不 SSH、不 kubectl、不讀 secret value、不寫 production。

## 2. 摘要

| 指標 | 目前值 | 說明 |
|------|--------|------|
| request draft | `60` | 全部由 committed monitoring inventory surface 轉換 |
| write-capable request draft | `11` | 可能 reload、deploy、send notification、fire alert 或 restart exporter 的 surface |
| live evidence required request | `60` | 每份 request 都需要 owner 提供脫敏 live evidence ref |
| request field | `24` | 每份草稿固定欄位數 |
| required owner field | `14` | owner 必須補齊的欄位數 |
| blocked action | `24` | 驗收前全部禁止 |
| request sent / recipient confirmed | `0 / 0` | 尚未送件，收件人也未確認 |
| owner response received / accepted | `0 / 0` | 不得假性拉高 |
| live evidence received | `0` | 未收到 live config hash、receiver diff 或 route smoke proof |
| reload / receiver / route smoke accepted | `0 / 0 / 0` | 未授權 reload、receiver route change 或 live smoke |
| runtime gate / action button | `0 / 0` | 不開任何執行入口 |

## 3. Request Draft 類型

| 類型 | 範圍 | 目前邊界 |
|------|------|----------|
| Prometheus config / rules | base config、remote write、generated target、service registry、alert rules、drift guard | 只收 owner ref；不 reload、不 remote write change |
| Alertmanager receiver | route、receiver、grouping source | 只收 receiver owner / diff ref；不改 receiver、不 reload |
| Grafana dashboard / rules | dashboard JSON、alert rule | 只收 dashboard owner / rollback ref；不 import、不 apply |
| SigNoz / OTEL | alert rule、log rule、API client、collector config | 只收 pipeline owner / data export boundary；不 apply、不 reload |
| Sentry / Langfuse | compose、deploy、webhook receiver、API client、runbook | 只收 live hash / upgrade window；不 deploy、不 restart |
| Telegram / notification | gateway service、failure-only policy、notification matrix、recurrence notifier | 只收 receiver / receipt / noise budget owner；不送訊息 |
| deploy / reload scripts | Alertmanager、Prometheus、Sentry、exporter deploy 或 reload-capable script | 只建立 request draft；不執行腳本 |
| alert smoke | live alert、test alert、alert chain smoke | 只收 allowed receiver、execution window、cleanup owner；不 fire alert |

## 4. Owner 必填欄位

| 欄位 | 說明 |
|------|------|
| `owner_role_or_team` | 負責角色或團隊 |
| `decision` | owner 對此 surface 的判定 |
| `decision_reason` | 決策理由摘要，不得包含機敏值 |
| `affected_scope` | 受影響的 monitoring / notification / product scope |
| `redacted_evidence_refs` | 脫敏 evidence id、文件路徑、ticket id 或 hash |
| `live_config_hash_ref` | 脫敏 live config hash 或 owner-provided ref |
| `reload_owner` | reload / deploy decision owner |
| `receiver_owner` | receiver / route / receipt owner |
| `route_smoke_plan` | route smoke 或 receipt proof 計畫 |
| `maintenance_window` | 維護窗口或禁止窗口 |
| `rollback_owner` | rollback 負責人與 rollback ref |
| `validation_plan` | 驗證與 post-check plan |
| `noise_budget_owner` | 告警噪音、silence、dedup 與測試通知負責人 |
| `followup_owner` | 後續補件或決策負責人 |

## 5. 禁止動作

```text
prometheus_reload
alertmanager_reload
grafana_dashboard_apply
signoz_rule_apply
sentry_deploy
langfuse_config_change
otel_collector_reload
receiver_route_change
silence_policy_change
telegram_send
notification_route_change
webhook_receiver_change
remote_write_change
exporter_deploy
live_alert_fire
alert_chain_smoke
ssh_read
ssh_write
kubectl_action
secret_value_collection
host_write
active_scan
production_write
runtime_gate_open
```

## 6. 指令

固定 committed snapshot 時間：

```bash
python3 scripts/security/monitoring-owner-request-draft.py \
  --root . \
  --inventory-report docs/security/monitoring-alerting-observability-inventory.snapshot.json \
  --output docs/security/monitoring-owner-request-draft.snapshot.json \
  --generated-at 2026-06-14T23:25:00+08:00
```

只讀 guard：

```bash
python3 scripts/security/security-mirror-progress-guard.py --root .
python3 scripts/security/source-control-owner-response-guard.py --root .
```

## 7. 完成度

| 工作 | 完成度 | 說明 |
|------|--------|------|
| owner request draft artifact | `100%` | 60 份 request draft 已由 committed inventory 產生 |
| request dispatch | `0%` | 尚未送件，recipient 未確認 |
| owner response received / accepted | `0%` | 尚未收到或接受任何 owner response |
| live evidence collection | `0%` | 未讀 live monitoring stack |
| reload / receiver / route smoke acceptance | `0%` | 未授權、未執行 |
| runtime / production write | `0%` | 無 action button，無 production write |

## 8. 邊界

這份 owner request draft 不是資安批准、不是 runtime approval、不是 alert chain smoke proof，也不是 live monitoring truth。不得把 request draft、snapshot、IwoooS UI、AwoooP approval、LOGBOOK 或 committed source visibility 解讀成 Prometheus reload、Alertmanager reload、Grafana import、SigNoz apply、Sentry deploy、Langfuse change、OTEL reload、receiver route change、silence change、Telegram send、live alert fire、alert chain smoke、SSH、kubectl、active scan、secret collection、host write 或 production write 授權。

## 9. 2026-06-15 owner response acceptance 只讀帳本

2026-06-15 已新增 `docs/security/MONITORING-OWNER-RESPONSE-ACCEPTANCE.md` 與 `docs/security/monitoring-owner-response-acceptance.snapshot.json`，把本文件的 60 份 request draft 轉成 owner response acceptance 只讀帳本。固定 `candidates=60`、`write_capable=11`、`live_evidence_required=60`、`owner_fields=14`、`reviewer_checks=15`、`outcome_lanes=7`、`blocked_actions=28`；owner response received / accepted / rejected、live evidence、reload、receiver route change、silence change、Telegram send、alert chain smoke、host write、runtime gate 與 action button 仍全部為 `0 / false`。

2026-06-15 後續已在 acceptance ledger 補上 no-false-green 回補欄位，最新固定為 `acceptance_fields=38`、`reviewer_checks=23`、`outcome_lanes=12`、`blocked_actions=34`；新增 incident context、alert chain health、receiver receipt、stale alert、silence / dedup、false-green risk、post-reload readback 與 cross-project notification ref。這仍不代表 owner response received / accepted、live alert chain truth、reload、Telegram send 或 runtime gate。

這份 acceptance ledger 只定義未來 owner response 如何收件、隔離、拒收、補件或進 monitoring reviewer review；不代表 request sent、owner response received / accepted、Prometheus reload、Alertmanager reload、Grafana import、SigNoz apply、Sentry deploy、Langfuse change、OTEL reload、receiver route change、Telegram send、live alert fire、alert chain smoke 或 runtime gate。
