Analysejobs definieren, die Google Cloud Observability verwenden

In diesem Dokument wird beschrieben, wie Sie die Analyse für Ihre Bereitstellungspipeline konfigurieren, wenn Sie Google Cloud Observability als Überwachungssystem verwenden.

Wenn Sie einen anderen Monitoring-Anbieter verwenden, müssen Sie eine benutzerdefinierte Analyse definieren. Dazu gehört das Erstellen eines Containers zum Aufnehmen und Auswerten von Messwerten und anderen Daten von Ihrem Anbieter.

Hinweis

  1. Melden Sie sich in Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Installieren Sie die Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.

  6. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  7. Aktivieren Sie die Compute Engine API und die Cloud Deploy API:

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Weitere Informationen zum Zuweisen von Rollen

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. Installieren Sie die Google Cloud CLI.

  9. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  10. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  11. Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.

  12. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  13. Aktivieren Sie die Compute Engine API und die Cloud Deploy API:

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Weitere Informationen zum Zuweisen von Rollen

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Konto für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwenden von Analysejobs benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Bitten Sie Ihren Administrator, dem Cloud Deploy-Dienstkonto die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, damit das Cloud Deploy-Dienstkonto die erforderlichen Berechtigungen zum Erstellen und Verwenden von Automatisierungen hat:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Ihr Administrator kann dem Cloud Deploy-Dienstkonto möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.

Analyse in Cloud Deploy einrichten

Die Konfiguration der Bereitstellungsanalyse umfasst die folgenden Schritte:

  1. Eine oder mehrere Benachrichtigungsrichtlinien definieren

  2. Analysejob in der Bereitstellungspipeline konfigurieren

  3. Führen Sie Ihre Pipeline aus, um die Analyse durchzuführen.

Benachrichtigungsrichtlinien definieren

Sie definieren Benachrichtigungsrichtlinien, um Messwerte von Google Cloud Observability zu erhalten. In einer Google Cloud Observability-Benachrichtigungsrichtlinie wird beschrieben, wann und wie Sie benachrichtigt werden möchten, wenn Überwachungsdaten bestimmte Kriterien erfüllen.

Bei der Cloud Deploy-Analyse werden diese Benachrichtigungen verwendet, um auf die Umstände zu reagieren, die durch die Benachrichtigungen angegeben werden.

Sie können beispielsweise eine Benachrichtigungsrichtlinie für Ihre Anwendung in der Produktion einrichten, um eine Benachrichtigung zu senden, wenn die HTTP-Antwortlatenz zu hoch ist. Basierend auf dieser Benachrichtigung kann Ihr Analysejob eine repairRolloutRule-Automatisierung auslösen, um ein Rollback der Version durchzuführen.

Sie können beispielsweise eine ähnliche Benachrichtigungsrichtlinie für Ihre Anwendung erstellen, die in Ihrer Staging-Umgebung bereitgestellt wird. Wenn während der Ausführung des Analysejobs keine Benachrichtigung ausgelöst wird, kann dieser Job eine promoteReleaseRule-Automatisierung auslösen, um den Release in die Produktion zu übertragen.

Analyse erstellen

Wenn Sie einen Analysejob für die Bereitstellungspipeline Ihrer Anwendung erstellen möchten, konfigurieren Sie die Analyse in der Konfiguration für die Pipeline und wenden Sie dann die Konfigurationsdatei an.

Analysejob konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie einen Cloud Deploy-Analysejob für die Verwendung mit Google Cloud Observability konfigurieren.

Ihr Analysejob wird als Teil der Definition der Bereitstellungspipeline in einem strategy-Abschnitt konfiguriert. Das kann in jeder Strategie, canary oder standard, der Fall sein. Wenn Sie die Analyse pro Phase konfigurieren möchten, verwenden Sie ein benutzerdefiniertes Canary-Release (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).

