概要

新規または既存の Datadog モニターから SLO を構築するには、モニターベースの SLO を作成します。

時間ベースのデータセットは、通常、モニターベースの SLO にうまく対応します。モニターベースの SLO を使用すると、システムが正常な動作を示した時間を総時間で割ることで、 サービスレベル指標 (SLI) を計算することができます。

モニターベース SLO の例

前提条件

モニターベースの SLO を作成するには、既存の Datadog モニターが必要です。新しいモニターをセットアップするには、モニター作成ページにアクセスします。

Datadog のモニターベースの SLO は、以下のモニタータイプをサポートしています。

  • メトリクスモニターの種類 (メトリクス、インテグレーション、APM メトリクス、異常検知、予測値、外れ値)
  • Synthetic
  • サービスチェック (オープンベータ)

セットアップ

SLO ステータスページNew SLO を選択します。

Define the source で、Monitor Based を選択します。

クエリの定義

検索ボックスで、モニターの名前を入力し始めます。一致するモニターのリストが表示されます。モニター名をクリックすると、そのモニターがソースリストに追加されます。

SLO で単一のマルチアラートモニターのみを使用する場合、オプションで “Calculate on selected groups” (選択したグループ で計算) を選択し、最大 20 グループを選択することができます。グループ選択は、複数のモニターを含む SLO には対応していません。

SLO ターゲットの設定

目標パーセンテージ、タイムウィンドウ*、オプションで警告レベルを選択します。

目標パーセンテージは、SLO の基礎となるモニターが ALERT 状態であってはならない時間の割合を指定します。

タイムウィンドウは、SLO が計算を実行するローリング期間を指定します。

SLI の値に応じて、Datadog UI は SLO のステータスを異なる色で表示します。

  • SLI が目標値を超えている間は、UI に SLO のステータスが緑色で表示されます。
  • SLI が目標値を下回ると、UI に SLO のステータスが赤色で表示されます。
  • 警告レベルを含め、SLI が警告を下回り、目標レベルを上回った場合、UI に SLO のステータスが黄色で表示されます。

選択したタイムウィンドウによって、モニターベースの SLO に利用できる精度が変わります。

  • 7 日および 30 日のタイムウィンドウは、小数点以下 2 桁まで表示可能です。
  • 90 日のタイムウィンドウは、小数点以下 3 桁まで表示可能です。

SLO の詳細 UI では、7 日および 30 日のタイムウィンドウで構成された SLO については小数点以下 2 桁、90 日のタイムウィンドウで構成された SLO については小数点以下 3 桁が Datadog に表示されます。

次の例は、Datadog が SLO 計算の小数点以下の桁数を制限して表示する理由を示しています。7 日または 30 日のタイムウィンドウで 99.999% の目標を設定すると、それぞれ 6 秒または 26 秒のエラーバジェットが発生します。モニターは 1 分ごとに評価するため、モニターベースの SLO の粒度も 1 分となります。したがって、1 つのアラートで、前の例の 6 秒または 26 秒のエラーバジェットが完全に消費され、過剰に使用されることになります。実際には、チームはこのような小さなエラーバジェットを満足させることはできません。

1 分間に 1 回のモニター評価よりも細かい粒度が必要な場合は、代わりにメトリクスベースの SLO を使用することを検討してください。

名前とタグを追加する

SLO の名前と詳細な説明を選択します。SLO に関連付けるタグを選択します。

Save & Exit を選択し、新しい SLO を保存します。

ステータス計算

SLO の詳細では、8 つのグループが集計され、99% が緑色であることが表示されている

Datadog は、特定のグループが選択されていない限り、すべてのモニターまたはモニターグループのアップタイム率として、全体的な SLO ステータスを計算します。特定のグループが選択されている場合、SLO ステータスはそれらのグループのみを使って計算されます。特定のグループが選択されていない場合、UI はステータスが最も悪い 5 つのグループを表示します。

モニターベースの SLO は、WARN 状態を OK として扱います。SLO の定義には、良い動作と悪い動作の二元的な区別が必要です。SLO の計算では、WARN は悪い動作を示すほど深刻ではないため、WARN を良い動作として扱います。

