実践的な手順:過去のアラートデータをエクスポートし分析し、最も騒がしいモニターを特定する方法。

測定できないものは修正できません。エンジニアリングチームがアラート疲労に苦しんでいる場合、どのモニターを削除するかを単純に「推測」することは、最終的なブラインドスポット障害の処方です。睡眠を体系的に取り戻すには、インシデントルーティングシステムをデータソースとして扱う必要があります。
PagerDuty、Opsgenie、またはVictorOpsに送信されたすべてのアラートは、いつ発火したか、誰が確認したか、どれだけ速く解決されたか、エスカレートされたかどうかというトレイルを残します。このヒストリーにデータ駆動の監査プロセスを適用することで、ノイズの大多数を生成している少数の悪い行為者を特定できます。このガイドは、それらを特定して沈黙させるためのステップバイステップのフレームワークを提供します。
ほぼすべてのインフラストラクチャフットプリントで、80/20ルール(パレートの原則)が可観測性を支配します:意味のないアラートの約80%は、モニターの20%だけで生成されています。
これらの悪い行為者はしばしば目の前に隠れています。それは毎晩警告をトリガーする不安定なデータベースバックアップジョブです。それはマイクロデプロイメント中に失敗する攻撃的に調整されたHTTPチェックです。それらは個別に素早く確認されて却下されるため、小さな迷惑に感じます。集計してのみ、その真のコスト——エンジニアリングのトイルと正規化された逸脱——が明らかになります。
まず、インシデント管理プラットフォームから過去60〜90日のインシデントデータをエクスポートします。以下を含むCSV/JSONエクスポートを探します:
エクスポートをスプレッドシートまたはJupyterノートブックに読み込みます。同一のアラートをグループ化します(regexを使用してポッド名などの動的IDを除去)。総発生数を数えます。
ボリュームが最も高い5つのアラートを見てください。アラートが週次総ボリュームの5%以上を占め、ほとんどコードデプロイやロールバックなしに解決される場合、無効にしてください。実行可能になるには騒がしすぎます。

監査中、これらの特定の悪い監視のプロファイルに遭遇する可能性があります:
検出:解決タイムスタンプから作成タイムスタンプを引きます。継続時間が頻繁に3分未満(人間の介入なし)の場合、アラートは「フラッピング」しています。
解決策:評価遅延を追加します。Prometheusでは for: 1mパラメータを for: 5mに調整して、一時的なブリップを吸収します。
検出:平均確認時間(MTTA)を見てください。特定の警告が45分以上確認されないままでいることが多い場合、チームは無意識にそれが重要でないことを知っています。
解決策:重大度をダウングレードします。SMSページングワークフローの代わりに日次Slackダイジェストチャンネルにルーティングします。
エンジニアはしばしばコンテキスト不足からノイズの多いレガシーモニターを削除することを恐れます(「田中さんが何かの理由でこれを設定したとしたら?」)。これらのエッジケースのために安全な「削除して待つ」プロトコルを実装します:
監査は一度限りの操作ではありません。エントロピーにより、インフラストラクチャが成長するにつれて新しいアラートがゆっくりとノイズを生成し始めます。
月次アラートレビューのケイデンスを確立します:
データグルーピングのためにすべてにタグを付けます。ペイロードが環境(env: production)とサービス(service: payments)を明示的にラベル付けすることを確認します。これにより、特定のマイクロサービスがチームを不均等に消耗させているかどうかを確認するために監査データを効果的にピボットできます。
アラート履歴のクリーンアップは、エンジニアリングチームが実行できる最高レバレッジのトイル削減タスクの一つです。フラッピングアラートを体系的にサイレントにし、重要でない警告をダウングレードし、最悪の犯人を削除することで、オンコールレスポンダーのメンタルヘルスを劇的に改善できます。
外部可観測性ツールはこの可視性を高めることができます。たとえば、Heimdallは外部エンドポイント全体の歴史的なパフォーマンスと稼働率メトリクスをネイティブに追跡し——チームがノイズの多い内部クラスターテレメトリとは別に、本物のダウンタイムパターンを歴史的にクエリして分析できるようにします。
DNS、ネットワーク、そしてアプリケーションが到達可能かどうかを決定する見えない層に焦点を当てたインフラストラクチャエンジニア。