# アクショナブルアラート
## 定義
アクショナブルアラート(Actionable Alerting)は、「影響が大きく行動を動機づける」かつ「解釈可能で次のアクションを誘導できる」異常通知を指す([[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems|Zeng+ ICSE-SEIP2023]] §I, §II-B)。SLO 違反予測やエラーバジェット消費を起点に「ユーザー影響のあるもの」だけを呈示する [[@2018__SREcon18 Asia__A Theory and Practice of Alerting with Service Level Objectives|Wilkinson SREcon18]] の SLO ベース呼び出しと近縁の理念だが、アクショナブルアラートは「次に何をすべきか」も含めて解釈可能性を要件にする点で一段強い概念。
OCE が「ノイズの中から重要を選ぶ」労力を減らすため、(1) impact 軸(ユーザーに到達しているか)と (2) interpretability 軸(根本原因の探索に有用か)の 2 軸で評価される。
## 横断的知見
- **「重要度の自動ランキング」と「アクショナブル化」は補完関係**: [[@2020__ISSRE__AlertRank - Automatically and Adaptively Identifying Severe Alerts for Online Service Systems|Zhao+ ISSRE2020 (AlertRank)]] は重要アラート識別を二値分類でなくランキング問題として定式化し(§III.D)、クラス不均衡(非重要:重要 ≈ 50:1)に対処しつつ「どれから調べるか」の順序を提供する。これに対し [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems|Zeng+ TraceArk]] は「異常通知そのものを actionable にする」(影響評価 + 解釈可能性)に踏み込む。AlertRank が「同じ集合内でランクを付ける」のに対し、TraceArk は「集合に含めるかどうか自体を変える」介入で、両者は直列に並べる関係(まず TraceArk で actionable を選別 → AlertRank でランク付け)で機能する。(Source: [[@2020__ISSRE__AlertRank - Automatically and Adaptively Identifying Severe Alerts for Online Service Systems]] §III.D, [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]] §II-B)
- **SLO ベース呼び出しとの理論的接続**: [[@2018__SREcon18 Asia__A Theory and Practice of Alerting with Service Level Objectives|Wilkinson SREcon18]] は「アラートを SLO 違反予測に直接連結する」設計で症状ベース呼び出しを実装する。アクショナブルアラートはこの方向の自然な発展形で、「ユーザー影響(SLO 違反)」を impact 軸として明示的に取り込みつつ、TraceArk のように因果関連メトリクスの絞り込みで interpretability も担保する。Wilkinson 2018 が「症状ベースだから呼ばれた人は必ず行動できる」と定性的に述べた性質を、TraceArk が「ExL(排他的レイテンシ)を基軸にパス粒度でトレースを集約することで偽陽性ノイズを排除」(§III-A、Insight 1-2)と定量的に実装した。(Source: [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]] §III-A, [[@2018__SREcon18 Asia__A Theory and Practice of Alerting with Service Level Objectives]])
- **「フィードバックループ」の組み込みが本番運用の前提条件**: [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems|Zeng+ 2023]] は XGBoost + 半教師あり学習で 10〜30 件のエンジニア評価を加えて F1 を 0.74 まで向上(§IV-C、図10)、[[@2020__ISSRE__AlertRank - Automatically and Adaptively Identifying Severe Alerts for Online Service Systems|Zhao+ 2020]] はインクリメンタル学習でソフトウェア変更後のモデル劣化(F1 0.68)を F1 0.88 まで回復(§IV.C4)。どちらも「初期モデルは中程度の精度から始めて、運用中のフィードバックで漸進的に改善」というアーキテクチャを採る。これは [[Quality of Alerts]] の handleability 軸が「OCE のドメイン知識から機械学習でラベル化する」(Yang+ DSN2022)将来方向と一致し、actionability の本質が静的な分類器ではなく**継続的な人手フィードバックで成長する学習系**にあることを示す。(Source: [[@2020__ISSRE__AlertRank - Automatically and Adaptively Identifying Severe Alerts for Online Service Systems]] §IV.C4, [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]] §IV-C)
- **アクショナブル性は「発火後の解釈可能性」だけでなく「発火前の合意形成」でも作れる**: TraceArk は発火した性能異常アラートに impact と interpretability を与える手法だが、Sohei Iwahori の SRE NEXT 2023 事例は、アラート追加時点で想定チャンネル、対応タイミング、適用スコープ、対応 Runbook を明示させることで actionability を前倒しに設計する。つまり「鳴ったあとに解釈可能にする」経路と、「鳴る前に受け手・行動・背景を合意する」経路がある。後者では Runbook が単なる手順書ではなく、アラートの Why と判断材料を保存するアクショナビリティの担体になる。(Source: [[@2023__SpeakerDeck__Runbookに何を書き、どのようにアラートを振り分けるか]], [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]])
- **「アラートクエリの声に出した読み上げ」はアクショナブル性の人間側評価手法である**: [[@2023__SREcon23 Americas__Cognitive Apprenticeship in Practice with Alert Triage Hour of Power|Cruz SREcon23]] の Alert Triage Hour of Power では、Driver がアラートクエリを声に出して読み上げ、タイトルとクエリの一致を検証する("Verify then trust the alert")。バーンレートの PromQL を読み解くことで「何を測っているか」を言語化し、意図と実装の乖離を即座に発見する。これは TraceArk の interpretability(異常通知の内容をアクショナブルにする)を、自動化ではなく**集団的な認知プロセス**として実現する方法である。自動化されたアクショナブル化は false positive 削減に直結するが、人間による言語化は「そもそもこのアラートの存在意義は何か」という上流の問いに遡及できる点で射程が異なる。(Source: [[@2023__SREcon23 Americas__Cognitive Apprenticeship in Practice with Alert Triage Hour of Power]])
- **「即座の対応 + 人間の知性」という運用者視点の最小定義がアカデミックな 2 軸定義の実践的起源**: [[@2017__SREcon17 Europe__Want to Solve Over-Monitoring and Alert Fatigue - Create the Right Incentives|Jalleda SREcon17 Europe]] は、アクショナブルアラートを「(1) 即座の対応が必要(15 分以内)、(2) 人間の知性を要する」の 2 条件で定義し、いずれかを欠くものはアラートではなくログ・チケット・自動修復で処理すべきとした。TraceArk の impact + interpretability の 2 軸や、Wilkinson 2018 の SLO ベース呼び出しがアカデミックな形式化を提供するのに対し、Jalleda の定義は運用者が「このアラートを鳴らすべきか」を即座に判断するための最小フィルタとして機能する。特に「自動修復で対処できるならアラートにしない」という排除条件は、AlertGuardian の autonomous handler や Google SRE AI の autonomous alert handler が自動化で代替する対象を事前に峻別する基準と一致する。(Source: [[@2017__SREcon17 Europe__Want to Solve Over-Monitoring and Alert Fatigue - Create the Right Incentives]], [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]])
- **「問題に最も近いチームへの通知」はアクショナブル性の直接的実装である**: [[@2019__SREcon19 EMEA__Are We All on the Same Page - Lets Fix That|Mineiro SREcon19 EMEA]] の [[Adaptive Paging]] は、分散トレーシングの因果関係を辿ってアラートの通知先を根本原因サービスの運用チームに動的に変更する。これは TraceArk が impact + interpretability の 2 軸でアクショナブル性を定義したうちの「interpretability を受信者側で最大化する」アプローチと読める——受信者が自チームのサービスの障害を受け取るため、次のアクション(ログ確認、ロールバック、依存調査)を即座に判断できる。TraceArk が「異常通知の内容をアクショナブルにする」のに対し、Adaptive Paging は「通知の宛先をアクショナブルにする」——内容と宛先は独立に操作可能であり、両者の組み合わせが考えられる。(Source: [[@2019__SREcon19 EMEA__Are We All on the Same Page - Lets Fix That]], [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]])
- **ビジネス影響・修復手順・通知先・予防可能性はアクショナブル性の最小チェックリストである**: [[@2016__SREcon16__Less Alarming Alerts|Treat SREcon16]] は、アラートを「人を起こすページ」として定義し、各アラートにビジネス影響と修復手順を問う。さらに解決時には問題要約、実施した対処、通知先、予防可能性を文書化してチームへ共有し、アラートシステムからリンクさせる。これは TraceArk の impact + interpretability を機械学習で後付けする前段階として、運用プロセス上で actionability を作る方法である。特に「修復できないなら起こさない」「朝まで待てるなら起こさない」は、アクショナブル性を時間制約と人間介入の必要性に結びつける実務的な排除条件である。(Source: [[@2016__SREcon16__Less Alarming Alerts]], [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]])
- **「全ページはアクショナブル」は症状ベース設計と対で成立する**: [[@2016__SREcon16 Europe__Alerting for Distributed Systems - A Tale of Symptoms and Causes, Signals and Noise|Rabenstein SREcon16 Europe]] は、オンコール担当者が緊急感を持って反応できる回数には限界があるため、全ページはアクショナブルでなければならないとする。その実装条件が「原因ではなく症状へページする」ことである。原因アラートは対応不能・重複・局所的ノイズになりやすいが、ユーザーに近い症状または差し迫ったサービス目標違反であれば、担当者は優先度と次の行動を判断しやすい。(Source: [[@2016__SREcon16 Europe__Alerting for Distributed Systems - A Tale of Symptoms and Causes, Signals and Noise]], [[@2018__SREcon18 Asia__A Theory and Practice of Alerting with Service Level Objectives]])
- **ML サービスのサイレント障害は従来のアクショナブルアラートの射程外であり、出力品質メトリクスの追加で対処する**: [[@2023__SREcon23 EMEA__Symptom-based Alerting for Machine Learning|Weichbrodt SREcon23 EMEA]] は、ML サービスが HTTP 200 を返しエラーもレイテンシ劣化もないまま品質が劣化する「サイレント障害」を報告した。入力単位変更・フィルタドリフト・劣化モデルの自動リリース等はバックエンド監視では検知されず、既存のアクショナブルアラートの定義(impact + interpretability)の対象にすらならない。これに対し Weichbrodt は、出力分布監視(D1 距離・KS 統計量等)と本番評価メトリクスを「ML 固有の症状アラート」として追加することで、ML サービスのアクショナブルアラートを成立させた。Treat 2016 の「ビジネス影響・修復手順を説明できないアラートは削除」という排除条件を ML に適用すると、ステークホルダー懸念のメトリクス化(適合率 <95% → ビジネス影響明確 → アクショナブル)が自然な帰結になる。(Source: [[@2023__SREcon23 EMEA__Symptom-based Alerting for Machine Learning]], [[@2016__SREcon16__Less Alarming Alerts]], [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]])
- **ページ条件と診断情報を分離すると、アクショナブル性と調査可能性を両立できる**: [[@2017__SREcon17 Americas__A Practical Guide to Monitoring and Alerting with Time Series at Scale|Wilkinson SREcon17 Americas]] は、ページするアラートは SLO 違反を示すべきだが、ディスク満杯・タスククラッシュ・バックエンド遅延のような診断情報はコンソールに置いてよいとする。これは「鳴る条件」はユーザー影響やサービス目標に寄せ、「見る情報」は原因候補を十分に残すという分離であり、症状ベース設計が原因情報の破棄を意味しないことを補強する。(Source: [[@2017__SREcon17 Americas__A Practical Guide to Monitoring and Alerting with Time Series at Scale]], [[@2016__SREcon16 Europe__Alerting for Distributed Systems - A Tale of Symptoms and Causes, Signals and Noise]])
- **振り分けの3段階(Slack通知のみ/JIRAチケット自動起票/PagerDutyオンコール)は実用的なアクショナブル化の設計パターンとして独立に導出されている**: [[Sohei Iwahori]] SRE NEXT 2020 では「即座の緊急アクション不要 → Slack のみ」「即座不要だが対応必要 → JIRA 自動起票」「その場で直ちに具体的アクション必要 → PagerDuty」の 3 段階振り分けを [[GREE, Inc]] の yusura(内製アラートコントロールシステム)で実装した。Jalleda SREcon17 Europe の「(1) 即座の対応が必要(15 分以内)、(2) 人間の知性を要する」という 2 条件の最小定義は PagerDuty 以外を排除する基準として機能し、JIRA 自動起票はその「いずれかを欠くもの」をチケット化する中間経路に相当する。2023 年の Iwahori SRE NEXT 2023 発表でも同じ振り分け軸が使われており、3段階パターンは [[GREE, Inc]] 社内で2020→2023年にわたり持続した安定設計であることが確認される。(Source: [[@2020__SRENext2020__Practices for Making Alerts Actionable]], [[@2023__SpeakerDeck__Runbookに何を書き、どのようにアラートを振り分けるか]], [[@2017__SREcon17 Europe__Want to Solve Over-Monitoring and Alert Fatigue - Create the Right Incentives]])
- **「定型アクションを自動化してアラートをアクショナブルにする」という経路は、アクショナブル性の定義そのものを変える**: Jalleda の定義「(1) 即座の対応が必要、(2) 人間の知性を要する」に従えば、定型アクション(プロセス再起動など)は「(2) 人間の知性を要しない」ためアラートではなく自動化で処理すべきである。Iwahori SRE NEXT 2020 の Alert Operator(AWS Lambda + AWS SSM によるコマンド自動実行)はまさにこの経路を実装し、自動化後に残るアラートが「真にアクショナブルなもの」になる。Chen SREcon17 Asia(Baidu Argus)の自動修復施策も同一の経路を採り、両者は独立に「定型作業の自動化によってオンコールアラートのアクショナブル率を引き上げる」ことを実証した。(Source: [[@2020__SRENext2020__Practices for Making Alerts Actionable]], [[@2017__SREcon17 Asia__Draining the Flood - A Combat against Alert Fatigue]], [[@2017__SREcon17 Europe__Want to Solve Over-Monitoring and Alert Fatigue - Create the Right Incentives]])
## 未解決の問い
- TraceArk の actionability(2 軸: impact + interpretability)と AlertRank の severity ランキング(重要度の連続スコア)は別物だが、両者を同一スコアに合算する設計はあり得るか? 例えば「actionable & high-rank」を上位、「actionable & low-rank」を中位、「non-actionable & high-rank」を低位、と直交化する 2×2 設計。
- TraceArk は Exchange 本番で 4 ヶ月稼働し適合率 0.9068(従来手法の 2.38 倍)を達成したが、これは Microsoft の TSG ベース運用と密に統合された結果。TSG が無い事業者で actionability を担保する方法は?
- AlertRank の Resolution Record(解決記録)ベース自動ラベル付けは、解決記録が整備された事業者でしか機能しない。ポストモーテムや RCA ドキュメントが未整備の組織で actionability を学習する代替シグナルは何か?
- アクショナブルアラートの評価は OCE への満足度調査が主流だが、MTTR(平均復旧時間)との対応関係はどう測定するか? 「actionability が高い」と「MTTR が短い」は相関するはずだが、TraceArk・AlertRank ともに MTTR への直接的影響は本論文では測定されていない。
- [[Quality of Alerts]] の 3 軸(indicativeness・precision・handleability)と TraceArk の 2 軸(impact・interpretability)の関係は? おそらく impact = indicativeness + precision、interpretability = handleability の対応だが、明示的な対応付けは未提示。
- 症状ベースアラーティングでは「原因を鳴らさない」ことがアクショナブル性を上げる一方、原因情報を落としすぎると初動調査が遅れる。ページ本文・Runbook・ダッシュボード・自動添付情報のどの層に原因候補を保持するのが最も良いか。
- Runbook を actionability の担体にする場合、Runbook の鮮度低下・未作成・背景情報の不足をどう自動検知するか。Iwahori 事例では一定期間で author に通知する仕組みが課題として挙げられるが、これはアラート品質評価の handleability 軸とどう統合できるか。
## 関連
- 親概念: [[アラート管理]]、[[Quality of Alerts]]
- 関連: [[サービスレベル目標]]([[@2018__SREcon18 Asia__A Theory and Practice of Alerting with Service Level Objectives|Wilkinson 2018]] の症状ベース呼び出しと接続)、[[インシデント管理]]
- 関連手法: TraceArk(Zeng+ 2023)、AlertRank(Zhao+ 2020)、SLO ベース呼び出し([[@2018__SREcon18 Asia__A Theory and Practice of Alerting with Service Level Objectives|Wilkinson 2018]])
- ソース: [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]]、[[@2020__ISSRE__AlertRank - Automatically and Adaptively Identifying Severe Alerts for Online Service Systems]]、[[@2023__SpeakerDeck__Runbookに何を書き、どのようにアラートを振り分けるか]]、[[@2016__SREcon16 Europe__Alerting for Distributed Systems - A Tale of Symptoms and Causes, Signals and Noise]]、[[@2017__SREcon17 Americas__A Practical Guide to Monitoring and Alerting with Time Series at Scale]]
## 出典
- [[@2023__ICSE-SEIP__TraceArk - Towards Actionable Performance Anomaly Alerting for Online Service Systems]] §I, §II-B, §III-A, §IV-C
- [[@2020__ISSRE__AlertRank - Automatically and Adaptively Identifying Severe Alerts for Online Service Systems]] §III.A, §III.D, §IV.C4
- [[@2018__SREcon18 Asia__A Theory and Practice of Alerting with Service Level Objectives]]
- [[@2023__SpeakerDeck__Runbookに何を書き、どのようにアラートを振り分けるか]]