SLO の作成

サービスをモニタリングするには、サービスレベル目標(SLO)が少なくとも 1 つ必要です。SLO は、サービスのパフォーマンス目標をカプセル化します。各 SLO は、サービスレベル指標(SLI)と呼ばれるパフォーマンス指標に基づいています。SLI と SLO の背景情報については、サービスのモニタリングにおけるコンセプトをご覧ください。

1 つのサービスに対して最大 500 個の SLO を作成できます。

始める前に

SLO の表示と作成に必要な権限を取得するには、プロジェクトに対するモニタリング編集者(roles/monitoring.editor)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

ご利用にあたって

SLO を定義するには、[サービスレベル目標(SLO)の作成] ペインに移動します。

  1. Google Cloud コンソールの [SLO] ページに移動します。

    [SLO] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

  2. [サービスレベル目標(SLO)の作成] ペインを開きます。

    新しいサービスの場合は、以下の操作を行います。

    1. [サービスを定義] をクリックして、サービスを定義します。
    2. [サービスを定義] ペインで [送信] をクリックしたら、[SLO を作成] をクリックします。

    既存のサービスの場合は、以下の操作を行います。

    1. [サービス] リストで、[サービス] リスト内のサービスの名前をクリックします。
    2. [サービスの詳細] ページで、[SLO を作成] をクリックします。

[SLO 作成] ペインから SLO 作成手順を進めます。このドキュメントの残りの部分では、SLO 作成プロセスの以下の各ステップについて説明します。

  1. SLI を設定する。
  2. SLI の詳細を定義する
  3. SLO を設定する。
  4. SLO を確認して保存する。

次のステップに進むには、[続行] をクリックします。SLO を保存する前に、前のステップをクリックして変更することもできます。SLO の作成プロセスを終了するには、[閉じる] をクリックします。

SLI の設定

[SLI の設定] ペインには次のサブペインがあります。

  • サービスに関する識別情報を報告する [サービスの詳細]。これは、サービスのダッシュボードの [サービスの詳細] ペインと同じです。

  • モニタリングするパフォーマンスの指標を選択する [指標の選択]。

  • 指標の評価方法を選択する [リクエスト ベースまたは Windows ベースの選択]。

下のスクリーンショットは SLI ペインを示しています。

[SLI の設定] ペインで、パフォーマンス指標を選択します。

SLI で使用される指標と評価方法の詳細については、サービスレベル指標のコンセプトのトピックをご覧ください。

指標の選択

SLI 指標では、測定するパフォーマンスのタイプを指定します。SLI では、時間の経過に合わせた良好なパフォーマンスを測定するため、指標から比率を作成します。SLI には、次のオプションがあります。

  • 可用性。ユーザーにとってのサービスの可用性を測定する。
  • レイテンシ。ユーザーに対するサービスの応答時間を測定する。
  • その他。特定の指標を使用することを示します。指標を指定し、[SLI の詳細を設定] ペインで SLI をビルドする方法を記述します。

有効な選択肢は、構成しているサービスの種類によって異なります。

  • Cloud Service Mesh、Google Kubernetes Engine 上の Istio、App Engine のサービスについては、どのオプションも選択できます。可用性とレイテンシの指標はすでにこれらのサービスでは知られていますが、[その他] を選択してカスタム SLI を使用することもできます。

  • GKE ベースのサービスとカスタム サービスの場合、選択肢は [その他] のみです。Prometheus 指標は、デフォルトの可用性とレイテンシの SLO に含まれていません。その他の意味のある可用性やレイテンシの指標は、これらのサービスでは事前に把握されていません。

    Google Cloud Managed Service for Prometheus を使用して Prometheus 指標の収集を構成した場合、収集した Prometheus 指標をカスタム SLI として設定できます。

評価方法の選択

SLI の指標を選択した後、指標の評価方法を指定します。

  • リクエスト ベースの評価では、一定期間におけるリクエストの合計数に対する評価条件を満たすリクエストの数を測定します。

  • 時間枠ベースの評価では、評価対象期間全体に対して良好さの基準を満たす評価期間の数を測定します。

どちらの評価方法にも、[SLI の詳細を設定] ページで評価基準を指定します。

これらの評価タイプの詳細については、リクエスト ベース SLO およびウィンドウ ベースの SLO のコンプライアンスをご覧ください。

SLI の詳細の設定

[SLI の詳細を定義する] ペインの内容は、前のステップで選択した指標と評価方法によって異なります。

可用性の指標とリクエスト ベースの評価を選択した場合は、他に詳細情報は必要ありません。

時間枠ベースの評価

時間枠ベースの評価を選択した場合は、以下のペインで時間枠に関する追加基準として「良好さ」の基準と期間を設定します。

良好さの基準と評価期間を選択して、SLI 時間枠を設定します。

良好さの基準は、コンプライアンス期間中に「良好」と評価する必要がある時間枠の割合を示します。期間では、時間枠の長さを指定します。

レイテンシの指標

レイテンシの指標を選択した場合は、以下のペインで許容可能なパフォーマンスを判定するしきい値を指定します。

