Ausführungen überwachen

Dieses Dokument enthält Anleitungen für folgende Aufgaben:

Hinweis

So überwachen Sie Ausführungslogs:

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zu Dataform

  2. Wählen Sie ein Repository aus oder erstellen Sie eines.

  3. Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.

  4. Lösen Sie mindestens einmal eine Ausführung aus.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen von Ausführungslogs benötigen:

  • Dataform-Bearbeiter (roles/dataform.editor) für das Dataform-Repository, in dem Workflow-Ausführungen verfolgt werden
  • Einrichtung einer Ausführung prüfen: Dienstkontonutzer (roles/iam.serviceAccountUser) für das benutzerdefinierte Dienstkonto

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.

Die Loganzeige (roles/logging.viewer) IAM-Rolle bietet Ihnen Lesezugriff auf alle Features von Cloud Logging. Weitere Informationen zu den Berechtigungen und Rollen von Identity and Access Management, die für Logging-Daten gelten, finden Sie unter Zugriffssteuerung mit IAM.

Wenn Sie logbasierte Benachrichtigungen erstellen und verwalten möchten, muss Ihre IAM-Rolle die Berechtigungen enthalten, die unter Rollen, die zum Erstellen und Verwenden von logbasierten Benachrichtigungsrichtlinien erforderlich sind beschrieben sind.

Ausführungsprotokolle überwachen

In diesem Abschnitt erfahren Sie, wie Sie Ausführungslogs in Dataform aufrufen.

Sie können die Logs aller Ausführungen, die in einem Repository ausgelöst werden, und die Logs von Ausführungen, die in den letzten 24 Stunden in einem Arbeitsbereich ausgelöst wurden, aufrufen.

Repository-Ausführungslogs prüfen

So rufen Sie die Logs aller in einem Repository ausgelösten Ausführungen auf:

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zu Dataform

  2. Rufen Sie Ihr Repository auf.

  3. Klicken Sie auf Workflow-Ausführungslogs.

  4. Klicken Sie auf eine Ausführung, um deren Details aufzurufen.

  5. Wenn Sie die Details einer Aktion innerhalb der Ausführung aufrufen möchten, klicken Sie auf Details ansehen.

Ausführungsprotokolle des Arbeitsbereichs prüfen

So rufen Sie die Logs der 1.000 letzten Ausführungen auf, die in den letzten 24 Stunden in einem Arbeitsbereich ausgelöst wurden:

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zu Dataform

  2. Rufen Sie Ihr Repository auf und wählen Sie Ihren Arbeitsbereich aus.

  3. Klicken Sie in Ihrem Arbeitsbereich auf Ausführungen.

  4. Klicken Sie auf eine Ausführung, um deren Details aufzurufen.

  5. Wenn Sie Details zu einer Aktion innerhalb der Ausführung aufrufen möchten, klicken Sie auf Details ansehen.

Logging-Logs für Dataform ansehen

In diesem Abschnitt erfahren Sie, wie Sie Cloud Logging-Logs für Dataform-Workflowaufrufe aufrufen.

Jeder Dataform-Workflowaufruf wird mit Logging protokolliert. Das Logging wird automatisch für Dataform-Workflowaufrufe aktiviert. Dies kann zu Abrechnungskosten für Logging führen. Weitere Informationen finden Sie unter Dataform-Preise.

Logs ansehen

Informationen zum Filtern von Logging-Logs im Log-Explorer finden Sie unter Logs mit dem Log-Explorer ansehen.

Dataform-Logs werden nach Dataform-Repository indexiert.

Logformat

Dataform sendet Logeinträge für Workflowaufrufe im folgenden Format:

{
  "insertId": "14ip1tza5",
  "jsonPayload": {
    "terminalState": "SUCCEEDED",
    "workflowInvocationId": "1678383230-ac4ed48c-eb70-4555-b2b0-cda54d13edfa",
    "@type": "type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry"
  },
  "resource": {
    "type": "dataform.googleapis.com/Repository",
    "labels": {
      "repository_id": "repository-name-example",
      "resource_container": "PROJECT_ID",
      "location": "us-central1"
    }
  },
  "timestamp": "2023-03-09T17:34:06.965981805Z",
  "severity": "INFO",
  "logName": "projects/project-name-example/logs/dataform.googleapis.com%2Fworkflow_invocation_completion",
  "receiveTimestamp": "2023-03-09T17:34:07.362371980Z"
}

Was wird protokolliert?

Dataform-Logeinträge enthalten Informationen, die für das Monitoring und die Fehlerbehebung bei Workflowaufrufen nützlich sind.

