ヘビーテイルで十分な量のデータポイントが生成されるメトリクスについて、どのようなデータ傾向になっているのかを把握したい。
例えば、これがなんらかのシステムの「レイテンシー」のメトリクスだったとして、CloudWatch 統計定義の内、次の値を眺めてみることで何が分かるだろうか。
- 最大値
- Maximum
- 99パーセンタイル
- 99th Percentile Score (p99)
- 平均値
- Average
- 境界値99%トリム平均値
- 99% Trimmed Mean (tm99)
- 最小値
- Minimum
単品で
-
Maximum
- 最も時間のかかったケース、つまりレイテンシーという意味では「最悪」のケース
- たまたま例外的に重かっただけでは? この値に引き摺られて全体を評価してしまっていいのか? という懸念がある
-
p99
- 時間のかかった方から1%分のデータポイントを無視した残りの中で、最も時間のかかったケース
-
Maximum
のケースの「たまたま〜」のようなものが除外されている- つまり、例外感が比較的減った「きれいな最悪」のケース
-
Average
- いわゆる平均的なケース
-
Maximum
周辺がずば抜けて大きな数値だった場合は引き摺られて大きな値になってしまう……
-
tm99
- 時間のかかった方から1%分のデータポイントを無視した残りから計算した、平均的なケース
-
Maximum
周辺がずば抜けて大きな数値だった場合でも無視されている- データポイントが正規分布だったり総数が少なかったりすると「ただ偏らせただけ」の結果になるため、冒頭の「ヘビーテイルで十分な量のデータポイントが〜」という条件が重要
-
Minimum
- 最も時間のかからなかったケース、つまりレイテンシーという意味では「最良」のケース
- システムが、例えばキャッシュを返しているなど「処理を端折った分だけ早く返せるのは当たり前」という場合に、この値に引き摺られて全体を評価してしまっていいのか? という確認が必要
-
Minimum
の評価基準に合わせて、トリム平均にて「時間のかからなかった方」も無視して計算するといいかもしれない(例:TM(10%:99%)
)
-
複合で
-
p99 << Maximum
- 最大値に近いデータポイントが相対的に多くない雰囲気
-
Average << p99
- 「きれいな最悪」に近いデータポイントが相対的に多くない雰囲気
-
tm99 << p99
- 「きれいな最悪」に近いデータポイントが相対的に多くない雰囲気
-
tm99 ≒ Average
- 最大値に近いデータポイントが相対的に多くない雰囲気