SLA y reporting en Airflow

Introducción a Apache Airflow en Python

Mike Metzger

Data Engineer

SLA

¿Qué es un SLA?

  • SLA significa Service Level Agreement
  • En Airflow, es el tiempo que debería tardar una tarea o DAG en ejecutarse
  • Un SLA Miss es cuando la tarea/DAG no cumple el tiempo esperado
  • Si se incumple, se envía un email y se guarda un log
  • Puedes ver los incumplimientos en la web UI
Introducción a Apache Airflow en Python

Incumplimientos de SLA

  • En Browse: SLA Misses

Vista de SLA Misses

Introducción a Apache Airflow en Python

Definir SLA

  • Usando el argumento 'sla' en la tarea

    task1 = BashOperator(task_id='sla_task', 
                       bash_command='runcode.sh',
                       sla=timedelta(seconds=30),
                       dag=dag)
    
  • En el diccionario default_args

    default_args={
     'sla': timedelta(minutes=20),
     'start_date': datetime(2023,2,20)
    }
    dag = DAG('sla_dag', default_args=default_args)
    
Introducción a Apache Airflow en Python

Objeto timedelta

  • En la librería datetime
  • Se importa con from datetime import timedelta
  • Acepta días, segundos, minutos, horas y semanas
    timedelta(seconds=30)
    timedelta(weeks=2)
    timedelta(days=4, hours=10, minutes=20, seconds=30)
    
Introducción a Apache Airflow en Python

Reporting general

  • Opciones para éxito / fallo / error
  • Claves en el diccionario default_args
default_args={
  'email': ['[email protected]'],
  'email_on_failure': True,
  'email_on_retry': False,
  'email_on_success': True,
  ...
}
  • En los DAGs con EmailOperator
Introducción a Apache Airflow en Python

¡Vamos a practicar!

Introducción a Apache Airflow en Python

Preparing Video For Download...