SLAs e relatórios no Airflow

Introdução ao Apache Airflow em Python

Mike Metzger

Data Engineer

SLAs

O que é um SLA?

  • SLA significa Service Level Agreement
  • No Airflow, é o tempo que uma task ou DAG deve levar pra rodar
  • Um SLA Miss é quando a task/DAG não cumpre o tempo esperado
  • Se um SLA for perdido, um e-mail é enviado e um log é salvo
  • Dá pra ver os SLA misses na web UI
Introdução ao Apache Airflow em Python

SLA Misses

  • Fica em Browse: SLA Misses

Visão de SLA Misses

Introdução ao Apache Airflow em Python

Definindo SLAs

  • Usando o argumento 'sla' na task

    task1 = BashOperator(task_id='sla_task', 
                       bash_command='runcode.sh',
                       sla=timedelta(seconds=30),
                       dag=dag)
    
  • No dicionário default_args

    default_args={
     'sla': timedelta(minutes=20),
     'start_date': datetime(2023,2,20)
    }
    dag = DAG('sla_dag', default_args=default_args)
    
Introdução ao Apache Airflow em Python

Objeto timedelta

  • Na biblioteca datetime
  • Importa com from datetime import timedelta
  • Aceita dias, segundos, minutos, horas e semanas
    timedelta(seconds=30)
    timedelta(weeks=2)
    timedelta(days=4, hours=10, minutes=20, seconds=30)
    
Introdução ao Apache Airflow em Python

Relatórios gerais

  • Opções para sucesso/falha/erro
  • Chaves no dicionário default_args
default_args={
  'email': ['[email protected]'],
  'email_on_failure': True,
  'email_on_retry': False,
  'email_on_success': True,
  ...
}
  • Em DAGs via EmailOperator
Introdução ao Apache Airflow em Python

Vamos praticar!

Introdução ao Apache Airflow em Python

Preparing Video For Download...