外れ値モニター
外れ値モニターとは、同じ役割を持つグループの複数系列を互いに比べ、他の仲間と振る舞いが違う系列を見つけて通知する Datadog のモニター種別のこと。過去の自分と比べる異常検知とは違い、同じ時刻の仲間と比べる。
概要
外れ値モニターは、ホストや可用性ゾーンのようなグループで分けたメトリクスを系列ごとに並べ、他と離れた振る舞いをする系列を外れ値として検出する Datadog のモニター種別です。判定の物差しは自分の過去ではなく、同じ時間帯の仲間の値です。グループには均質に振る舞う 3 つ以上のメンバーが必要で、系列が少ないと比べる相手がなく成り立ちません。アルゴリズムは DBSCAN と MAD の 2 系統で、どちらも tolerance で許す差の大きさを調整します。気にするのは、同じ構成のサーバーやパーティションを横に並べて運用していて、1 台だけ静かに壊れかけている状態を、全体のしきい値に埋もれる前に拾いたいときです。
仲間と比べて一つだけ違うものを見つけるモニター
外れ値モニター (Outlier Monitor) はモニターの種別の一つで、あるグループが同じ仲間の他のグループと違う振る舞いをしていることを検出します。公式ドキュメントが挙げる例は 2 つです。プールの中の 1 台の Web サーバーだけが異常な数のリクエストを処理している場合と、AWS の 1 つの可用性ゾーンだけ 500 エラーが目立って多い場合です (2026 年 9 月時点・出典: Outlier Monitor)。前提として、メトリクスはホストや可用性ゾーン、パーティションのようなグループで分かれていて、均質に振る舞うメンバーが 3 つ以上あることが求められます。通知は外れ値と判定されたグループごとに別々に出ます。評価する時間窓は直近 5 分 / 15 分 / 1 時間などの選択肢のほか、1 分から 1 年の範囲で指定できます。
異常検知と予測とは、比べる相手が違う
同じ「異常検知系」に並ぶ 3 つの種別は、比べる相手で区別すると迷いません。異常検知モニターは自分の過去の推移と比べ、予測モニターは自分の将来の見込みと比べます。外れ値モニターだけが、同じ時刻の仲間と比べます。この違いは検出できる障害の形を決めます。メンバー全員が揃って悪化する障害は、仲間との差が生まれないので外れ値モニターには映りません。逆に、全体の平均や合計を見るしきい値では埋もれてしまう 1 台だけの劣化は、外れ値モニターが最も早く拾える形です。したがって外れ値モニターは全体を守るしきい値の代わりではなく、横に並んだ均質な集団の中の孤立を専門に見る補助線として置きます。
DBSCAN と MAD - 2 系統のアルゴリズムと tolerance
アルゴリズムは DBSCAN 系と MAD 系の 2 系統で、それぞれに scaledDBSCAN と scaledMAD という拡大縮小版があります。公式ドキュメントは既定の DBSCAN を勧め、正しい外れ値を拾えないときにパラメーターの調整か MAD への切り替えを試すよう案内しています (2026 年 9 月時点・出典: Outlier Monitor)。DBSCAN のパラメーターは tolerance の 1 つで、大きくするほど仲間からの離れ方を広く許します。MAD は中央値絶対偏差を物差しにし、tolerance (中央値から何偏差分離れたら外れ点とみなすか) と % (グループ内の外れ点の割合がこの値を超えたらグループ全体を外れ値とみなす) の 2 つを設定します。拡大縮小版は、値の規模が大きく系列同士が密に固まっているときに、規模に応じて判定を伸縮させたい場合の選択肢です。
- 各グループの系列を、時系列の点の数を次元とする 1 つの点として置く
- 各時刻の全グループの中央値を取り、中央値の系列を作る
- 各グループと中央値系列のユークリッド距離を測る
- 距離の中央値に正規化の定数を掛けて初期のしきい値とし、tolerance を掛けて距離パラメーターにする
- 最大のクラスターに入らなかった点を外れ値とする
時間窓の長短が、見逃しと過敏さを分ける
公式ドキュメントが設定時の重要事項として挙げるのが時間窓です。窓が長すぎると通知が間に合わず、短すぎると一度きりのスパイクに過敏になります (2026 年 9 月時点・出典: Outlier Monitor)。調整のために、プレビューグラフで窓を変えながら逆送りのボタンで過去へさかのぼり、「この設定なら発報していた外れ値」を確かめる手順が用意されています。アルゴリズムの選び方にも同じ手順が効きます。公式ドキュメントの例では、複数のホストが同時にバッファーを書き出す中で 1 台だけ少し遅れると、DBSCAN は外れ値と判定し、MAD は判定しません。同時再起動の副産物として揃っているだけなら MAD が向き、揃って動くべき定期ジョブなら DBSCAN が正しい選択です。つまり「揃っていること自体に意味があるか」が、2 系統を選ぶときの問いになります。
帯に分かれるグループは帯ごとに分けて見張る
外れ値モニターが効かない典型は、グループの系列が複数の帯に分かれている形です。シャードごとに水準が違うと、孤立した 1 本を探す前に帯同士が互いを外れ値に見せてしまいます。公式ドキュメントは、帯ごとに識別のタグを付け、帯単位で別々に外れ値の監視を設定するよう勧めています (2026 年 9 月時点・出典: Outlier Monitor)。メンバーが 3 つに満たないグループも、比べる相手が足りず成り立ちません。向くのは、同じ役割のホストや Pod、同じ設定で並ぶキューのパーティション、複数の可用性ゾーンのように、均質であるはずの集団です。全体を守るしきい値や異常検知との使い分けの一覧はモニターの解説に譲ります。外れ値モニターを置くことは、「均質なはず」という設計上の前提を日々検証し続けることでもあります。