サービスレベル目標


概要

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

重要な用語

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

セットアップ

Datadog のサービスレベル目標ステータスページを使用して、新しい SLO を作成したり、既存の SLO を表示して管理することができます。また、SLO サマリーウィジェットをダッシュボードに追加すると、SLO のステータスを一目で確認できます。

コンフィギュレーション

  1. SLO ステータスページNew SLO + を選択します。
  2. SLO のソースを定義します。SLO の種類には、メトリクスベースモニターベースがあります。
  3. 最大 3 つの SLO ターゲットをセットアップします。それぞれのターゲットはターゲット割合とローリングタイムウィンドウから成ります。利用可能なタイムウィンドウは、7 日、30 日、90 日です。SLO のターゲット割合を SLA で指定するターゲット割合より厳し目に設定することが推奨されます。
  4. 最後に、SLO にタイトルを付け詳細を入力するか、説明にリンクを足しタグを追加して保存します。

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

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

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

エラーバジェットの残りの式

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 を検索、表示、編集、複製、削除できます。

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

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

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

個々の SLO を編集するには、SLO の上にカーソルを置き、その行の右側に表示される EditCloneDelete ボタンを使用します。SLO の内容を詳しく確認するには、その行をクリックしてサイドパネルを開きます。

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

iOS と Android 上の SLO

SLO タグ

SLO の作成時や変更時に、SLO ステータスページでフィルタリングに必要なタグやSLO の保存済みビューの作成に必要なタグを追加することができます。

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 コンフィギュレーション履歴を追跡することができます。監査イベントは、SLO を作成、修正、または削除するたびにイベントエクスプローラーに追加されます。各イベントには SLO のコンフィギュレーション情報が含まれ、ストリームによりこれまでの SLO コンフィギュレーションの変更履歴が提供されます。

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

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

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

  1. SLO Created イベントには、作成時刻における SLO コンフィギュレーションのすべて (4 つ) の情報が表示されます。
  2. SLO Modified イベントには、更新中に変更されたコンフィギュレーション情報が表示されます。
  3. SLO Deleted イベントには、削除前に SLO が持っていたコンフィギュレーション情報のすべて (4 つ) が表示されます。

SLO 監査イベントの全リストを取得するには、イベントエクスプローラーに検索クエリ tags:audit,slo を入力します。特定の SLO に関する監査イベントのリストを表示するには、tags:audit,slo_id:<SLO ID> (対象とする SLO の ID を使用) を入力します。

また、Datadog イベント API を使って、プログラムでイベントエクスプローラーのクエリを作成することもできます。

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

SLO 監査イベント

たとえば、特定の SLO コンフィギュレーションが変更されたときに通知を受信するには、タグ audit,slo_id:<SLO ID> に対して [SLO Modified] テキストを追跡するようイベントモニターをセットします。

SLO イベントモニター

SLO ウィジェット

SLO のコンフィギュレーションをプロアクティブに管理するには、特定のタグに対応するイベントが発生したときに通知するようイベントモニターを設定します。

SLO を作成した後に、SLO サマリーダッシュボードウィジェットを使用して、SLO のステータスをダッシュボードメトリクス、ログ、APM データと合わせて表示することが可能です。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 タブをクリックします。

その他の参考資料