Logeinträge enthalten die folgenden Arten von Informationen:

  • receiveTimestamp
  • release_config_id
  • repository_id
  • resource_container
  • workflow_invocation_id
  • workflow_config_id
  • severity: kann INFO, WARNING oder ERROR sein.
  • terminalState: kann SUCCEEDED, CANCELED oder FAILED sein.
  • timestamp
  • @type

Dataform-Dienstprotokolle enthalten allgemeine Aufrufereignisse, z. B. Protokolle zum Abschluss von Workflowaufrufen. Diese Dienstprotokolle enthalten jedoch keine einzelnen BigQuery-Job-IDs oder detaillierten Aktionsausführungen auf Tabellenebene. Informationen zum Abrufen detaillierter Ausführungsdetails auf Aktionsebene und der entsprechenden BigQuery-Job-IDs für einen Workflowaufruf finden Sie unter BigQuery-Jobs mit Workflowaufrufen korrelieren.

Messwerte und Benachrichtigungen mit Cloud Monitoring konfigurieren

Mit Monitoring können Sie Trends in Ihren Logs beobachten und sich benachrichtigen lassen, wenn von Ihnen beschriebene Bedingungen auftreten.

Logging bietet Ihnen Folgendes, um Monitoring mit Daten aus Ihren Logs zu versorgen:

  • Logbasierte Messwerte, die für folgende Zwecke verwendet werden können:
    • Zum Erstellen von Benachrichtigungsrichtlinien, die Sie über Änderungen im Laufe der Zeit benachrichtigen.
    • Zum Erstellen von Diagrammen, die Änderungen im Zeitverlauf darstellen.
  • Logbasierte Benachrichtigungen, die Sie informieren, sobald ein bestimmtes Ereignis in einem Log auftaucht.

Weitere Informationen zu logbasierten Messwerten und logbasierten Benachrichtigungen finden Sie unter Logs überwachen.

Informationen zum Konfigurieren von logbasierten Benachrichtigungen für Dataform-Workflowaufrufe finden Sie unter Benachrichtigungen für fehlgeschlagene Workflowaufrufe konfigurieren.

BigQuery-Jobs mit Workflowaufrufen korrelieren

Dataform-Dienstprotokolle unter dem Ressourcentyp dataform.googleapis.com/Repository enthalten allgemeine Ereignisse für Workflowaufrufe, z. B. Protokolle zum Abschluss von Workflowaufrufen. Diese Dienstprotokolle enthalten jedoch keine detaillierten Aktionsausführungen auf Tabellenebene oder spezifische BigQuery-Job-IDs.

Wenn Dataform Aktionen wie das Erstellen oder Aktualisieren von Tabellen, Ansichten oder Assertions ausführt, werden Jobs in BigQuery gesendet und jedem Job automatisch Labels angehängt. Sie können die BigQuery-Job-ID für jede Aktion auch direkt aus der Dataform API abrufen, indem Sie die Methode workflowInvocations.query aufrufen und das Feld bigqueryAction.jobId prüfen.

In der folgenden Tabelle sind die wichtigsten Labels aufgeführt, die Dataform an BigQuery-Jobs anhängt:

Labelschlüssel Beschreibung
dataform_workflow_execution_id Die bereinigte ID des Dataform-Workflowaufrufs.
dataform_repository_id Die bereinigte ID des Dataform-Repositorys.
dataform_workflow_execution_action_id_database Das Zielprojekt (die Datenbank) der Aktion.
dataform_workflow_execution_action_id_schema Das Ziel-Dataset (Schema) der Aktion.
dataform_workflow_execution_action_id_name Der Name der Zieltabelle, der Ansicht oder der Assertion der Aktion.

