【SRE導入「4大シグナル」】
SREチームで奮闘中です。
ユーザーが直接利用するシステムでは、これらの4つのメトリクスを計測することから始めよう。
4大シグナル
レイテンシ(リクエストを処理してレスポンスを返すまでにかかる時間)
- 処理に成功したリクエストのレイテンシと、失敗したリクエストのレイテンシを区別することは重要
- 単純にエラーをフィルタリングするのではなく、エラーのレイテンシも追跡することが重要
トラフィック(システムに対するリクエストの量)
- システム固有の高レベルのメトリックで計測
- Webサービスの場合、毎秒の HTTP リクエスト数で計測
- 静的なコンテンツか動的なコンテンツで区別する。
エラー(処理に失敗したリクエストのレート)
- 明示的な場合(HTTPの500番台など)
- 暗黙的な場合(HTTP200の成功レスポンスが返されているが、内容に間違いがあるものなど)
- ポリシーによる場合(「レスポンスタイムを1秒以下にすると約束しているなら、1秒以上かかったリクエストはエラー」とするようなものなど)
※プロトコルのレスポンスコードからだけでは、あらゆる障害の状況を表現するには不十分。
サチュレーション(アクティブなワーカー数)
- 最も制約のあるリソースに重点を置いて、システムの利用率を計測
- メモリに制約があるシステムであればメモリ
- I/Oに制約があるシステムであればI/O
- 多くのシステムでは、利用率が100%に達する前にパフォーマンスの低下が生じるので利用率のターゲットを必ず設定しておく
これらをモニタリングして、いずれかに問題が生じたとき、サチューションの場合は問題になりかかっているときに、人間が対応することができる状況ができていることが大事。