SLO データの取得

SLO データは時系列で保存されます。timeSeries.list メソッドの filter パラメータで時系列セレクタを指定するか、Metrics Explorer のダイレクト フィルタ モードを使用すると、SLO の時系列を取得できます。

SLO ベースのアラート ポリシー

Cloud Monitoring API を使用してアラート ポリシーを作成する場合は、時系列セレクタをポリシーのしきい値条件のフィールドとして使用してフィルタを指定します。Monitoring API を使用して SLO ベースのアラート ポリシーを作成する方法については、アラート ポリシーの作成をご覧ください。

アラート ポリシーでは、SLO に使用できる時系列セレクタのサブセットのみを使用できます。また、Google Cloud コンソールで作成された SLO ベースのアラート ポリシーは、常に select_slo_burn_rate セレクタを使用します。

フィルタで時系列セレクタを使用する

SLO の時系列データを取得するには、フィルタで時系列セレクタを指定する必要があります。SLO データは、指標タイプと一緒に格納されず、指標タイプとモニタリング対象リソースのペアを指定したフィルタでは取得できません。

名前と引数

時系列セレクタの形式には次のものがあります。

SELECTOR_NAME(SLO_NAME)
SELECTOR_NAME(SLO_NAME, LOOKBACK_PERIOD)

セレクタは、select_slo_ で始まる名前を持ち、1 つか 2 つの引数を取ります。

  • 次のように、セレクタの最初の引数には SLO のリソース名を指定します。

    projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID
    

    前の式には、次の 3 つの変数が含まれています。

    • PROJECT_ID: Google Cloud プロジェクトの名前または番号。
    • SERVICE_ID: サービスの名前。
    • SLO_ID: サービスに対して定義されている SLO の ID。

    Google Cloud プロジェクトの SERVICE_ID フィールドと SLO_ID フィールドの値を確認する方法については、API の操作をご覧ください。

  • 2 番目の引数には、ルックバック期間を指定します(サポートされている場合)。ルックバック期間については、エラー バジェットのアラートの種類をご覧ください。有効な時間単位は、「ns」、「us」、「ms」、「s」、「m」、「h」です。

たとえば、select_slo_budget セレクタは SLO_NAME 引数を取るため、このセレクタを使用するフィルタは次のようになります。

select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")

一方、select_slo_burn_rate セレクタには SLO_NAME 引数と LOOKBACK_PERIOD 引数が必要なため、このセレクタを使用するフィルタは次のようになります。

select_slo_burn_rate("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID", "3600s")

セレクタの一覧と説明については、時系列セレクタをご覧ください。

セレクタを使用したデータの取得

時系列データをクエリする方法の一つは、timeSeries.list メソッドのリファレンス ページにある API Explorer ツールを使用することです。このツールの詳細については、API Explorer をご覧ください。

たとえば、SLO の予算に関する情報を取得するには、API Explorer ツールで次のフィールドに入力します。

  • 名前: projects/PROJECT_ID
  • フィルタ: select_slo_budget("projects/PROJECT_ID/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")
  • interval.startTime: 2021-10-07T13:00:20-04:00
  • interval.endTime: 2021-10-08T13:00:20-04:00

1 つのシステムでは、PROJECT_ID などの変数が値で置き換えられ、メソッドが実行されると、次の時系列データが返されます。

取得された時系列データの抜粋

時系列セレクタ

このセクションでは、使用可能な SLO の時系列セレクタ、および時系列セレクタによって表現される内容について説明します。すべてのセレクタは、timeSeries.list メソッドでフィルタに使用して、時系列データを取得できます。アラート ポリシーには、サポートされていないセレクタがあります。

select_slo_burn_rate

構文: select_slo_burn_rate(SLO_NAME, LOOKBACK_PERIOD)

「バーンレート」時系列セレクタは、現在の失敗率(ルックバック間隔中の失敗したリクエストの割合)に対する SLO の持続可能失敗率の比率を返します。持続可能な障害率は、SLO が正確に達成される割合です。

