Como integrar logs do Airflow com o Azure Monitor
Neste artigo, você aprenderá como começar a coletar Logs de Fluxo de Ar para suas instâncias do Microsoft Azure Data Manager for Energy no Azure Monitor. Esse recurso de integração ajuda a depurar falhas de execução do DAG (grafo direcionado acíclico) do Airflow.
Pré-requisitos
Um workspace do Log Analytics existente. Ele será usado para consultar os logs do Airflow por meio do editor de consultas KQL (Linguagem de Consulta Kusto) no workspace do Log Analytics. Recurso útil: Criar um workspace do Log Analytics no portal do Azure.
Uma conta de armazenamento existente: ela será usada para armazenar despejos JSON de logs do Airflow. A conta de armazenamento não precisa estar na mesma assinatura que o workspace do Log Analytics.
Habilitar as configurações de diagnóstico para coletar logs em uma conta de armazenamento
Cada instância do Azure Data Manager for Energy vem incorporada com uma instância do Azure Data Factory Workflow Orchestration Manager (com tecnologia Apache Airflow). Coletamos logs do Airflow para fins internos de solução de problemas e depuração. Os logs do Airflow podem ser integrados ao Azure Monitor das seguintes maneiras:
- Conta de armazenamento
- Espaço de Trabalho do Log Analytics
Para acessar logs por meio de uma das opções acima, você precisa criar uma configuração de diagnóstico. Cada configuração de diagnóstico tem três partes básicas:
Parte | Descrição |
---|---|
Nome | Esse é o nome do log de diagnóstico. Verifique se um nome exclusivo está definido para cada log. |
Categorias | Categoria de logs para enviar a cada um dos destinos. O conjunto de categorias vai variar para cada serviço do Azure. Acesse: Categorias de log de recursos com suporte |
Destinos | Um ou mais destinos para enviar os logs. Todos os serviços do Azure compartilham o mesmo conjunto de destinos possíveis. Cada configuração de diagnóstico pode definir um ou mais destinos, mas não mais de um destino de um tipo específico. Deve ser uma conta de armazenamento, um namespace dos Hubs de Eventos ou um hub de eventos. |
Execute as seguintes etapas para configurar as Configurações de Diagnóstico:
Página Visão geral do Gerenciador de Dados do Microsoft Azure para Energia
Selecione Configurações de diagnóstico no painel esquerdo
Selecione Adicionar configuração de diagnóstico
Selecione Logs de Tarefas do Airflow em Logs
Selecione Arquivar em uma conta de armazenamento
Verifique a assinatura e a conta de armazenamento em que você deseja arquivar os logs.
Navegar na conta de armazenamento para baixar os logs do Airflow
Depois que uma configuração de diagnóstico for criada para arquivar logs de tarefas do Airflow em uma conta de armazenamento, você poderá navegar até a página de visão geral da conta de armazenamento. Depois, poderá usar o "Navegador de Armazenamento" no painel esquerdo para encontrar à direita o arquivo JSON que deseja investigar. A navegação entre diretórios diferentes é intuitiva, pois você passa de um ano para um mês e depois para um dia.
Navegue nos contêineres, disponíveis no painel esquerdo.
Abra o painel de informações à direita. Ele contém um botão "baixar" para salvar o arquivo de log localmente.
Os logs baixados podem ser analisados em qualquer editor.
Habilitar as configurações de diagnóstico para integrar logs ao workspace do Log Analytics
Você pode integrar os logs do Airflow ao Log Analytics Workspace usando Configurações de diagnóstico no painel esquerdo da página de visão geral da instância do Microsoft Azure Data Manager for Energy.
Trabalhar com os logs do Airflow integrados ao workspace do Log Analytics
Use KQL (Linguagem de Consulta Kusto) para recuperar os dados desejados nos logs do Airflow coletados do workspace do Log Analytics. Você pode carregar as consultas de exemplo pré-criadas no seu Espaço de Trabalho do Log Analytics ou criar suas próprias consultas.
Carregando consultas pré-criadas: Selecione Logs no menu do recurso. O Log Analytics é aberto com a janela Consultas, que inclui consultas predefinidas para o tipo de recurso. Navegue pelas consultas disponíveis. Identifique a que será executada e clique em Executar. A consulta é adicionada à janela de consulta e os resultados são retornados.
Escrever consultas no Editor de consultas: Você pode copiar, colar e editar as consultas a seguir ou escrever suas próprias consultas no KQL no Editor de Consultas do seu Log Analytics Workspace.
Consultas de amostras
Essa consulta retorna todos os logs de fluxo de ar que são de nível ERROR. Você pode filtrar os resultados adicionando (sem comentar) onde a cláusula para o nome da instância do Azure Data Manager for Energy e a ID de correlação do seu DAG são executadas.
OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>" // to filter on resourceName replace <...> and uncomment line
// | where CorrelationId == "<DAG run's runId>" // to filter on correlationID replace <...> with correlationId (same as runId) - we have created a duplicate for to maintain consistency of column name across all services
| where LogLevel == "ERROR"
| project TimeGenerated, DagName, LogLevel, DagTaskName, CodePath, Content
Esta consulta lista todas as execuções do DAG e suas IDs de correlação correspondentes no recurso mencionado do Azure Data Manager for Energy.
OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>" // to filter on resourceName replace <...> and uncomment line
| distinct DagName, CorrelationId // correlationId is same as runId - we have created a duplicate for consistency in search across logs of all services
| sort by DagName asc
Adicionamos um documento para ajudar você a solucionar problemas seu processo de ingestão de manifesto usando os logs do Airflow coletados no seu Log Analytics Workspace.
Próximas etapas
Agora que você está coletando logs de recursos, crie um alerta de consulta de log para ser notificado proativamente quando dados interessantes forem identificados nos dados de log.