はじめに
- アドベントカレンダー22日目はサービス・レベル目標の監視に関する記事です。
- 本記事では前提となるSLOとは何か、エラーバジェットとは何か、監視の設定方法についてご紹介します。
機能の概要
- 設定したサービスレベル目標を何%達成できているのか、UI上で確認できる機能です。
- 目標に対する達成度に加え、エラーバジェットという、エラーや遅延をしてしまっても問題にならない残り時間が把握できるため、更新や修正を実施したい場合の判断材料に活用できます。
公式ドキュメントのリンク
英語: https://www.ibm.com/docs/en/instana-observability/latest?topic=instana-service-level-objectives-slos
日本語: https://www.ibm.com/docs/ja/instana-observability/latest?topic=instana-service-level-objectives-slos
サービスレベル目標(SLO)とは?
Service Level Objectives(SLO)とは「一定期間の特定のサービスに対して合意されたパフォーマンス目標」です。
引用・参考:https://www.ibm.com/jp-ja/think/topics/service-level-objective
SLOを理解するにあたり、SLA(Service Level Agreement)、SLI(Service Level Indicator)という言葉も存在します。
- SLA(サービスレベル契約):サービス提供者と顧客の間でされる契約。設定したサービスレベルに達しなかった場合は罰則が発生します。
- SLO(サービスレベル目標):SLAを達成するための努力目標。通常、SLAで設定したサービスレベルよりも厳しく設定されます。
- SLI(サービスレベル指標):サービスのパフォーマンスを測定するための尺度。遅延やエラー率の測定値をパーセンテージで表します。
SLAを違反してしまうことはペナルティが発生するだけではなく、顧客の信用にもつながります。
サービス提供者はSLAで提示したサービスレベルを守るためにSLOを設定し、SLIで計測した値がSLOを下回らないように監視をすることで、より高い水準でサービスレベルが守られるように運用できます。
エラー・バジェット
直訳すると「エラーの予算」です。SLO違反してしまうまでにどのくらいの障害の量が許容されるのかを定義するものです。
障害は全く起きないことが理想ですが、実際の運用ではある程度のサービス中断は避けられません。
エラー・バジェットを把握しておくと、ソフトウェアの更新や修正の際の判断に活用することができます。
前提条件
以下の準備が整っていることを確認してください。
- アクセス権限:「サービスレベルへのアクセス」権限及び「SLO構成の作成、設定、削除」権限
- 監視対象エンティティ:以下のいずれか一つ以上がInstanaで既に設定されている必要があります
- アプリケーション・パースペクティブ
- ビーコンデータ付きウェブサイト
- 合成テスト
- インフラストラクチャエンティティ(ホスト、コンテナなど)
設定例
以下の手順で設定します。
シナリオ
目標 :7日間のローリング期間 200ms において、「決済サービス」アプリケーションへのAPI呼び出しの95%が応答することを保証する。
この目標において、SLIとSLOは以下に該当します。
SLI:「決済サービス」アプリケーションへのAPI呼び出し応答率
SLO:過去7日間を継続的に評価し、応答時間が200ms以内である応答率
1. サービスレベルに移動する
- Instana UIのナビゲーションメニューから、「サービスレベル」をクリックします
- 「サービス・レベル目標を作成する」をクリックします
2. エンティティーの選択
- エンティティタイプ: アプリケーション
- 「次へ」をクリックします
- アプリケーションを選択してください: 決済サービス (検索可能なリストから)
- 「次へ」をクリックします
3. スコープの設定
- スコープ内の呼び出し : インバウンド呼び出し (アプリケーション外部からのコール)
- 非表示の呼び出しを含める (オプション):
- 内部呼び出し: 無効 (内部サービスコールを除外)
- シンセティック呼び出し: 無効 (ヘルスチェックを除く)
- サービスおよびエンドポイント : 選択 (ドロップダウンメニューを使用)
- サービス: すべてのサービス (または特定のサービスを選択)
- エンドポイント: すべてのエンドポイント (または特定のエンドポイントを選択)
- 「次へ」をクリックします
4. インジケーターの設定
- SLOの指標の設定: 待ち時間
- 待ち時間タイプ: 時間ベース (1分ごとにメトリクスを集計)
- 集約: 平均値 (1分あたりの平均遅延)
- しきい値: 200 ミリ秒
- 「次へ」をクリックします
しきい値の仕組み:Instanaは毎分、平均待ち時間を計算します。 平均が200msを超えた場合 、その時間は「エラー」としてマークされ、エラー予算を消費します。
5. 目標の設定
- SLOターゲット: 95% (稼働時間の95%が閾値を満たす必要がある)
- 時間枠: ローリング (過去7日間を継続的に評価)
- 期間: 7日間
- タイムゾーンの固定: 無効 (デフォルトでUTCを使用)
エラー予算のプレビュー : 504分 (7日 × 24時間 × 60分 × 5%)
6. 詳細の入力
- 名前: 決済サービス - レイテンシーSLO
- タグ(オプション): 生産、支払い、重要 (オプション、フィルタリング用)
- チーム: 支払いチーム、監査チーム (オプション)
- 「作成」をクリックします。
SLOダッシュボードの理解
作成後、SLOダッシュボードが表示され、以下が表示されます:
| 状況 | 現在の達成率(例: 96.5 %)と目標値(95%)の比較 |
| 残りのエラー予算 | エラー予算内の残り時間 (例: 504分のうち450分) |
| 燃焼率 | エラー予算が消費される速度(例:予想より 1.2x 20%速い) |
| インディケーターチャート | 時間経過に伴う遅延と閾値線 |
| エラー予算チャート | 時間経過に伴うエラー予算の消費状況 |
| トラフィックチャート | 時間経過に伴うリクエスト量 |
最後に
- SLO監視に関して、 SLOの意味、Instanaで設定する際の前提条件と実際の設定方法の例 についてのご説明をしました
- InstanaのSLO監視の機能をご活用いただくことで、開発者などがシステムの更新、修正を行う際の判断材料にすることができます
- ご覧いただきありがとうございました。Merry Christmas and Happy New Year!








