Depuração e troubleshooting no Airflow

Introdução ao Apache Airflow em Python

Mike Metzger

Data Engineer

Problemas comuns

  • Dag não executa no agendamento
  • Dag não carrega
  • Erros de sintaxe

Ilustração representando problemas comuns de troubleshooting no Airflow

Introdução ao Apache Airflow em Python

Dag não executa no agendamento

  • Ainda não passou pelo menos um período de schedule
    • Ajusta os atributos conforme tua necessidade
  • Sem recursos suficientes pra rodar
    • Adiciona recursos de sistema
    • Adiciona mais máquinas
    • Altera o agendamento do Dag
Introdução ao Apache Airflow em Python

Dag não carrega

  • Dag não aparece na UI web
  • Dag não aparece em airflow dags list

Possíveis soluções

  • Confere se o arquivo do Dag está na pasta correta (arquivos fora da pasta Dags não são parseados)
  • Descobre a pasta Dags com airflow info

Saída do terminal de airflow info destacando o caminho de dags_folder

Introdução ao Apache Airflow em Python

Erros de sintaxe

  • Motivo mais comum de um arquivo de Dag não aparecer
  • Às vezes é difícil achar erros no Dag
  • Três jeitos rápidos:

    • Verifica o popup de erro na UI do Airflow

    • Roda airflow dags list-import-errors

    • Roda python3 <dagfile.py>

Introdução ao Apache Airflow em Python

Erros de importação na UI do Airflow

Página de boas-vindas do Airflow mostrando um alerta de erro de importação de Dag

Detalhe do erro de importação no Airflow mostrando a traceback do Dag

Introdução ao Apache Airflow em Python

airflow dags list-import-errors

Saída do terminal de airflow dags list-import-errors mostrando um erro

Introdução ao Apache Airflow em Python

airflow dags reserialize

  • Mudanças no Dag podem não aparecer na hora
  • Por padrão, o Airflow checa atualizações do Dag a cada 5 min
  • Dá pra forçar uma nova checagem com airflow dags reserialize

Terminal executando airflow dags reserialize para forçar um refresh do Dag

Introdução ao Apache Airflow em Python

Rodando o interpretador Python

python3 dagfile.py:

  • Com erros

Terminal mostrando um erro de sintaxe Python ao rodar um arquivo de Dag com python3

  • Sem erros

Terminal voltando ao prompt após rodar um arquivo de Dag com python3 sem erros

Introdução ao Apache Airflow em Python

Vamos praticar!

Introdução ao Apache Airflow em Python

Preparing Video For Download...