このドキュメントでは、モニタリング システムとして Google Cloud Observability を使用している場合に、デリバリー パイプラインで分析を構成する方法について説明します。
別のモニタリング プロバイダを使用する場合は、カスタム分析を 定義する必要があります。これには、プロバイダから指標やその他の データを取り込んで評価するコンテナの作成が含まれます。
始める前に
-
ログイン Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init Compute Engine API と Cloud Deploy API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init Compute Engine API と Cloud Deploy API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
必要なロール
分析ジョブの作成と使用に必要な権限を取得するには、プロジェクトのアカウントに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Deploy ランナー (
roles/clouddeploy.jobRunner) - Monitoring アラート閲覧者 (
roles/monitoring.alertPolicyViewer) - Service Usage ユーザー (
roles/serviceusage.serviceUsageConsumer)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。
Cloud Deploy サービス アカウントに自動化の作成と使用に必要な 権限があることを確認するには、 プロジェクトの Cloud Deploy サービス アカウントに 次の IAM ロールを付与するよう管理者に依頼してください。
- IAM サービス アカウント ユーザー (
roles/iam.serviceAccountUser) - Cloud Deploy リリース担当者 (
roles/clouddeploy.releaser) - Cloud Deploy オペレータ (
roles/clouddeploy.operator)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限を Cloud Deploy サービス アカウントに付与することもできます。
Cloud Deploy で分析を設定する
デプロイ分析の構成は次の手順で行います。
パイプラインを実行して分析を実行します。
アラート ポリシーを定義する
アラート ポリシーを定義して、Google Cloud Observability から指標を受け取ります。Google Cloud Observability アラート ポリシーは、モニタリング データが指定された条件を満たした場合に、いつ、どのように通知を受け取るかを記述します。
Cloud Deploy 分析では、これらのアラートを使用して、アラートが示す状況に基づいてアクションを実行します。
たとえば、本番環境のアプリケーションにアラート ポリシーを設定して、HTTP レスポンスのレイテンシが高すぎる場合にアラートを送信できます。このアラートに基づいて、分析ジョブで
repairRolloutRule自動化
をトリガーしてリリースをロールバックできます。
別の例として、ステージング環境にデプロイされたアプリケーションに同様のアラート ポリシーを作成できます。分析ジョブの実行中にアラートが発生しない場合、そのジョブは
promoteReleaseRule自動化
をトリガーして、リリースを本番環境に昇格させることができます。
分析を作成する
アプリケーションのデリバリー パイプラインの分析ジョブを作成するには、パイプラインの構成内で分析を構成し、その構成ファイルを適用します。
分析ジョブを構成する
このセクションでは、Google Cloud Observability で使用する Cloud Deploy 分析ジョブを構成する方法について説明します。
分析ジョブは、デリバリー パイプライン定義の一部として、strategy スタンザ内で構成されます。これは、canary または standard の任意の戦略内に配置できます。フェーズごとに分析を構成する場合は、カスタム カナリア(strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)を使用します。
分析ジョブは、次の要素で構成されます。
期間
この期間は、分析ジョブの実行時間を指定します。期間が終了し、Google Cloud Observability からアラートが検出されない場合、分析は成功とみなされ、ロールアウトが続行されます。
モニタリング システムのアラート ポリシーに対応する 1 つ以上のチェック
各チェックには次のものが含まれます。
ID
1 つ以上のアラート ポリシー
つまり、1 つ以上の Google Cloud Observability アラート ポリシーへの参照です。
- 特定のアラート ポリシーを識別するために使用される 1 つ以上のラベル。 Google Cloud Observability アラート ポリシーは多くのアプリケーションをモニタリングできるため、これらのラベルを使用すると、チェックを 1 つ以上の特定のアプリケーションに制限できます。
ここでは、システム パラメータ をラベルのキーとして使用できます。
standard デプロイ戦略を使用する場合の分析ジョブの構成構文は次のとおりです。
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
ここで
DURATION分析ジョブを実行する時間(秒単位)です。期間が終了すると、ジョブは終了します。分析が失敗した場合(コンテナがゼロ以外の終了コードを返す場合)、期間が終了する前にジョブが終了します(
FAILED)。CHECK_ID分析内の個々のチェックの ID です。各 ID は、この分析ジョブ内で一意である必要があります。分析ジョブには 1 つ以上のチェックを設定できます。
ALERT_POLICY_IDチェックに使用している Google Cloud Observability アラート ポリシーのポリシー ID です。アラート ポリシー ID は、
gcloud monitoring policies listを実行して確認できます。次のような完全修飾 ID が必要です。projects/project-redacted/alertPolicies/01234567890123456789返される識別子には、ポリシー ID の後に
/conditions/13842666848149128276が含まれる場合があります。これはポリシー ID の一部として含めないでください。KEYとVALUE特定の警告のみを考慮するために使用されるラベルの Key-Value ペアです。 たとえば、チェックで特定のワークロードのアラートのみを考慮するようにラベルを使用できます。
ここでは、値にシステム パラメータを使用できます 。
システム パラメータを使用する例を次に示します。
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
この構成により、分析ジョブが作成されます。複数のチェックがありますが、 この構成ではジョブが 1 つだけ作成されます。
構成されたアラート ポリシーのいずれもアラートを送信しない場合、このジョブは成功し、ロールアウトが続行されます。ポリシーがアラートをトリガーすると、ジョブは
FAILED状態で停止し、ロールアウトは失敗します(ジョブの失敗を無視しない限り、FAILED状態になります)。
デリバリー パイプライン構成ファイルを適用する
分析ジョブを含むデリバリー パイプラインを作成するには、次のコマンドを使用して構成ファイルを適用します。
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
次のように置き換えます。
FILEデリバリー パイプライン構成ファイルの名前( など)に置き換えます。
clouddeploy.yamlREGIONデリバリー パイプラインを作成するリージョンに置き換えます。
PROJECT_IDこのデリバリー パイプラインを作成するプロジェクトの ID に置き換えます。
これで、プロジェクトにデリバリー パイプラインと分析ジョブが作成されました。分析ジョブは、リリースを作成するときにパイプラインの一部になります。
次のステップ
クイックスタート: 指標を使用してアプリケーションを分析するを試す。
Cloud Deploy 構成リファレンスの分析の構成スキーマを 確認する。
Google Cloud Observability アラート ポリシーの詳細を確認する。
デプロイの自動化の詳細を確認する。
デプロイ戦略の詳細を確認する。