integrations/airflow/documentation.yaml (71 lines of code) (raw):
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.