Vai al contenuto principale
BlogLogging e monitoraggio avanzato in Apache Airflow
Apache AirflowApache per i Big Data

Logging e monitoraggio avanzato in Apache Airflow

7 Nov 20245 min lettura
SC

Stanislao Corvino

Dottore Commercialista · Data Evangelist

In Apache Airflow, il logging e il monitoraggio sono essenziali per garantire il corretto funzionamento dei flussi di lavoro. Airflow offre un sistema di logging avanzato e un'interfaccia di monitoraggio per tracciare lo stato dei task e diagnosticare eventuali problemi.

Il sistema di logging di Airflow

Airflow utilizza il modulo logging di Python e genera log a diversi livelli:

  • Task logs: log specifici per ogni esecuzione di un task
  • Scheduler logs: log del processo scheduler
  • Web server logs: log dell'interfaccia web
  • Worker logs: log dei worker (Celery, Kubernetes)

Configurazione del logging

La configurazione del logging avviene nel file airflow.cfg:

[logging]
base_log_folder = /path/to/logs
remote_logging = True
remote_log_conn_id = my_s3_conn
remote_base_log_folder = s3://my-bucket/airflow-logs

Logging remoto

Per ambienti di produzione, è consigliato utilizzare il logging remoto su servizi cloud:

  • Amazon S3: archiviazione duratura e scalabile
  • Google Cloud Storage: integrazione nativa con GCP
  • Azure Blob Storage: per ambienti Azure
  • Elasticsearch: per ricerca e analisi dei log

Metriche e monitoraggio

Airflow espone metriche tramite StatsD, che possono essere raccolte da Prometheus o altri sistemi di monitoraggio:

  • dag_processing.total_parse_time: tempo di parsing dei DAG
  • dagrun.duration.success: durata delle esecuzioni con successo
  • ti.failures: numero di fallimenti dei task
  • scheduler.scheduler_heartbeat: heartbeat dello scheduler

Alerting

Airflow supporta diversi meccanismi di alerting:

  • Email: notifiche via email per task falliti o in ritardo
  • Slack: integrazione con Slack per notifiche in tempo reale
  • PagerDuty: per escalation automatiche
  • Callback functions: funzioni custom per gestire successi e fallimenti
default_args = {
    'email': ['team@example.com'],
    'email_on_failure': True,
    'email_on_retry': False,
    'on_failure_callback': notify_slack,
}

Best Practice per il monitoraggio

  • Configura sempre il logging remoto in produzione
  • Imposta SLA (Service Level Agreements) sui task critici
  • Monitora le metriche chiave con dashboard dedicate
  • Implementa rotazione e retention dei log
  • Usa livelli di log appropriati (INFO per operazioni normali, WARNING per anomalie)

Un sistema di logging e monitoraggio ben configurato è la base per operare Apache Airflow in modo affidabile in ambienti di produzione.

Tag:
Apache AirflowMonitoringLogging

Articoli correlati