サービスレベル目標(SLO)


概要

サービスレベル目標 (SLO) は、サイト信頼性エンジニアリングツールキットの重要な要素です。SLO を使用し、アプリケーションのパフォーマンスに明確なターゲットを定義するためのフレームワークを整えることで、一貫したカスタマーエクスペリエンスを提供したり、プラットフォームの安定性を保ちつつ機能を開発したり、内部および外部ユーザーとのコミュニケーションを改善するために役立てることができます。

重要な用語

サービスレベル指標 (SLI)
サービスのパフォーマンスまたは信頼性を定量的に測定するもの。Datadog SLO では、SLI はメトリクスまたは 1 つ以上のモニターの集合体です。
サービスレベル目標 (SLO)
特定の期間における SLI のターゲット割合。
サービスレベル契約 (SLA)
クライアントとサービスプロバイダとの間で交わされる、明示的または暗示的な合意事項で、クライアントの信頼性に対する期待とそれを満たさない場合にサービスプロバイダ側が補償する内容について規定したもの。
エラーバジェット
SLO のターゲット割合 (100% - ターゲット割合) から算出される許容範囲内の不確実性。これは製品開発における投資として見なされます。

SLO タイプ

SLO を作成する際、以下のタイプから選択できます。

  • メトリクスベースの SLO: SLI をカウントベースで計算したい場合に使用でき、SLI は優良イベントの合計を全イベントの合計で割った値として計算されます。
  • モニターベースの SLO: SLI を時間ベースで計算したい場合に使用でき、SLI はモニターのアップタイムを基にしています。モニターベースの SLO は新規または既存の Datadog モニターに基づく必要があり、調整はそのモニターに対して行う必要があります (SLO の作成時にはできません)。
  • タイムスライス SLO: SLI を時間ベースで計算したい場合に使用でき、SLI はカスタムアップタイム定義 (システムが正常な動作を示した時間を合計時間で割ったもの) に基づきます。タイムスライス SLO は、Datadog モニターを必要とせず、さまざまなメトリクスフィルターとしきい値を試して、SLO 作成中にダウンタイムを即座に調査することができます。

全体的な比較については、SLO タイプ比較チャートをご覧ください。

セットアップ

Datadog のサービスレベル目標ステータスページを利用して、新規 SLO の作成や既存のすべての SLO の表示・管理を行います。

構成

  1. SLO ステータスページNew SLO + を選択します。
  2. SLO タイプを選択します。メトリクスベースモニターベース、またはタイムスライスのいずれかのタイプで SLO を作成できます。
  3. SLO のターゲットとローリング期間 (7 日、30 日、90 日経過後) を設定します。Datadog では、SLO のターゲットを SLA で指定した値より厳し目に設定することを推奨しています。期間を複数設定する場合は、プライマリに設定する期間を 1 つ選択します。この期間が SLO 一覧に表示されます。デフォルトでは、最も短い期間が選択されます。
  4. 最後に、SLO にタイトルを付け詳細を入力するか、説明にリンクを足しタグを追加して保存します。

SLO を設定したら、サービスレベル目標リストビューから SLO を選択して、詳細サイドパネルを開きます。サイドパネルには、SLO の各ターゲットの全体的なステータス比率と残りのエラーバジェット、そして SLI の履歴を示すステータスバー (モニターベースの SLO 用) または棒グラフ (メトリクスベースの SLO 用) が表示されます。1 つのマルチアラートモニターを使用してグループ化されたモニターベースの SLO を作成した場合、または sum byを使用してグループ化されたメトリクスベースの SLO を作成した場合、全体的なステータスのパーセンテージと残りのエラーバジェットに加えて、個々のグループのステータスのパーセンテージと残りのエラーバジェットが表示されます。

例: アベイラビリティーゾーンごとにレイテンシを追跡するためにモニターベースの SLO 作成すると、全体的な SLO と SLO が追跡している個々のアベイラビリティーゾーンのステータス割合とエラーバジェットの残量が表示されます。

注: エラーバジェットの残りはパーセンテージで表示され、次の式で計算されます。