So korrelieren Sie BigQuery-Jobs und Ausführungsdetails auf Aktionsebene mit einem Workflowaufruf:

  1. Rufen Sie die Workflowaufruf-ID für Ihre Ausführung ab. Wenn Sie die ID im Log-Explorer suchen möchten, fragen Sie einen der folgenden Dataform-Logtypen ab:

    • workflow_invocation_completion-Logs (standardmäßig aktiviert): Kopieren Sie den Wert des Felds jsonPayload.workflowInvocationId aus dem Logeintrag:

      resource.type="dataform.googleapis.com/Repository"
      resource.labels.repository_id="REPOSITORY_ID"
      log_id("dataform.googleapis.com/workflow_invocation_completion")
      
    • CreateWorkflowInvocation-Audit-Logs zum Datenzugriff (wenn Audit-Logs zum Datenzugriff für DATA_WRITE-Vorgänge aktiviert sind): Kopieren Sie das Segment WORKFLOW_INVOCATION_ID am Ende des Felds protoPayload.resourceName:

      resource.type="dataform.googleapis.com/Repository"
      resource.labels.repository_id="REPOSITORY_ID"
      log_id("cloudaudit.googleapis.com/data_access")
      protoPayload.methodName:"Dataform.CreateWorkflowInvocation"
      

    Ersetzen Sie REPOSITORY_ID durch die ID Ihres Dataform-Repositorys.

  2. Wählen Sie eine der folgenden Optionen aus, um die korrelierten BigQuery-Jobs zu finden, indem Sie entweder BigQuery-Audit-Logs im Log-Explorer oder die Ansicht INFORMATION_SCHEMA.JOBS in BigQuery abfragen:

    Log-Explorer

    1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

      Zum Log-Explorer

    2. Geben Sie im Bereich Abfrage die folgende Abfrage ein:

      resource.type="bigquery_project"
      protoPayload.metadata.jobChange.job.jobConfig.labels.dataform_workflow_execution_id="WORKFLOW_INVOCATION_ID"
      

      Ersetzen Sie WORKFLOW_INVOCATION_ID durch die ID Ihres Workflowaufrufs.

    3. Klicken Sie auf Abfrage ausführen.

      Die Abfrage gibt BigQuery-Joblogeinträge für diesen Workflowaufruf zurück. In jedem Logeintrag enthält das Feld protoPayload.metadata.jobChange.job.jobName den Namen der BigQuery-Jobressource. Die Felder jobStats und jobStatus enthalten Ausführungsstatistiken und Statusdetails.

    BigQuery Studio

    1. Öffnen Sie in der Google Cloud Console die Seite BigQuery Studio.

      Zu BigQuery Studio

    2. Führen Sie im Abfrageeditor folgende Abfrage aus:

      SELECT
        job_id,
        creation_time,
        state,
        error_result,
        total_bytes_billed,
        (SELECT value FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_action_id_schema') AS target_schema,
        (SELECT value FROM UNNEST(labels) WHERE key = 'dataform_workflow_execution_action_id_name') AS target_name,
        query
      FROM
        `region-LOCATION`.INFORMATION_SCHEMA.JOBS
      WHERE
        DATE(creation_time) = CURRENT_DATE()
        AND EXISTS (
          SELECT 1
          FROM UNNEST(labels)
          WHERE
            key = 'dataform_workflow_execution_id'
            AND value = 'WORKFLOW_INVOCATION_ID'
        );
      

      Ersetzen Sie Folgendes:

      • LOCATION: der BigQuery-Standort, an dem die Jobs ausgeführt wurden, z. B. us oder eu.
      • WORKFLOW_INVOCATION_ID: die ID des Workflowaufrufs.

Benachrichtigungen für fehlgeschlagene Workflowaufrufe konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie mit dem Log-Explorer logbasierte Benachrichtigungen für fehlgeschlagene Dataform-Workflowaufrufe konfigurieren.

Mit Monitoring können Sie Trends in Logging-Logs für Dataform-Workflowaufrufe beobachten und sich benachrichtigen lassen, wenn von Ihnen beschriebene Bedingungen auftreten.

Jeder Dataform-Workflowaufruf wird mit Logging protokolliert. Das Logging wird automatisch für Dataform-Workflowaufrufe aktiviert. Dies kann zu Abrechnungskosten für Logging führen. Weitere Informationen finden Sie unter Dataform-Preise.

Wenn Sie Benachrichtigungen erhalten möchten, wenn ein Dataform-Workflowaufruf fehlschlägt, können Sie logbasierte Benachrichtigungen erstellen.

Sie können logbasierte Benachrichtigungen auf der Seite Log-Explorer in der Google Cloud Console oder mithilfe der Monitoring API erstellen. In diesem Abschnitt wird beschrieben, wie Sie mit dem Log-Explorer logbasierte Benachrichtigungen für Fehler beim Aufruf von Dataform-Workflows erstellen.

So konfigurieren Sie logbasierte Benachrichtigungen für fehlgeschlagene Dataform-Workflowaufrufe:

  1. Wählen Sie in der Google Cloud Console Logging und anschließend Log-Explorer aus.

    Zum Log-Explorer

  2. Wählen Sie im Bereich Abfrage die Option Abfrage anzeigen aus und geben Sie die folgende Abfrage ein:

        resource.type="dataform.googleapis.com/Repository"
        jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry"
        jsonPayload.terminalState="FAILED"
     

    Diese Abfrage benachrichtigt Sie über alle fehlgeschlagenen Dataform-Workflowaufrufe.

    1. Optional: Wenn Sie fehlgeschlagene Workflowaufrufe nach einer Releasekonfiguration filtern möchten, hängen Sie Folgendes an die Abfrage an:

          jsonPayload.releaseConfigId="RELEASE_CONFIGURATION_ID"
      

      Ersetzen Sie RELEASE_CONFIGURATION_ID durch die ID der Release-Konfiguration.

    2. Optional: Wenn Sie fehlgeschlagene Workflowaufrufe nach einer Workflowkonfiguration filtern möchten, hängen Sie Folgendes an die Abfrage an:

          jsonPayload.workflowConfigId="WORKFLOW_CONFIGURATION_ID"
      

      Ersetzen Sie WORKFLOW_CONFIGURATION_ID durch die ID der Workflowkonfiguration.

    Die folgende Abfrage benachrichtigt Sie, wenn ein Dataform-Workflowaufruf fehlschlägt, der sowohl mit der Releasekonfiguration daily als auch mit der Workflowkonfiguration production verknüpft ist:

     resource.type="dataform.googleapis.com/Repository"
     jsonPayload.@type="type.googleapis.com/google.cloud.dataform.logging.v1.WorkflowInvocationCompletionLogEntry"
     jsonPayload.terminalState="FAILED"
     jsonPayload.releaseConfigId="daily"
     jsonPayload.workflowConfigId="production"
    
  3. Optional: Wenn Sie die Abfrage validieren möchten, verwenden Sie im Bereich Abfrageergebnisse die Option Abfrage ausführen.

  4. Klicken Sie in der Kopfzeile des Bereichs Abfrageergebnisse auf Benachrichtigung erstellen. Wenn das Fenster schmal ist, wird die Option Benachrichtigung erstellen möglicherweise im Menü Aktionen angezeigt.

  5. Geben Sie im Bereich Benachrichtigungsdetails einen Namen und eine Beschreibung für die Benachrichtigung ein:

    1. Geben Sie im Feld Benachrichtigungsname einen Namen für die Benachrichtigung ein. Beispiel: Dataform: workflow failure.

    2. Geben Sie eine Beschreibung dieser Benachrichtigung ein. Sie können auch Informationen angeben, die dem Empfänger einer Benachrichtigung helfen können, das Problem zu diagnostizieren. Der folgende String fasst den Grund für die Benachrichtigung zusammen:

      Log-based alert in project ${project} detected a failed Dataform workflow.
      

      Informationen zum Formatieren und Anpassen des Inhalts dieses Felds finden Sie unter Benachrichtigungen mit benutzerdefinierter Dokumentation versehen.

  6. Um mit dem nächsten Schritt fortzufahren, klicken Sie auf Weiter.

  7. Prüfen Sie im Bereich Logs auswählen, die in die Benachrichtigung aufgenommen werden sollen die Abfrage und die Ergebnisse. Klicken Sie dazu auf Logvorschau ansehen.

    Wir empfehlen, die Abfrage im Bereich Abfrage des Log-Explorers zu erstellen. Die Abfrage, die Sie im Bereich Abfrage erstellt haben, wird in diesem Bereich ebenfalls angezeigt.

    Bei Bedarf können Sie die Abfrage in diesem Bereich bearbeiten. Wenn Sie die Abfrage bearbeiten, prüfen Sie die Ergebnisse. Klicken Sie dazu auf Logvorschau ansehen.

  8. Klicken Sie auf Weiter.

  9. Wählen Sie die Mindestdauer zwischen Benachrichtigungen aus. Mit diesem Wert können Sie die Anzahl der Benachrichtigungen dieser Art steuern, wenn sie mehrmals ausgelöst wird. Wählen Sie für dieses Beispiel 5 Min. aus den Optionen aus.

  10. Optional: Wählen Sie die Dauer bis zur automatischen Schließung von Vorfällen aus. Standardmäßig ist die Dauer für das automatische Schließen von Vorfällen auf 7 Tage festgelegt.

  11. Klicken Sie auf Weiter.

  12. Wählen Sie einen oder mehrere Benachrichtigungskanäle für Ihre Benachrichtigung aus. Wählen Sie für dieses Beispiel einen E-Mail-Benachrichtigungskanal aus.

    Wenn Sie bereits einen E-Mail-Benachrichtigungskanal konfiguriert haben, können Sie ihn aus der Liste auswählen. Wenn nicht, klicken Sie auf Benachrichtigungskanäle verwalten und fügen Sie einen E-Mail-Kanal hinzu. Informationen zum Erstellen von Benachrichtigungskanälen finden Sie unter Benachrichtigungskanäle erstellen und verwalten.

  13. Klicken Sie auf Speichern.

Ihre logbasierte Benachrichtigung kann jetzt getestet werden. Eine Anleitung zum Testen der Benachrichtigung finden Sie unter Beispiel für eine logbasierte Benachrichtigungsrichtlinie testen.

Nächste Schritte