Apache Airflow

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

In diesem Dokument wird gezeigt, wie Sie Ihr Google Kubernetes Engine-Deployment so konfigurieren, dass Sie mit Google Cloud Managed Service for Prometheus Messwerte vom Airflow-Exporter erfassen können. Dieses Dokument enthält Anleitungen für folgende Aufgaben:

  • Richten Sie den Airflow-Exporter ein, um Messwerte zu erfassen.
  • Eine PodMonitoring-Ressource für Managed Service for Prometheus konfigurieren, um die exportierten Messwerte zu erfassen.
  • Auf ein Dashboard in Cloud Monitoring zugreifen, um die Messwerte zu prüfen.
  • Benachrichtigungsregeln konfigurieren, um die Messwerte zu beobachten.

Diese Anleitung gilt nur, wenn Sie die verwaltete Sammlung mit Managed Service for Prometheus verwenden. Wenn Sie stattdessen eine selbst bereitgestellte Sammlung verwenden, finden Sie Informationen zur Installation in der Airflow-Dokumentation.

Informationen zu Airflow finden Sie unter Airflow.

Vorbereitung

Zum Erfassen von Messwerten vom Airflow-Exporter mit Managed Service for Prometheus und der verwalteten Sammlung muss Ihr Deployment die folgenden Anforderungen erfüllen:

  • Ihr Cluster muss Google Kubernetes Engine Version 1.21.4-gke.300 oder höher ausführen.
  • Sie müssen Managed Service for Prometheus mit aktivierter verwalteter Sammlung ausführen. Weitere Informationen finden Sie unter Erste Schritte mit verwalteter Sammlung.

Airflow stellt Messwerte im Prometheus-Format automatisch bereit. Sie müssen es nicht separat installieren. So prüfen Sie, ob der Airflow-Exporter Messwerte an den erwarteten Endpunkten ausgibt:

  1. Richten Sie mit dem folgenden Befehl die Portweiterleitung ein:
    kubectl -n NAMESPACE_NAME port-forward deploy/airflow-statsd 9102
    
  2. Greifen Sie über den Browser oder das Dienstprogramm curl in einer anderen Terminalsitzung auf den Endpunkt localhost:9102/metrics zu.

PodMonitoring-Ressource definieren

Für die Zielerkennung benötigt der Managed Service for Prometheus-Operator eine PodMonitoring-Ressource, die dem Airflow-Exporter im selben Namespace entspricht.

Sie können die folgende PodMonitoring-Konfiguration verwenden:

# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: airflow
  labels:
    app.kubernetes.io/name: airflow
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  endpoints:
  - port: 9102
    scheme: http
    interval: 30s
    path: /metrics
  selector:
    matchLabels:
      tier: airflow
      component: statsd
      release: airflow
Achten Sie darauf, dass die Werte der Felder port und matchLabels mit den Airflow-Pods übereinstimmen, die Sie beobachten möchten. Die hier angezeigten Labels und Werte werden standardmäßig festgelegt, wenn Airflow mit Helm bereitgestellt wird.

Führen Sie den folgenden Befehl aus, um Konfigurationsänderungen aus einer lokalen Datei anzuwenden:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Sie können Ihre Konfigurationen auch mit Terraform verwalten.

Regeln und Benachrichtigungen definieren

Sie können die folgende Rules-Konfiguration verwenden, um Benachrichtigungen für Airflow-Messwerte zu definieren:

# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: Rules
metadata:
  name: airflow-rules
  labels:
    app.kubernetes.io/component: rules
    app.kubernetes.io/name: airflow-rules
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  groups:
  - name: airflow
    interval: 30s
    rules:
    - alert: AirflowDAGImportErrors
      annotations:
        description: |-
          Airflow dag import errors
            VALUE = {{ $value }}
            LABELS: {{ $labels }}
        summary: Airflow dag import errors (instance {{ $labels.instance }})
      expr: airflow_dag_processing_import_errors > 0
      for: 5m
      labels:
        severity: critical

Führen Sie den folgenden Befehl aus, um Konfigurationsänderungen aus einer lokalen Datei anzuwenden:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Sie können Ihre Konfigurationen auch mit Terraform verwalten.

Weitere Informationen zum Anwenden von Regeln auf Ihren Cluster finden Sie unter Verwaltete Regelauswertung und Benachrichtigungen.

Sie können die Schwellenwerte für Benachrichtigungen an Ihre Anwendung anpassen.

Konfiguration prüfen

Mit dem Metrics Explorer können Sie prüfen, ob der Airflow-Exporter richtig konfiguriert ist. Es kann ein oder zwei Minuten dauern, bis Cloud Monitoring Ihre Messwerte aufgenommen hat.

So prüfen Sie, ob die Messwerte aufgenommen wurden:

  1. Wählen Sie in der Google Cloud Console Monitoring aus oder klicken Sie auf die folgende Schaltfläche:
    Zu Monitoring.
  2. Wählen Sie im Navigationsbereich Metrics Explorer aus.
  3. Wählen Sie den Tab PromQL aus und führen Sie die folgende Abfrage aus:
    up{job="airflow", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

Dashboards ansehen

Die Cloud Monitoring-Integration beinhaltet das Dashboard Airflow Prometheus – Übersicht. Dashboards werden automatisch mitkonfiguriert, wenn Sie die Integration konfigurieren. Sie können auch eine statische Vorschau von Dashboards aufrufen, ohne die Integration zu installieren.

So rufen Sie ein installiertes Dashboard auf:

  1. Wählen Sie in der Google Cloud Console Monitoring aus oder klicken Sie auf die folgende Schaltfläche:
    Zu Monitoring.
  2. Wählen Sie im Navigationsbereich die Option  Dashboards aus.
  3. Wählen Sie den Tab Dashboard-Liste aus.
  4. Wählen Sie die Kategorie Integrationen aus.
  5. Klicken Sie auf den Namen des Dashboards, z. B. Airflow Prometheus – Übersicht.

So rufen Sie eine statische Vorschau des Dashboards auf:

  1. Wählen Sie in der Google Cloud Console Monitoring aus oder klicken Sie auf die folgende Schaltfläche:
    Zu Monitoring.
  2. Wählen Sie im Navigationsbereich die Option  Integrationen aus.
  3. Klicken Sie auf den Filter für die Deployment-Plattform Kubernetes Engine.
  4. Suchen Sie die Apache Airflow-Integration und klicken Sie auf Details ansehen.
  5. Wählen Sie den Tab Dashboards aus.

Fehlerbehebung

Informationen zur Fehlerbehebung bei Problemen mit der Messwertaufnahme finden Sie unter Probleme mit der Erfassung über Exporter unter Fehlerbehebung bei Problemen mit der Aufnahme.