$$\text"エラーバジェットの残り" = 100 * {\text"現在のステータス" - \text" ターゲット"} / { 100 - \text"ターゲット"}$$

SLO ターゲットの設定

エラーバジェットとエラーバジェットアラートの利点を活用するには、SLO ターゲット値を 100% 未満に厳密に設定する必要があります。

100% の目標を設定するということは、エラーバジェットが 100% に等しいため、エラーバジェットが 0% になることを意味します (SLO ターゲット)。許容可能なリスクを表すエラーバジェットがないと、顧客対応の信頼性を維持するという相反する優先順位と機能開発への投資との間の整合性を見つけることが困難になります さらに、目標値が 100% の SLO は、SLO アラート評価でゼロ除算エラーにつながります。

注: SLO で指定できる小数の桁数は、SLO の種類と選択するタイムウィンドウに応じて異なります。それぞれの SLO の種類について、詳しくは次のリンクを参照してください。

モニターベースの SLO: 7 日および 30 日目標の場合は小数第 2 位まで、90 日目標の場合は小数第 3 位まで。

メトリクスベースの SLO: すべての目標について小数第 3 位まで。

SLO の変更

SLO を編集するには、リストビューで SLO の行にカーソルを合わせて、行の右側に表示される編集鉛筆アイコンをクリックするか、行をクリックして詳細なサイドパネルを開き、パネルの右上に表示される歯車アイコンから編集ボタンを選択します。

権限

ロールベースのアクセス

すべてのユーザーは、関連付けられたロールに関係なく、SLO と SLO ステータス修正を閲覧できます。SLO の作成、編集、削除は、slos_write 権限を持つロールにアタッチされたユーザーのみが行えます。

ステータス修正を作成、編集、および削除するには、ユーザーは slos_corrections 権限を必要とします。この権限を持つユーザーは、それらの SLO を編集する権限を持っていなくても、ステータスの修正を行うことができます。権限の完全なリストについては、RBAC ドキュメントを参照してください。

きめ細かなアクセス制御

編集を許可するロールのリストを指定することで、個々の SLO へのアクセスを制限します。

歯車メニューの SLO 権限オプション
  1. SLO をクリックすると、詳細サイドパネルが表示されます。
  2. パネル右上の歯車アイコンをクリックします。
  3. Permissions を選択します。
  4. Restrict Access をクリックします。
  5. ダイアログボックスが更新され、組織のメンバーはデフォルトで Viewer アクセス権を持っていることが表示されます。
  6. ドロップダウンを使用して、SLO を編集できる 1 つまたは複数のロール、チーム、ユーザーを選択します。
  7. Add をクリックします。
  8. ダイアログボックスが更新され、選択したロールに Editor 権限があることが表示されます。
  9. Save をクリックします。

SLO への編集アクセス権を維持するために、システムは保存する前に、自分がメンバーであるロールを少なくとも 1 つ含めることを要求します。アクセス制御リストのユーザーは、ロールを追加することができ、自分以外のロールを削除することのみが可能です。

: ユーザーは、モニターへの書き込み権限がなくても、任意のモニターに SLO を作成することができます。同様に、ユーザーは SLO への書き込み権限がなくても、SLO アラートを作成することができます。モニターの RBAC 権限の詳細については、RBAC ドキュメントまたはモニターの RBAC の設定方法に関するガイドを参照してください。

SLO の検索

サービスレベル目標ステータスページでは、すべての SLO に対し高度な検索を実行して、検索結果から SLO を検索、表示、編集、複製、削除できます。

高度な検索を使用し、SLO の属性をどれでも組み合わせて SLO をクエリできます。

  • name および description - テキスト検索
  • time window - 7日、30日、90日
  • type - メトリクス、モニター
  • creator
  • tags - datacenter、env、service、team, など。

検索を実行するには、左側のファセットチェックボックスと上部の検索バーを使用します。ボックスをチェックすると、それに合わせて検索バーのクエリが更新されます。同様に、検索バーのクエリを変更 (あるいは新規入力) すると、ボックスのチェックが更新されます。クエリ結果はクエリの変更に合わせてリアルタイムで更新されます。‘検索’ボタンはありません。

