Skip to content

Andriow/airflow-monitor

Repository files navigation

airflow-monitor

Projeto para monitoramento de execuções de DAGs com falhas no airflow

Configuração do docker para uso em ambiente próprio

Para execução em ambiente próprio, ou em alguma ferramenta gerenciada que permita login por usuário e senha, será necessário alterar as seguintes informações antes de compilar o container:

AIRFLOW_URL="http://YOUR_AIRFLOW_URL" -> URL da tela inicial do Airflow

AIRFLOW_USERNAME="YOUR AIRFLOW USER" -> Usuário que é utilizado para fazer login no Airflow

AIRFLOW_PASSWORD="YOUR AIRFLOW PASSWORD" -> Senha do usuário que é utilizada para fazer login no Airflow

Compilação do container

Para dar o build no container deverá executar o comando:

docker build -t airflow-monitor:latest --build-arg AIRFLOW_URL=YOUR-AIRFLOW-URL --build-arg AIRFLOW_USERNAME=YOUR-AIRFLOW-USERNAME --build-arg AIRFLOW_PASSWORD=YOUR-AIRFLOW-PASSWORD . --no-cache

Configuração do docker para uso no ambiente AWS utilizando o MWAA

Para execução no MWAA da AWS será necessário alterar as seguintes informações antes de compilar o container:

AWS_REGION="YOUR-REGION" -> Região em que está hospedado o MWAA

AWS_ACCESS_KEY_ID="YOUR-KEY-ID" -> Access Key ID do usuário programático que tem permissões de acesso ao airflow

AWS_SECRET_ACCESS_KEY="YOUR-SECRET-ACCESS-KEY" -> Secret Access Key do usuário programático que tem permissões de acesso ao airflow

AWS_AIRFLOW_NAME="YOUR AIRFLOW NAME ON MWAA" -> Nome do ambiente do Airflow configurado no MWAA

Compilação do container

Para dar o build no container deverá executar o comando:

docker build -t airflow-monitor:latest --build-arg AWS_REGION=YOUR-REGION --build-arg AWS_ACCESS_KEY_ID=YOUR-KEY-ID --build-arg AWS_SECRET_ACCESS_KEY=YOUR-SECRET-KEY --build-arg AWS_AIRFLOW_NAME=YOUR-AIRFLOW-NAME --build-arg . --no-cache

Como executar

Para a execução existem dois arquivos distintos:

airflow.py

airflowMWAA.py

Os dois scripts possuem exatamente a mesma forma de ser executado, alterando apenas a forma de realizar a autenticação, então pode-se executar os dois scripts da mesma forma.

O primeiro passo será de entrar no Container compilado:

docker run --rm -it --name=airflow_monitor --entrypoint bash airflow-monitor:latest 

Uma vez no container poderá ser executado o script com seus parâmetros:

python3 airflow.py --help
usage: airflow.py [-h] [-d DATAFIM] [-q QTDDIAS] [-p PREFIX] [-s SUFFIX] [-v]

Monitoramento de dags com erros no airflow.

options:
  -h, --help            show this help message and exit
  -d DATAFIM, --dataFim DATAFIM
                        Data da última execução a ser verificada. Formato: YYYY-MM-DDD. Default = hoje.
  -q QTDDIAS, --qtdDias QTDDIAS
                        Quantidade de dias antes da data de fim a ser considerado para a análise. Default = 90
  -p PREFIX, --prefix PREFIX
                        Prefixo que a DAG deverá ter no nome para entrar na análise.
  -s SUFFIX, --suffix SUFFIX
                        Sufixo que a DAG deverá ter no nome para entrar na análise.
  -v, --verbose         O nível de verbose por padrão é logging.INFO, quando passado este argumento altera para logging.DEBUG

Para uma execução de teste, que irá retornar o log de execução dos últimos 10 dias, rodar da seguinte forma:

python3 airflow.py -q 10

Para testar

Dentro do container executar os seguintes comandos:

# executar os testes
python3 -m unittest testAirflow.py

# adicionar a validação de cobertura de testes
coverage erase

coverage run testAirflow.py

coverage report -m

About

Projeto para monitoramento do airflow

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published