SLO の方法論から実践へ:Part2 SLO ツールの選定¶
サービスレベル目標(SLO)は、サイトリライアビリティエンジニアリング(SRE)ツールキットの重要な要素です。SLO は、アプリケーションパフォーマンスに関する明確な目標を定義するためのフレームワークを提供し、最終的にはチームが一貫した顧客体験の提供、機能開発とプラットフォームの安定性のバランス、および社内外のユーザーとのコミュニケーションの改善を支援します。
SLO と SLI¶
第1部で見たように、SLO はサービスレベル指標(SLI)に対して正確な目標を設定します。SLI は、サービスの健全性とパフォーマンスを反映するメトリクスです。 Guance で SLO を管理することで、APM のトレースメトリクス、カスタムメトリクス、Synthetic データ、ログから生成されたメトリクスなど、モニタリングデータにシームレスにアクセスして SLI として使用できます。たとえば、典型的なユーザーリクエストが迅速に処理されることを保証したい場合、APM のサービスの中央値レイテンシーを SLI として使用できます。そして、SLO を「任意の暦月において、99% の時間で、すべてのユーザーリクエストの中央値レイテンシー(毎分計算)が 250 ミリ秒未満であること」と定義できます。
実際のパフォーマンスが設定した目標とどの程度一致しているかを正確に追跡するには、リアルタイムのパフォーマンスを監視する(たとえば、60秒ごとに中央値レイテンシーを計算し、250ミリ秒のしきい値と比較する)だけでなく、より長い期間にわたってそのしきい値を超える頻度を測定する(毎暦月に 99% の目標を達成していることを確認する)方法も必要です。Guance は、SLI を追跡し、それらを設定した SLO に関連付けて可視化するため、特定の期間における実際のパフォーマンスと目標の比較をすぐに確認できます。
ツールの選定¶
SLI メトリクスのデータは、主に Metrics、Logs、Traces の 3 つの要素から得られます。
- Metrics(メトリクス):システムおよびアプリケーションのメトリクスを収集します。これらのメトリクスはサービスに大きな影響を与えます。たとえば、CPU が突然 100% に急上昇すると、アプリケーションの処理能力が大幅に低下し、ユーザーには深刻なカクつきとして現れます。
- Traces(トレース):有向非巡回グラフ(DAG)に基づいて構築された、ソフトウェアの各モジュール間の直接的な呼び出し関係と、サービス呼び出しのトレース情報です。トレース情報を通じて、どのサービスやステートメントがユーザーに大きな影響を与えているか(例:データベースのスロークエリ)を迅速に特定できます。
- Logs(ログ):システムまたはアプリケーションが出力する、時間に関連付けられた記録です。通常はシステム/ソフトウェア開発者が出力し、システムのエラーや状態の特定を容易にします。ログ内の関連性のあるデータを Tag または Field として抽出します。Tag は集約やグループ化に、Field は計算や集約に便利です。
よく使われるツール
Metrics Prometheus、OpenTelemetry... Traces SkyWalking、OpenTelemetry、Jaeger、Sleuth、Zipkin... Logs ELK、Filebeat、Flume...
無料で利用できるオープンソースツールは多数ありますが、それぞれに独自のコンソールと構文が存在します。これらのツールは学習コストが高く、メンテナンスコストも高額であり、システムやユーザー体系が分散しているため、複数のプラットフォーム間を絶えず行き来する必要があります。まさに SLI には、各システムコンポーネントを集中管理できるプラットフォームが必要であり、1 つのプラットフォームで多様なツールを統合し、統一された構文を提供することで、学習コストを効果的に削減できます。Guance は最適な選択肢です。Guance はオールインワンのソリューションを提供し、現在 200 以上のオープンソースツールコンポーネントを統合しています。もちろん、チームを組んでこのようなプラットフォームを構築することも可能ですが、お勧めはしません。
すべての SLO を一箇所で管理する¶
組織が複数の製品やチームにわたってさまざまな SLO に取り組んでいる場合、すべての SLO のステータスを一箇所で可視化することで、優先順位の設定や問題解決に役立ちます。Guance のサービスレベル目標ビューでは、すべての SLO のステータスと、各 SLO の残りのエラーバジェットを確認できます。
メトリクスとモニターから SLO を作成する¶
SLO 一覧ビューで、「SLO を作成」ボタンをクリックして SLO を作成できます。Guance の SLO は、既存のモニター(例:p90 レイテンシーと目標しきい値を比較するモニター)や、メトリクスから計算されたリアルタイムステータスに基づいて作成できます。メトリクスベースの SLO は、特定の定義を満たすメトリクスの割合(例:ロードバランサーからの非 5xx 応答数を総応答数で割ったもの)を監視するために使用できます。
SLO とエラーバジェットを一目で確認する¶
SLO をクリックするか、イベントを開くと、SLO の詳細(ステータス、目標値、残りのエラーバジェットなど)を表示するサイドパネルが開きます。Guance は、各 SLO に対して自動的にエラーバジェットを生成します。これは、SLO に違反する前に許容できる非信頼性の程度を示します。これにより、目標を達成しているかどうか、および開発速度が設定されたパフォーマンスと安定性の目標に適合しているかを迅速に把握できます。Guance は、指定された SLO 目標と時間ウィンドウに基づいてエラーバジェットを自動的に計算します。たとえば、7 日間の 99% SLO 目標の場合、約 3 時間半のエラーバジェットが提供され、その期間のパフォーマンスが基準を下回ることが許容されます。
SLO ステータスの可視化¶

SLO のステータスを、関連するサービスやインフラストラクチャコンポーネントに関する詳細データとともにコンテキスト内で追跡するには、SLO ウィジェットを Guance のダッシュボードに追加できます。その後、ダッシュボードを社内外で共有し、SLO のリアルタイムステータスをサービスに依存するすべての関係者に伝えることができます。
また、一般的な SLO 基準(例:先週、先月、今週の累計、今月の累計)を通じて、しきい値を超える頻度を可視化することもできます。過去 30 日間の目標を 99% に設定し、警告目標を 99.5% に設定した場合、SLO ステータスは 99.5% を超えると緑色、99.5% 未満では黄色、99% 未満では赤色で表示されます。
サービスの状態を表示・共有する¶
Guance を使用すると、アプリケーション、インフラストラクチャ、ユーザーエクスペリエンスなどをすでに監視している同じ場所で、SLO の監視と管理を簡単に行えます。同様に重要なのは、Guance が、これらの SLO の達成に依存するすべてのステークホルダーやユーザーに対して透明性を提供できることです。まだ Guance を使用してサービスの健全性とパフォーマンスを監視していない場合は、無料トライアルアカウント から始めることができます。
このシリーズの次のパート(最終回)では、Guance で SLO を最大限に活用するためのベストプラクティスを紹介します。