SLO の表示

SLO を任意のタグでグループ化すると、データのサマリービューが表示されます。各状態 (違反、警告、OK、データなし) にある SLO の数を、サービス、チーム、ユーザージャーニー、階層、または SLO に設定されたその他のタグでグループ化して、すばやく分析できます。

チームごとにグループ化された SLO のサマリービュー

ステータスとエラー予算の列で SLO を並べ替え、注意が必要な SLO に優先順位をつけることができます。SLO リストには、構成で選択した主要なタイムウィンドウの SLO の詳細が表示されます。その他の構成タイムウィンドウはすべて、個別のサイドパネルで表示できます。それぞれのテーブル行をクリックして、SLO 詳細サイドパネルを開きます。

: Apple App Store および Google Play Store で入手できる Datadog モバイルアプリをダウンロードすれば、モバイルデバイスのホーム画面から SLO を表示することが可能です。

iOS と Android 上の SLO

SLO タグ

SLO タグは、SLO ステータスページでのフィルタリング、SLO 保存ビューの作成、または SLO をグループ化して表示するために使用できます。タグは以下の方法で SLO に追加できます。

  • SLO を作成または編集する際にタグを追加できます。
  • SLO リストビューから、SLO リストの上部にある Edit Tags および Edit Teams ドロップダウンオプションを使用して、タグを一括して追加および更新できます。
SLO リストページには、タグの一括編集のための Edit Tag ドロップダウンが表示されます

SLO のデフォルトビュー

SLO のリストビューに移動すると、デフォルトの SLO ビューが読み込まれます。

デフォルトビューには以下が含まれます。

  • 空の検索クエリ
  • オーガニゼーションで定義されているすべての SLO リスト
  • 左側のファセットリストで利用可能なファセットのリスト

保存ビュー

以下を共有することで、チームに最も関連性の高い SLO についてカスタマイズした検索を保存ビューの SLO リストビューに保存し共有することができます。

  • 検索クエリ
  • 選択したファセットのサブセット

リストビューで SLO のサブセットを問い合わせると、そのクエリを保存ビューとして追加できるようになります。

保存ビューの追加

保存ビューを追加するには、

  1. SLO を問い合わせます。
  2. ページ左上の Save View + をクリックします。
  3. ビューに名前を付けて保存します。

保存ビューのロード

保存済みビューを読み込むには、ページ左上の Show Views ボタンを押して Saved Views パネルを開き、リストから保存済みビューを選択します。保存済みビューは、同じ Saved Views パネルの上部にある Filter Saved Views 検索ボックスで検索することもできます。

保存ビューの共有

リストから保存済みビューにカーソルを合わせハイパーリンクを選択し、保存済みビューにリンクをコピーすれば、チームメイトと共有できます。

保存ビューの管理

使用済みビューは一旦使用すると、その保存済みビューを選択し、クエリを変更し、Saved Viewsパネルのその名前の下にある Update ボタンをクリックすることで、更新することができます。保存済みビューの名前を変更したり、保存済みビューを削除するには、Saved Views パネルでその行にカーソルを合わせ、それぞれ、鉛筆アイコンをクリックするか、ゴミ箱アイコンをクリックします。

SLO および SLO ステータス補正の監査イベント

SLO 監査イベントでは、Event Explorer または SLO 詳細の Audit History タブを使用して、SLO 構成の履歴を追跡できます。監査イベントは、SLO または SLO ステータス補正を作成、変更、または削除するたびに、Event Explorer に追加されます。各イベントには、SLO または SLO ステータス補正の構成に関する情報が含まれ、ストリームには構成変更の履歴が表示されます。

SLO 監査イベント

各イベントには、以下の SLO コンフィギュレーション情報が含まれます。

  • 名前
  • 説明
  • ターゲットパーセンテージおよび時間枠
  • データソース (モニター ID またはメトリクスクエリ)