この時系列中のこの値は、0 から無限大の範囲で変化します。

  • 値が 1 の場合、サービスが理想的な失敗率を示している(リスクは高すぎず、保守的でもない)ことを示します。
  • この値が 1 より大きい場合は、実際の失敗率が持続可能失敗率を上回っていることを意味します。この値が大きいほど、SLO がコンプライアンスを満たせなくなる時期が早まります。
  • 値が 1 未満の場合は、現在の失敗率が持続可能失敗率よりも低いことを意味します。

バーンレートの急激な変化を警告する高速バーンポリシーと、徐々に増加することを警告する低速バーンポリシーの 2 つのアラート ポリシーを使用することをおすすめします。

API または Google Cloud コンソールを使用して、この時系列セレクタに基づきアラート ポリシーを作成および編集できます。

Google Cloud コンソールを使用して作成された SLO ベースのアラート ポリシーはすべて、このセレクタを使用して SLO データを取得します。

select_slo_health

構文: select_slo_health(SLO_NAME)

「SLO ヘルス」時系列は、「特定のアライメント期間における、リクエスト総数に対するリクエスト数の比率」を返します。サービスの SLI では、適切なリクエストとしてカウントされるものを規定しています。SLI の詳細については、概要をご覧ください。

この時系列セレクタは、サービスのパフォーマンスを測定します。サービスに対するすべてのリクエストが良好な場合、この時系列のデータポイントの値は 1 になります。不良リクエストの数が増えると、データポイントの値が下がります。

select_slo_compliance

構文: select_slo_compliance(SLO_NAME)

「SLO コンプライアンス」時系列は、「コンプライアンス期間の開始時点からユニット総数に対する適切なユニット数の比率」を返します。SLO では、コンプライアンス期間をローリング ウィンドウまたはカレンダー時間の範囲として定義しています。単位には、リクエストまたは時間枠を指定できます。詳細については、リクエスト ベース SLO およびウィンドウ ベースの SLO のコンプライアンスをご覧ください。

この時系列セレクタは、サービスによる SLO 達成状況の概要を示します。運用上の緊急信号は生成されません。

この時系列セレクタは、アラート ポリシーで使用しないでください。

select_slo_budget

構文: select_slo_budget(SLO_NAME)

「SLO バジェット」時系列セレクタは、「測定時のエラー バジェット残高」を測定します。エラー バジェットはリクエスト単位または分単位で測定され、残高は測定対象のコンプライアンス期間がカレンダー ベースかローリング ウィンドウ ベースかにより決まります。詳細については、エラー バジェットをご覧ください。

この時系列セレクタは、サービスの信頼性にかかわるリスクを測定します。エラー バジェットがゼロ未満になると、現在の期間の SLO を満たすことができない可能性があります。組織の信頼性によっては、SLO を満たせないことが、組織の本番環境に実際に影響を及ぼす可能性があります。

この時系列セレクタは、アラート ポリシーで使用しないでください。

select_slo_budget_fraction

構文: select_slo_budget_fraction(SLO_NAME)

「SLO バジェット率」時系列セレクタは、「この時点でのエラー バジェットの残高を負の無限大~1 の割合」で示します。

この時系列セレクタは、アラート ポリシーで使用しないでください。

select_slo_budget_total

構文: select_slo_budget_total(SLO_NAME)

「SLO 合計バジェット」の時系列セレクタは、「コンプライアンス期間開始後のサービスの動作に基づいて、現時点で予想される総エラー バジェット(リクエスト数単位か分単位)」を示します。SLO は、コンプライアンス期間をローリング ウィンドウまたはカレンダー期間の範囲として定義します。

この時系列セレクタは、アラート ポリシーで使用しないでください。

select_slo_counts

構文: select_slo_counts(SLO_NAME)

「SLO カウント」時系列は「特定のアライメント期間内における有効なリクエストと無効なリクエストの数」を返します。このセレクタは、全般的な状態を記録して、長期ストレージ システムへの取り込みに適した時系列を提供します。

この時系列セレクタは、アラート ポリシーで使用しないでください。