exporter_type: included
app_name_short: Airflow
app_name: Apache {{app_name_short}}
app_site_name: Airflow
app_site_url: https://airflow.apache.org/
exporter_name: StatsD
exporter_pkg_name: statsd
exporter_repo_url: https://airflow.apache.org/docs/apache-airflow/stable/logging-monitoring/metrics.html
additional_prereq_info: |
  The official {{app_name_short}} [Helm chart](https://airflow.apache.org/docs/helm-chart/){:class=external}
  includes a {{exporter_name}} deployment that exposes Prometheus-format metrics automatically.

  To verify that {{exporter_name}} is emitting metrics on the expected endpoints, do the following:

  0. Set up port forwarding by using the following command:
  <pre class="devsite-click-to-copy">
  kubectl -n {{namespace_name}} port-forward deploy/<var>AIRFLOW_RELEASE_NAME</var>-statsd 9102
  </pre>

  0. Access the endpoint `localhost:9102/metrics` by using the browser
  or the `curl` utility in another terminal session.
dashboard_available: true
multiple_dashboards: false
dashboard_display_name: {{app_name_short}} Prometheus Overview
podmonitoring_config: |
  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
additional_podmonitoring_info: |
  Ensure that the values of the `port` and `matchLabels` fields match those of the {{exporter_name}} pods you want to monitor.
  The labels and values shown here are set by default when {{app_name_short}} is
  deployed with [Helm](https://airflow.apache.org/docs/helm-chart/){:class=external}.
sample_promql_query: up{job="airflow", cluster="{{cluster_name}}", namespace="{{namespace_name}}"}
alerts_config: |
  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
additional_alert_info: You can adjust the alert thresholds to suit your application.