Ein Analysejob besteht aus den folgenden Elementen:

  • Eine Dauer

    Diese Dauer gibt an, wie lange der Analysejob ausgeführt wird. Wenn der Zeitraum abläuft und keine Benachrichtigungen von Google Cloud Observability erkannt werden, gilt die Analyse als erfolgreich und der Roll-out wird fortgesetzt.

  • Eine oder mehrere Prüfungen, die den Benachrichtigungsrichtlinien in Ihrem Monitoring-System entsprechen

    Jede Prüfung umfasst Folgendes:

    • Eine ID

    • Eine oder mehrere Benachrichtigungsrichtlinien

    Das heißt, Verweise auf eine oder mehrere Google Cloud Observability-Benachrichtigungsrichtlinien.

    • Ein oder mehrere Labels, mit denen eine bestimmte Benachrichtigungsrichtlinie identifiziert wird. Da eine Google Cloud Observability-Benachrichtigungsrichtlinie viele Anwendungen überwachen kann, können wir mit diesen Labels die Prüfung auf eine oder mehrere bestimmte Anwendungen beschränken.

    Sie können Systemparameter als Schlüssel für Labels verwenden.

Im Folgenden finden Sie die Syntax zum Konfigurieren eines Analysejobs bei Verwendung einer standard-Bereitstellungsstrategie:


strategy:
  standard:
    analysis:
      duration: DURATION
      googleCloud:
        alertPolicyChecks:
        - id: CHECK_ID
          alertPolicies:
          - [ALERT_POLICY_ID]
          labels:
            [KEY: VALUE]

Wobei:

  • DURATION

    Gibt an, wie lange der Analysejob ausgeführt werden soll (in Sekunden). Nach Ablauf der Dauer ist der Job abgeschlossen. Wenn die Analyse fehlschlägt (der Container gibt einen Exit-Code ungleich null zurück), wird der Job vor Ablauf der Dauer beendet (FAILED).

  • CHECK_ID

    Die ID für einen einzelnen Check in Ihrer Analyse. Jede ID muss innerhalb dieses Analysejobs eindeutig sein. Ein Analysejob kann einen oder mehrere Checks enthalten.

  • ALERT_POLICY_ID

    Die Richtlinien-ID der Google Cloud Observability-Benachrichtigungsrichtlinie, die Sie für die Prüfung verwenden. Sie finden die ID der Benachrichtigungsrichtlinie, indem Sie gcloud monitoring policies list ausführen. Sie benötigen die vollständig qualifizierte ID, die so aussieht:

    projects/project-redacted/alertPolicies/01234567890123456789

    Möglicherweise enthält die zurückgegebene ID nach der Richtlinien-ID /conditions/13842666848149128276. Sie darf nicht Teil der Richtlinien-ID sein.

  • KEY und VALUE

    Ein Schlüssel/Wert-Paar für ein Label, mit dem nur bestimmte Benachrichtigungen berücksichtigt werden. Sie können beispielsweise ein Label verwenden, damit bei einer Prüfung nur Benachrichtigungen für eine bestimmte Arbeitslast berücksichtigt werden.

    Sie können hier Systemparameter für Werte verwenden.

    Hier ein Beispiel mit einem Systemparameter:

    labels:
     service_name: '${{render.metadata.cloud_run.service.name}}'
    

Mit dieser Konfiguration wird ein Analysejob erstellt. Obwohl es mehrere Prüfungen gibt, wird mit dieser Konfiguration nur ein Job erstellt.

Wenn keine der konfigurierten Benachrichtigungsrichtlinien Benachrichtigungen sendet, wird dieser Job erfolgreich abgeschlossen und die Einführung wird fortgesetzt. Wenn eine Richtlinie eine Benachrichtigung auslöst, wird der Job mit dem Status FAILED angehalten und das Roll-out schlägt fehl (mit dem Status FAILED, sofern Sie den Jobfehler nicht ignorieren).

Konfigurationsdatei für die Bereitstellungspipeline anwenden

Wenn Sie eine Bereitstellungspipeline mit Ihrem Analysejob erstellen möchten, wenden Sie die Konfigurationsdatei mit dem folgenden Befehl an:

gcloud deploy apply FILE \
       --region=REGION \
       --project=PROJECT_ID

Ersetzen Sie Folgendes:

  • FILE

    Mit dem Namen Ihrer Konfigurationsdatei für die Lieferpipeline, clouddeploy.yaml oder dem Namen, den Sie ihr gegeben haben.

  • REGION

    Mit der Region, in der Sie die Bereitstellungspipeline erstellen.

  • PROJECT_ID

    Mit der ID des Projekts, in dem Sie diese Lieferpipeline erstellen.

Sie haben jetzt eine Lieferpipeline in Ihrem Projekt und einen Analysejob, der Teil der Pipeline ist, wenn Sie ein Release erstellen.

Nächste Schritte