Files
ddadmin a310bc6c39 fix(monitoring): align airflow statsd mapping and reload flow
- Why:
  - Airflow task metrics were mapped to non-emitted StatsD keys
  - reload-monitoring did not restart statsd-exporter after mapping changes
- What:
  - update StatsD mapping for Airflow 2.10.5 metric names
  - remove problematic catch-all mapping that produced inconsistent series
  - restart statsd-exporter in reload-monitoring flow
  - sync operations runbook and airflow monitoring plan with actual metrics
- Check:
  - make reload-monitoring
  - Prometheus targets: airflow/clickhouse/kafka are UP
  - trigger ddl_init and verify airflow_task_duration_seconds_count
  - verify airflow_task_success_total and airflow_task_failures_total in Prometheus
2026-02-08 22:51:09 +03:00

70 lines
2.1 KiB
YAML

# Mapping StatsD → Prometheus для Airflow
# См. документацию: https://github.com/prometheus/statsd_exporter#metric-mapping-and-configuration
mappings:
# DAG processing metrics
- match: "airflow.dag_processing.total_parse_time"
name: "airflow_dag_processing_total_parse_time"
help: "Total time to parse all DAGs"
type: gauge
- match: "airflow.dagbag_size"
name: "airflow_dagbag_size"
help: "DAGs in the DagBag"
type: gauge
# Executor metrics
- match: "airflow.executor.open_slots"
name: "airflow_executor_open_slots"
help: "Open slots on executor"
type: gauge
- match: "airflow.executor.queued_tasks"
name: "airflow_executor_queued_tasks"
help: "Queued tasks on executor"
type: gauge
- match: "airflow.executor.running_tasks"
name: "airflow_executor_running_tasks"
help: "Running tasks on executor"
type: gauge
# Scheduler metrics (counter → _total суффикс по Prometheus convention)
- match: "airflow.scheduler_heartbeat"
name: "airflow_scheduler_heartbeat_total"
help: "Scheduler heartbeats"
type: counter
- match: "airflow.scheduler.critical_section_busy"
name: "airflow_scheduler_critical_section_busy"
help: "Scheduler critical section busy"
type: gauge
# Task duration (timer → _seconds суффикс)
# Проверено для Airflow 2.10.5: metric key = dag.<dag_id>.<task_id>.duration
- match: "airflow.dag.*.*.duration"
name: "airflow_task_duration_seconds"
help: "Task duration"
type: timer
labels:
dag_id: "$1"
task_id: "$2"
# Task failures/success (counter → _total суффикс)
# Проверено для Airflow 2.10.5: metric key = ti.finish.<dag_id>.<task_id>.<state>
- match: "airflow.ti.finish.*.*.failed"
name: "airflow_task_failures_total"
help: "Task failures by dag_id and task_id"
type: counter
labels:
dag_id: "$1"
task_id: "$2"
- match: "airflow.ti.finish.*.*.success"
name: "airflow_task_success_total"
help: "Task successes by dag_id and task_id"
type: counter
labels:
dag_id: "$1"
task_id: "$2"