3 つのモニターを含むモニターベースの SLO の次の例を考えます。1 台のマルチアラートモニターに基づくモニターベースの SLO の計算も同様です。

モニターt1t2t3t4t5t6t7t8t9t10ステータス
モニター 1OKOKOKOKアラートOKOKOKOKOK90%
モニター 2OKOKOKOKOKOKOKOKアラートOK90%
モニター 3OKOKアラートOKアラートOKOKOKOKOK80%
全体的なステータスOKOKアラートOKアラートOKOKOKアラートOK70%

この例では、全体のステータスが個々のステータスの平均値よりも低くなっています。

Synthetic テストの例外

場合によっては、1 つのグループ化された Synthetic テストで構成されるモニターベースの SLO のステータス計算に例外があります。Synthetic テストには、テストが ALERT 状態に入るときの動作を変更し、その結果、全体的なアップタイムに影響を与えるオプションの特別なアラート条件があります。

  • グループが指定された分数の間失敗するまで待ちます (デフォルト: 0)
  • 指定された数のグループが失敗するまで待ちます (デフォルト: 1)
  • ロケーションのテストが失敗と見なされる前に、指定された回数再試行します (デフォルト: 0)

これらの条件のいずれかをデフォルト以外に変更した場合、1 つの Synthetic テストを使用するモニターベースの SLO の全体的なステータスは、Synthetic テストの個々のグループの集計ステータスよりも優れているように見える可能性があります。

Synthetic テストのアラート条件の詳細については、Synthetic モニタリングを参照してください。

手動および自動モニターアップデートの影響

モニターが手動で解決された場合、または After x hours automatically resolve this monitor from a triggered state (x 時間後、このモニターをトリガー状態から自動的に解決する) 設定の結果として、SLO 計算が変更されることはありません。これらがワークフローにとって重要なツールである場合、モニターのクローンを作成し、自動解決設定と@-notification 設定を削除し、SLO にクローンを使用することを検討してください。

Datadog では、SLO の下地として Alert Recovery ThresholdWarning Recovery Threshold を持つモニターを使用しないことを推奨しています。これらの設定は、SLI の良い動作と悪い動作をきれいに区別することを難しくします。

モニターをミュートしても、SLO の計算には影響しません。

SLO の計算から期間を除外するには、SLO ステータス修正機能を使用します。

データがない

メトリクスモニターまたはサービスチェックを作成する際に、データが欠落している場合にアラートを送信するかどうかを選択します。この構成は、モニターベースの SLO 計算が欠落データをどのように解釈するかに影響します。欠落データを無視するように構成されたモニターの場合、欠落データのある時間帯は、SLO によって OK (アップタイム) として扱われます。欠落データにアラートを出すように構成されたモニターの場合、欠落データのある時間帯は、SLO によってアラート (ダウンタイム) として扱われます。

Synthetic テストを一時停止すると、SLO はデータが欠落している期間を計算から除外します。UI では、これらの期間は SLO ステータスバーで薄いグレーで表示されます。

基底のモニターと SLO 履歴

メトリクスモニタータイプに基づく SLO には、SLO Replay という機能があり、基礎となるモニターのメトリクスとクエリ構成から取り出した履歴データで SLO ステータスを埋め戻します。新しいメトリクスモニターを作成し、その新しいモニターに SLO を設定する場合、SLO のステータスを表示するために 7 日、30 日、または 90 日間待つ必要はありません。その代わり、SLO Replay は新しい SLO を作成したときにトリガーされ、モニターの基礎となるメトリクスとクエリの履歴を調べて、ステータスを記入します。

SLO Replay は、基礎となるメトリクスモニターのクエリを変更して、新しいモニター構成に基づいてステータスを修正した場合にもトリガーされます。SLO Replay が SLO のステータス履歴を再計算する結果、モニターの更新後、モニターのステータス履歴と SLO のステータス履歴が一致しない場合があります。

注: Synthetic テストまたはサービスチェックに基づく SLO は、SLO Replay をサポートしません。

その他の考慮事項

使用するケースに適した SLI タイプを使用していることを確認します。Datadog は、モニターベースの SLI とメトリクスベースの SLI をサポートしています。

その他の参考資料