SLO データの取得

SLO データは時系列で保存されます。timeSeries.list メソッドまたは Metrics Explorer に対し filter パラメータで時系列セレクタを指定することで、SLO の時系列を取得できます。

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

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

アラート ポリシーでは、SLO に使用できる時系列セレクタのサブセットのみを使用できます。また、Google Cloud Console で作成された 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]
    

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

たとえば、select_slo_budget セレクタには引数として SLO 名のみを指定します。このセレクタを使用するフィルタは次のようになります。

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

一方、select_slo_burn_rate セレクタの引数にはルックバック期間も指定されるため、このセレクタを使用するフィルタは次のようになります。

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

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

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

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

次のスクリーンショットは、API Explorer での select_slo_budget 時系列セレクタを timeSeries.list のフィルタとして使用した例です。

timeSeries.list メソッドに時系列セレクタを指定する。

以下に、返された時系列データの一部を示します。

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

時系列セレクタ

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

select_slo_burn_rate

構文: select_slo_burn_rate(SLO_NAME, LOOKBACK_PERIOD)

「バーンレート」時系列セレクタは、現在の失敗率(ルックバック間隔中の失敗したリクエストの割合)に対する SLO の持続可能失敗率の比率を返します。持続可能失敗率は、SLO が完全に満たされた場合の失敗率です。値が 1 の場合は、サービスが理想的な失敗率(高リスクすぎることも保守的すぎることもない失敗率)を示すことを意味します。

この時系列中この値は 0 から無限大の範囲で変化します。この値が 1 より大きい場合は、実際の失敗率が持続可能失敗率を上回っていることを意味します。この値が大きいほど、SLO がコンプライアンスを満たせなくなる時期が早まります。

書き込み速度の急激な変化を警告する高速書き込みポリシーと、徐々に増加することを警告する低速書き込みポリシーの 2 つのアラート ポリシーを使用します。

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

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

select_slo_health

構文: select_slo_health(SLO_NAME)

「SLO ヘルス」時系列セレクタは、「特定の出力期間内におけるリクエスト総数に対するリクエスト数の比率」を返します。良いリクエストの詳細は、サービスの SLI で定義されます。

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

API を使用してこの時系列セレクタを使用するアラート ポリシーを作成できます。このポリシーは、API でのみ編集できます。

select_slo_compliance

構文: select_slo_compliance(SLO_NAME)

「SLO コンプライアンス」時系列セレクタは、「カレンダー ベースまたはローリング ウィンドウ ベースのコンプライアンス期間の開始以降のサービスの動作を測定した場合、その時点での良好なユニットに対する総ユニットの比率」を測定します。単位はリクエストまたは時間ウィンドウのいずれかとします。詳細については、リクエスト ベースおよび Windows ベースの SLO のコンプライアンスをご覧ください。

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

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

select_slo_budget

構文: select_slo_budget(SLO_NAME)

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

この時系列セレクタは、サービスの信頼性にかかわるリスクを測定します。エラー バジェットが 0 を下回ると、サービスが問題なく稼働していても、現在の期間の 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 合計バジェット」の時系列セレクタは、カレンダー ベースまたはローリング ウィンドウ ベースのコンプライアンス期間開始後のサービスの動作に基づいて、現時点で予想される総エラー バジェットを示します(リクエスト単位または分単位)。

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

select_slo_counts

構文: select_slo_counts(SLO_NAME)

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

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