SLI のレイテンシのしきい値を設定します。

レイテンシのしきい値を超える値はすべて、SLI の評価時に「悪い」パフォーマンスと判定されます。

カスタム SLI

SLI 指標として [その他] を選択した場合は、このペインで使用する指標を指定します。指標を選択するには、[パフォーマンス指標] フィールドに入力するか、リストから 1 つを選択します。

リストの指標は以下の 2 つのタイプに分けられます。

  • 分布カット指標
  • 時系列の比率指標

Google Cloud Managed Service for Prometheus で Prometheus 指標を収集する場合、指標名は prometheus.googleapis.com/ で始まります。

以下のスクリーンショットは、部分的なリストを示します。

メニューの指標は、指標タイプごとに分類されます。

分布カット指標を選択した場合は、範囲(上、下、または両方)と、モニタリング対象リソースと含めたいラベルを指定するフィルタを指定して SLI を構成します。構成ペインは次のようになります。

分布カット指標の範囲とフィルタを設定します。

時系列の比率インジケーターを選択する場合は、通常は指標またはリソースタイプのラベルの値を選択することにより、分子フィルタと分母フィルタを作成して指標データを分類します。構成ペインは次のようになります。

時系列の比率の分子フィルタと分母フィルタを設定します。

これらの SLI タイプの詳細については、DistributionCutTimeSeriesRatio の Monitoring API リファレンス ページをご覧ください。

GKE コントロール プレーンの指標

GKE コントロール プレーンの指標は、カスタム SLI に使用できるシステム正常性の便利な指標です。指標を使用する前に、これらの指標の収集を有効にする必要があります。これらの指標は、Google Cloud Managed Service for Prometheus によって収集されます。

  • [API サーバーの指標][gke-api-metrics]を使用して、API サーバーの負荷、エラーを返した API サーバー リクエストの割合、API サーバーが受信したリクエストのレスポンス レイテンシを追跡します。
  • スケジューラの指標を使用すると、保留中の Pod に十分なリソースがない場合に発生するスケジュール設定の問題に事前に対応できます。

コントロール プレーンの指標と、それらを使用してシステムの健全性をモニタリングする方法については、コントロール プレーンの指標を使用するをご覧ください。

グラフのプレビュー

SLI を構成すると、[SLI の詳細を定義する] ペインに、このサービスの過去のパフォーマンスが SLI によりどのように測定されるかを示すプレビュー グラフが表示されます。例:

構成完了した SLI には、過去のデータに基づくグラフが表示されます。

サービスを作成またはデプロイを完了したばかりの場合は、まだデータがない可能性があります。SLI は引き続き作成できますが、過去の履歴は取得できません。

SLO の設定

[SLO の設定] ペインは、以下の部分で構成されます。

  • コンプライアンス期間。ここで、SLI を評価する期間を設定します。

  • パフォーマンス目標。ここで、コンプライアンス期間中のパフォーマンスのしきい値を指定します。

  • プレビュー。パフォーマンス目標のしきい値を示すグラフと、コンプライアンス期間中の SLI の評価結果を示すグラフが表示されます。

コンプライアンス期間とパフォーマンス目標を選択して、SLO を設定します。

コンプライアンス期間

メニューから、以下の 2 種類のコンプライアンス期間を選択できます。

  • カレンダー期間
  • ローリング ウィンドウ

カレンダー期間は、一定期間におけるコンプライアンスを測定します。この期間が終了すると、エラー バジェットがリセットされ、新しいコンプライアンス期間が開始されます。

ローリング ウィンドウとは、スライド期間のことです。長さもありますが、コンプライアンスは過去 n 日間にわたって計算されます。新しい日が始まると、過去 n 日間のコンプライアンスと残りのエラー バジェットが再計算されます。

カレンダー期間とローリング ウィンドウ コンプライアンス期間の詳細については、コンプライアンス期間をご覧ください。

グラフのプレビュー

SLO の構成が完了すると、[SLO の設定] ペインに、このサービスの過去のパフォーマンスが SLO でどのように測定されるかを説明するプレビュー グラフが表示されます。例:

構成完了した SLO には、過去のデータに基づくグラフが表示されます。

サービスを作成またはデプロイを完了したばかりの場合は、まだデータがない可能性があります。SLO は引き続き作成できますが、過去の履歴は取得できません。

SLO の保存

[確認と保存] ペインには、SLO の表示名という 1 つのフィールドがあります。このフィールドには、SLO を定義する際に行った選択内容に基づくデフォルト値が使用されますが、値を変更することで表示名をよりわかりやすく変更できます。

ペインには、SLO のプレビューが JSON 形式で表示されます。SLO は JSON ブロックにまとめられます。これは、serviceLevelObjectives.create メソッドで使用する際にコピーできます。SLO 値のいずれかを変更すると、JSON プレビューが自動的に更新されます。

以下のスクリーンショットは、デフォルトの名前を持つフィールドを示しています。

Monitoring は、SLO のデフォルト名を生成します。

表示名に問題がなければ、[SLO を作成] をクリックします。

次のステップ

SLO を作成すると、次のことが可能になります。