イベントエクスプローラーに表示される 3 種類の SLO 監査イベント:

  • SLO Created イベントは作成時の SLO 構成情報を示します。
  • SLO Modified イベントは、変更時に変更された構成情報を示します。
  • SLO Deleted イベントは、SLO が削除される前の構成情報を示します。

ステータス補正の監査イベント

各イベントには、以下の SLO ステータス補正構成情報が含まれます。

  • SLO 名
  • ステータス補正の開始時刻と終了時刻 (タイムゾーン付き)
  • ステータス補正カテゴリー

Event Explorer には、3 種類の SLO ステータス補正監査イベントが表示されます。

  • SLO Correction Created イベントは、作成時のステータス補正構成情報を示します。
  • SLO Correction Modified イベントは、変更時に変更された構成情報を示します。
  • SLO Correction Deleted イベントは、ステータス補正が削除される前の構成情報を示します。

すべての SLO 監査イベントの完全なリストを取得するには、Event Explorer に検索クエリ tags:(audit AND slo) を入力します。特定の SLO の監査イベントのリストを表示するには、tags:audit,slo_id:<SLO ID> と目的の SLO の ID を入力します。また、Datadog Events API を使用して、Event Explorer をプログラムでクエリすることもできます。

注: UI にイベントが表示されない場合は、イベントエクスプローラーの時間枠を長くしてみてください(過去 7 日間など)。

SLO 監査イベント

SLO 詳細の “Audit History” タブを使用して、個々の SLO のすべての監査イベントを表示することもできます。

SLO 詳細監査履歴タブ

Event Monitor では、SLO 監査イベントを追跡する通知をセットアップできます。例えば、特定の SLO の構成が変更されたときに通知を受けたい場合、Event Monitor を設定して、audit,slo_id:<SLO ID> タグ内の [SLO Modified] テキストを追跡します。

SLO ウィジェット

learning center
ラーニングセンターでダッシュボードと SLO を使用してビジネスクリティカルなインサイトを作成してみる

実際のクラウドコンピューティング容量と Datadog トライアルアカウントで、コストをかけずに学ぶことができます。今すぐ登録して、SLO を追跡するダッシュボード構築の詳細をご覧ください。

今すぐ登録

SLO を作成した後は、ダッシュボードやウィジェットを使ってデータを可視化することができます。

  • SLO ウィジェットを使用して単一の SLO のステータスを可視化する
  • SLO List ウィジェットを使用して、SLO のセットを可視化します
  • SLO データソースを使用して、15 か月分のメトリクスベースの SLO データを時系列とスカラー (クエリ値、トップリスト、テーブル、変化) の両方のウィジェットでグラフ化します。

SLO ウィジェットの詳細については、SLO ウィジェットおよび SLO リストウィジェットのページを参照してください。SLO データソースの詳細については、ダッシュボードで過去の SLO データをグラフ化する方法のガイドを参照してください。

SLO ステータスの修正

ステータス修正により、SLO ステータスとエラーバジェットの計算から特定の期間を除外することができます。こうすることで、以下のことが可能になります。

  • 定期メンテナンスなど、想定されるダウンタイムによるエラー予算の枯渇を防ぐ
  • SLO に準拠することを期待されていない非営業時間は無視する
  • デプロイメントによる一時的な問題が、SLO に悪影響を与えないようにする

修正を適用すると、指定した期間が SLO の計算から外れます。

  • モニターベースの SLO の場合、修正時間ウィンドウはカウントされません。
  • メトリクスベースの SLO の場合、修正ウィンドウ内のすべての良好イベントと不良イベントはカウントされません。
  • タイムスライス SLO の場合、補正タイムウィンドウはアップタイムとして扱われます。

臨機応変に対応するための 1 回限りの修正と、定期的に発生する予測可能な修正を作成するオプションがあります。1 回限りの修正には開始時刻と終了時刻が必要であり、定期的な修正には開始時刻、期間、間隔が必要です。定期的な修正は、iCalendar RFC 5545 の RRULE 仕様に基づいています。サポートされているルールは FREQINTERVALCOUNT および UNTIL です。定期的な修正の終了日の指定は、修正を無期限に繰り返す必要がある場合にオプションで指定できます。

