概要
・システム開発や運用において、統計は軽視されがちである。
・多くの人がちょっと統計を使うことで、簡単に欲しい情報が得られると誤解している。
4.1 システム運用における統計を学ぶ前に
・少々統計が軽視される背景として、Nagiosが広く普及し、その影響が監視の仕組みの改善の妨げになっていた。
・Nagiosでアラートを設定するのは簡単な一方で、アラートが役に立たないことも多い。
Nagiosについて
・Nagiosのアラートは現在のメトリクスとアラートの閾値を比較し判定するものである。よって下記のような問題が起こる。
→閾値を一瞬だけ超えたケース(偽陽性の疑い)
→閾値を超える、超えないを行ったり来たりするケース(重複送信)
注意)Nagiosの非難ではない。Nagiosが広く普及して、他のツールがNagiosを基準としていることが影響している。
4.2 計算が救いの手を差し伸べる
・モダンな監視スタックの原則の一つは、監視サービスが送信したメトリクスを捨てないことである。
・Nagiosは現在の値しかとれず、時系列のトレンドはとれない(現在はGraphios、pnp4nagiosなどで取得可能)
→過去のデータの保存によって、統計を使った問題解決が可能になる
データ収集と閾値に対するチェックを分けるモデル
・ホストに対して直接値チェックを行うのではなく、時系列データベースに保存された値に対し、チェックを行うようにする
→過去のデータを見ずに、未来を洞察、推測はできない
4.3 統計は魔法ではない
・間違った結論に辿り着かずに、データのアプローチを決定するには、統計の分野で多くの学びが必要である。
4.4 meanとaverage
・mean(平均値)は集合内の個別の値ではなく、集合がどのようなものかを表すのに用いる。
・時系列データにおいては最近取得したデータ群の移動平均(moving average)をとることが多い。
→グラフの平滑化が可能になる。
・平均化のメリットとしては、パターンの識別が容易になること。
・平均化のデメリットとしては、外れ値が隠され、重要かもしれないデータを失う可能性があること。
4.5 中央値
・中央値(mediun)は平均だと集合の把握が難しい場合に利用する。
・一方向に大きな偏りのある、データセットを扱う場合に、平均値よりも中央値の方がデータの傾向をより正確に表す。
4.6 周期性
・周期性(seasonality)とはデータポイントがパターンを繰り返すこと
→パターンを知ることで未来を推測できる
・サーバのリクエストに周期性を見出すことで、このパターンから外れた値を検知して、調査するといった運用が可能。
・サーバの負荷には認識できる周期性が全くない場合も存在する
4.7 分位数
・分位数(quantile)はデータセットのある点を表す統計手法。第2四分位数と言えば中央値になる。
・パーセンタイルがよく使われる。パーセンテージでデータセット内の点を表す手法。
・パーセンタイルは平均を取ることが不可能なので注意。
・パーセンタイルのデメリットは、いくつかの値を捨てているため、重要な情報を失う可能性があること。
4.8 標準偏差
・標準偏差(standard deviation)は平均からどの程度離れているか、近いかを表す値。
・正規分布(normally distributed)にしか期待する結果が出ないことに注意。(正規分布をデータセットの分布に仮定している)
・大半のデータは正規分布に従わないため、利用を諦めるのも一つである。
4.9 まとめ
データを扱う前に以下の問いを参考にしたい
・大小どちらかに偏りのあるデータか
・極端な外れ値の発生頻度はどうか
・データポイントに上限下限はあるか
読んでみた感想
・Nagiosに限らず、閾値超えたら発砲みたいなアラートがとりあえず設定されているシステムは多いが、それだと対応手順が曖昧になることが多い気がする。(アラート設定した側も目的がアラートの設定に終始している場合が往々にしてあるので。本来の目的はシステムが異常な状態になっているケースの検知。)
・時系列で普段のアクセスパターンから外れた傾向になっていたら、発砲するなど、もう少しアラートルール工夫したいなって思った。
・正規分布仮定していること知らず、標準偏差使うはあるあるだと思うので気をつけないと。