Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)
Esta página se refere apenas a problemas relacionados ao processamento de arquivos DAG. Para problemas de agendamento de tarefas, consulte Como solucionar problemas do Airflow Scheduler.
Como resolver problemas do fluxo de trabalho
Inspecionar registros do processador DAG
Se você tiver DAGs complexos, os processadores DAG do Airflow talvez não analisem todos os seus DAGs. Isso pode levar a muitos problemas que têm os seguintes sintomas.
Sintomas :
Se um processador DAG encontrar problemas ao analisar seus DAGs, isso poderá levar a uma combinação dos problemas listados. Se os DAGs forem gerados dinamicamente, esses problemas poderão ser mais impactantes em comparação com os DAGs estáticos.
- Os DAGs não estão visíveis na interface do Airflow e na interface do DAG.
- Os DAGs não estão programados para execução.
- Há erros nos registros do processador DAG, por exemplo:
dag-processor-manager [2023-04-21 21:10:44,510] {manager.py:1144} ERROR - Processor for /home/airflow/gcs/dags/dag-example.py with PID 68311 started at 2023-04-21T21:09:53.772793+00:00 has timed out, killing it.ou
dag-processor-manager [2023-04-26 06:18:34,860] {manager.py:948} ERROR - Processor for /home/airflow/gcs/dags/dag-example.py exited with return code 1.As tarefas do Airflow programadas para execução são canceladas, e as execuções de DAGs que não foram analisados podem ser marcadas como
failed. Por exemplo:airflow-scheduler Failed to get task '<TaskInstance: dag-example.task1--1 manual__2023-04-17T10:02:03.137439+00:00 [removed]>' for dag 'dag-example'. Marking it as removed.
Solução :
Aumente os parâmetros relacionados à análise do DAG:
Aumente
[core]dagbag_import_timeoutpara pelo menos 120 segundos (ou mais, se necessário).Increase
[core]dag_file_processor_timeoutpara pelo menos 180 segundos (ou mais, se necessário). Esse valor precisa ser maior que[core]dagbag_import_timeout.
Corrija ou remova os DAGs que causam problemas nos processadores DAG.
Como inspecionar tempos de análise do DAG
Para verificar se o problema acontece no momento da análise do DAG, siga estas etapas.
Console
No Google Cloud console, você pode usar a página Monitoramento e a guia Registros para inspecionar os tempos de análise do DAG.
Inspecione os tempos de análise do DAG com a página de monitoramento do Serviço gerenciado para Apache Airflow:
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Monitoramento será aberta.
Na guia Monitoramento, selecione Estatísticas do DAG e consulte o gráfico Tempo total de análise de todos os arquivos DAG para identificar possíveis problemas. Recomendamos monitorar esse gráfico por algum tempo para identificar problemas de análise de DAG em vários ciclos de análise de DAG.
Inspecione os tempos de análise do DAG com a guia Registros do Serviço gerenciado para Apache Airflow:
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Monitoramento será aberta.
Acesse a guia Registros e, na árvore de navegação Todos os registros , selecione a seção Gerenciador do processador DAG.
Analise os registros
dag-processor-managere identifique possíveis problemas.
gcloud
Use o comando dags report para ver o tempo de análise de todos os seus DAGs.
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
dags report
Substitua:
ENVIRONMENT_NAMEpelo nome do ambienteLOCATIONpela região em que o ambiente está localizado
A saída do comando será semelhante a esta:
file | duration | dag_num | task_num | dags
======================+================+=========+==========+===================
/manydagsbig.py | 0:00:00.038334 | 2 | 10 | serial-0,serial-0
/airflow_monitoring.py| 0:00:00.001620 | 1 | 1 | airflow_monitoring
Procure o valor duration para cada um dos DAGs listados na tabela. Um valor grande pode indicar que um dos seus DAGs não está implementado da maneira ideal. Na tabela de respostas, é possível identificar quais DAGs têm um longo tempo de análise.
Solução de problemas no momento da análise do DAG
As seções a seguir descrevem sintomas e possíveis correções para alguns problemas comuns no tempo de análise do DAG.
Fazer o processador DAG ignorar arquivos desnecessários
Melhore o desempenho do processador DAG do Airflow ignorando arquivos desnecessários na pasta de DAGs. O processador DAG do Airflow ignora arquivos e pastas especificados no arquivo.airflowignore.
Para fazer com que o processador DAG do Airflow ignore arquivos desnecessários:
- Crie um arquivo
.airflowignore. - Nesse arquivo, liste as pastas e os arquivos que serão ignorados.
- Faça o upload desse arquivo para a pasta
/dagsno bucket do seu ambiente.
Para mais informações sobre o formato de arquivo .airflowignore, consulte
a documentação do Airflow.
O Airflow processa DAGs pausados
Você pode pausar os DAGs para interromper a execução deles. Isso economiza recursos dos workers do Airflow.
Os processadores DAG do Airflow continuam analisando DAGs pausados. Se você quiser
melhorar o desempenho dos processadores DAG, use
.airflowignore ou exclua
os DAGs pausados da pasta de DAGs.
Problemas comuns
As seções a seguir descrevem sintomas e possíveis correções para alguns problemas comuns de análise.
A importação da carga do DAG atingiu o tempo limite
Sintoma:
- Na interface da Web do Airflow, na parte de cima da página da lista de DAGs, uma caixa alerta vermelho mostra
Broken DAG: [/path/to/dagfile] Timeout. No Cloud Monitoring: os registros
airflow-schedulercontêm entradas semelhantes a:ERROR - Process timed outERROR - Failed to import: /path/to/dagfileAirflowTaskTimeout: Timeout
Corrigir:
Modifique a opção de configuração do Airflow dag_file_processor_timeout
e conceda mais tempo para a análise do DAG.
| Seção | Chave | Valor |
|---|---|---|
core |
dag_file_processor_timeout |
Novo valor de tempo limite |
Um DAG não está visível na interface do Airflow ou na interface do DAG, e o programador não o agenda
O processador DAG analisa cada DAG antes de agendar pelo programador e antes que um DAG fique visível em a interface do Airflow ou interface do DAG.
As seguintes opções de configuração do Airflow definem tempos limite para análise de DAGs:
[core]dagbag_import_timeoutdefine quanto tempo o processador DAG tem para analisar um único DAG.[core]dag_file_processor_timeoutdefine o tempo total que o processador DAG pode gastar na análise de todos os DAGs.
Se um DAG não estiver visível na interface do Airflow ou na interface do DAG:
Verifique os registros do processador DAG se ele consegue processar seu DAG corretamente. Em caso de problemas, você poderá ver as seguintes entradas de registro nos registros do processador DAG ou do programador:
[2020-12-03 03:06:45,672] {dag_processing.py:1334} ERROR - Processor for /usr/local/airflow/dags/example_dag.py with PID 21903 started at 2020-12-03T03:05:55.442709+00:00 has timed out, killing it.Verifique os registros do programador para saber se ele funciona corretamente. Em caso de problemas, você poderá ver as seguintes entradas de registro nos registros do programador:
DagFileProcessorManager (PID=732) last sent a heartbeat 240.09 seconds ago! Restarting it Process timed out, PID: 68496
Soluções:
Corrija todos os erros de análise do DAG. O processador DAG analisa vários DAGs e, em casos raros, os erros de análise de um DAG podem afetar negativamente a análise de outros DAGs.
Se a análise do DAG levar mais tempo do que a quantidade de segundos definida em
[core]dagbag_import_timeout, aumente esse tempo limite.Se a análise de todos os seus DAGs levar mais tempo do que a quantidade de segundos definida em
[core]dag_file_processor_timeout, aumente esse tempo limite.Se o DAG levar muito tempo para ser analisado, isso também poderá significar que ele não está implementado da maneira ideal. Por exemplo, se ele lê muitas variáveis de ambiente ou faz chamadas para serviços externos ou para o banco de dados do Airflow. Na medida do possível, evite realizar essas operações em seções globais de DAGs.
Aumente os recursos de CPU e memória para o processador DAG para que ele possa funcionar mais rapidamente.
A seguir
- Como solucionar problemas de sincronização de arquivos
- Como solucionar problemas do Airflow Scheduler
- Como resolver problemas de DAGs