TL;DR

システムで取るべき 4 つの重要な測定値。レイテンシ、トラフィック、エラー、サチュレーションからなる。

なぜ必要か

Google の SRE 本では、ユーザが使うシステムで 4 つの指標しか測れないなら、この 4 つに絞るべきだとしている。どれかに問題が出たら人を呼び出すようにしておけば、監視としては少なくともそれなりの範囲をカバーできる。

仕組み

  • レイテンシ: リクエストの処理にかかる時間
  • トラフィック: リクエストの数
  • エラー: リクエストが失敗する割合
  • サチュレーション: リソースの利用率

SRE 本の定義はもう少し細かい。トラフィックは、システムにかかる需要の量を、そのシステムに合った指標で測ったもので、Web サービスなら 1 秒あたりの HTTP リクエスト数になる。エラーには、HTTP 500 のように明示的に失敗したものだけでなく、成功を返したのに中身が間違っているものや、合意した応答時間を超えたものも含む。サチュレーションは、サービスがどれだけ埋まっているかを、最も制約の厳しいリソースに注目して測ったものである。

注意点

レイテンシは、成功したリクエストと失敗したリクエストで分けて測る。失敗したリクエストを混ぜると全体の数値がゆがむ。遅いエラーは速いエラーよりも悪いので、エラーのレイテンシも捨てずに追跡する。また、多くのシステムは利用率が 100% に達する前に性能が落ちるので、サチュレーションには目標の利用率を決めておく。

関連

出典