どちらのタイプの修正でも、修正を行う理由を示す修正カテゴリーを選択する必要があります。選択可能なカテゴリーは、Scheduled Maintenance (定期メンテナンス)、Outside Business Hours (営業時間外)、Deployment (デプロイ)、Other(その他)です。必要であれば、説明文を追加することができます。

各 SLO には、クエリのパフォーマンスを確保するために構成可能な修正数の上限が設定されています。これらの制限は、SLO ごとに過去 90 日間にのみ適用されるため、過去 90 日間より前の期間の修正 は、制限に含まれません。つまり、以下の通りです。

  • 1 回限りの修正の終了時刻が過去 90 日以前である場合、制限にカウントされます。
  • 定期的な修正の最後の繰り返しの終了時刻が過去 90 日以前である場合、制限にカウントされません。

SLO ごとの 90 日制限は、以下の通りです。

修正タイプSLO ごとの制限
1 回限り100
毎日繰り返し2
毎週繰り返し3
毎月繰り返し5

SLO のサイドパネルで Correct Status を選択するか、SLO ステータス修正 API または Terraform リソースを使用して、UI からステータス修正を構成することができます。

SLO 補正 UI

UI でのアクセス

UI で SLO ステータス修正にアクセスするには

  1. 新しい SLO を作成するか、既存の SLO をクリックします。
  2. SLO の詳細サイドパネルビューに移動します。
  3. 歯車アイコンの下で、Correct Status を選択して、Status Corrections 作成モーダルにアクセスします。
  4. Select the Time Correction WindowOne-TimeRecurring のいずれかを選択し、修正したい期間を指定します。
  5. Correction Type を選択します。
  6. オプションで Notes を追加します。
  7. Apply Correction をクリックします。

既存のステータス修正を表示、編集、削除するには、SLO の詳細サイドパネルビューの上部にある Corrections タブをクリックします。

SLO カレンダービュー

SLO カレンダービューは、SLO ステータスページで利用できます。右上隅で、“Primary” ビューから “Weekly” または “Monthly” ビューに切り替えると、12 か月分の SLO ステータスの履歴データが表示されます。カレンダービューは、メトリクスベースの SLO およびタイムスライス SLO に対応しています。

SLO カレンダービュー

SLO CSV エクスポート

SLO の CSV エクスポート機能をお試しください

CSV エクスポート機能は非公開ベータ版です。フォームに記入してアクセスをリクエストしてください。

Request Access

SLO CSV エクスポート機能は、「週間」または「月間」カレンダービューに切り替えると、SLO ステータスページで利用できます。これらのビューでは、新しい「CSV にエクスポート」オプションにアクセスして、以下の情報を含む過去の SLO データの CSV をダウンロードできます。

  • SLO ID、名前、タイプ
  • SLO タグ
  • SLO ターゲット
  • 過去の SLO ステータス値
SLO カレンダービュー

CSV エクスポートで使用できるタイムウィンドウは次のとおりです。

  • 週間: SLO ステータスは、カレンダーに沿った週 (日曜日午前 12 時~土曜日午後 11 時 59 分) に基づいています。
  • 月間: SLO ステータスは、カレンダーに沿った月 (月初日午前 12 時~月末午後 11 時 59 分) に基づいています。

これらの時間は、Datadog のユーザーのタイムゾーン設定に基づいています。

SLO ステータスは、SLO タイプに基づいて計算されます。

  • メトリクスベースの SLO: タイムウィンドウの全イベントのうち、良好なイベントの割合。
  • タイムスライス SLO: タイムウィンドウの合計分数のうち、良好な分数の割合。

注:

  • エクスポートされる SLO は、検索クエリに基づいています。
  • カレンダービューは、メトリクスベースおよびタイムスライス SLO に対応しています。モニターベースの SLO をエクスポートする場合、SLO ID と名前のみが CSV に含まれます (SLO のステータス履歴データではありません)。
  • 1 回のエクスポートにつき、SLO は 1000 件までです。

その他の参考資料