SLI
Service Level Indicator
ユーザ視点でのサービスの信頼性を表す指標
参考
ユーザ第一であることを見失わないようにすべし
たとえ、可用性のメトリクスが完璧でも、ユーザが「信頼性が低い」と感じれば信頼性は低い
たとえ、ログにエラーがたくさん含まれていても、ユーザに影響がないなら急いで直す必要はない
ユーザ視点で問題がないならアラートを出して緊急対応する必要はない
普通の就業時間まで待って直せば良い
エラー率だけ見てても仕方がない
リクエストがサービスに到達してなければそもそもエラーとして計測されない
メモリやCPUの使用率が高いことのみでは問題とは言えない
使用率が高くてもリクエストが正常に実行されていればユーザにとっては影響がない
ユーザ視点に立って考える
①サービスが稼働しているか
②サービスが使用可能であるか
稼働してても使用可能でないと意味ない
③サービスからのレスポンスはあるか
使用可能でも一生レスポンス返ってこなければ意味ない
④サービスは許容可能な数の良好なレスポンスを返しているか
エラー多すぎたら意味ない
⑤レスポンスは正しいフォーマットになっているか
JSONを期待してるのにxml返ってきてたら意味ない
⑥正しいデータが返ってきてるか
返ってきたデータが古いものだと意味ない
SLIを考える時に、上記6つ全ての計測が必要か?否
一部を計測すれば他の一部も計測できるものもある
e.g. ⑥が正常なら⑤④③②①は前提できる
イベントの結果がSLIを「満たした」か「満たさなかった」の2値で判定できるといい
e.g. サービスに対するレイテンシの95%タイルについては、400ms以内に正しいデータでレスポンスされる
ユーザにとってどう影響があるのかを説明できないといけない