Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
É possível usar o Cloud Monitoring e o Cloud Logging com o Cloud Composer.
O Cloud Monitoring mostra o desempenho, o tempo de atividade e a integridade geral de aplicativos com tecnologia de nuvem. O Cloud Monitoring coleta e ingere métricas, eventos e metadados do Cloud Composer para gerar insights em painéis e gráficos. O Cloud Monitoring pode ser usado para entender o desempenho e integridade dos ambientes do Cloud Composer e métricas do Airflow.
O Logging captura registros produzidos pelo programador e pelo worker no cluster do ambiente. Esses registros contêm informações sobre a dependência do Airflow e o nível do sistema para ajudar depuração. Para informações sobre a visualização de registros, consulte Veja os registros do Airflow.
Antes de começar
As seguintes permissões são necessárias para acessar registros e métricas para seu ambiente do Cloud Composer:
- Acesso somente leitura a registros e métricas:
logging.viewer
emonitoring.viewer
- Acesso somente leitura a registros, incluindo registros particulares:
logging.privateLogViewer
- Acesso de leitura/gravação a métricas:
monitoring.editor
Para mais informações sobre outras permissões e funções do Cloud Composer, consulte Controle de acesso.
- Acesso somente leitura a registros e métricas:
Para evitar a geração de registros duplicada, o Cloud Logging para o Google Kubernetes Engine está desativado.
O Cloud Logging gera uma entrada para cada status e evento que ocorre no projeto do Google Cloud. Use filtros de exclusão para reduzir o volume de registros, incluindo os que o Cloud Logging produz para o Cloud Composer.
A exclusão de registros de
jobs.py
pode causar falhas na verificação de integridade e errosCrashLoopBackOff
. Você precisa incluir-jobs.py
nos filtros de exclusão para evitar que ele seja excluído.O monitoramento não registra os valores de contagem dos DAGs e tarefas que são executadas mais de uma vez por minuto e não apresenta métricas para tarefas com falha.
Métricas de ambiente
Você pode usar métricas de ambiente para verificar o uso de recursos e a integridade de nos ambientes do Cloud Composer.
Integridade do ambiente
Para verificar a integridade do ambiente, use a seguinte métrica de status de integridade: composer.googleapis.com/environment/healthy
.
O Cloud Composer executa um DAG de atividade chamado airflow_monitoring
.
que é executado em uma programação e informa a integridade do ambiente da seguinte maneira:
- Se a execução do DAG de atividade for concluída, o status de integridade
será
True
. - Se a execução do DAG de atividade falhar, o status de integridade será
False
.
O DAG de atividade é armazenado na pasta dags/
e fica visível na
interface do Airflow. A frequência e o conteúdo do DAG de atividade são imutáveis
e não pode ser modificado. As alterações no DAG de atividade não são mantidas.
Verificações de dependências do ambiente
O Cloud Composer verifica periodicamente se o ambiente consegue alcançar necessários para a operação e que tenha permissões suficientes para interagir com eles. Exemplos de serviços necessários para a infraestrutura Artifact Registry, Cloud Logging e Cloud Monitoring:
As seguintes métricas estão disponíveis para as verificações de dependências do ambiente:
Métrica de dependência | API | Descrição |
---|---|---|
Número de verificações de dependência | composer.googleapis.com/environment/health/dependency_check_count |
Essa métrica rastreia o número de vezes que as verificações de acessibilidade são realizadas em serviços necessários para a operação do ambiente. |
Número de verificações de permissões de dependência | composer.googleapis.com/environment/health/dependency_permissions_check_count |
Essa métrica rastreia o número de vezes que as verificações de permissão são realizadas em serviços necessários para a operação do ambiente. |
Integridade do banco de dados
Para verificar a integridade do seu banco de dados, você pode usar o seguinte:
métrica de status de integridade: composer.googleapis.com/environment/database_health
.
O pod de monitoramento do Airflow dá um ping no banco de dados a cada minuto e informa o status de integridade como True
se uma conexão SQL puder ser estabelecida ou False
se não.
Métricas de banco de dados
As métricas de ambiente a seguir estão disponíveis para o banco de dados de metadados do Airflow usado pelos ambientes do Cloud Composer. Use essas métricas para monitorar o desempenho e o uso de recursos da sua instância de banco de dados do seu ambiente de nuvem.
Por exemplo, talvez seja necessário aumentar o tamanho do ambiente se ele se aproximar dos limites de recursos. Ou talvez você queira otimizar o tamanho do banco de dados fazendo uma limpeza de banco de dados.
Métrica do banco de dados | API | Descrição |
---|---|---|
Uso de CPU do banco de dados |
composer.googleapis.com/environment/database/cpu/usage_time
|
|
Núcleos da CPU do banco de dados |
composer.googleapis.com/environment/database/cpu/reserved_cores
|
|
Uso de CPU do banco de dados |
composer.googleapis.com/environment/database/cpu/utilization
|
|
Uso da memória do banco de dados |
composer.googleapis.com/environment/database/memory/bytes_used
|
|
Cota de memória do banco de dados |
composer.googleapis.com/environment/database/memory/quota
|
|
Uso de memória do banco de dados |
composer.googleapis.com/environment/database/memory/utilization
|
|
Uso do disco do banco de dados |
composer.googleapis.com/environment/database/disk/bytes_used
|
|
Cota de disco do banco de dados |
composer.googleapis.com/environment/database/disk/quota
|
|
Uso do disco do banco de dados |
composer.googleapis.com/environment/database/disk/utilization
|
|
Limite de conexões de banco de dados |
composer.googleapis.com/environment/database/network/max_connections
|
|
Conexões de banco de dados |
composer.googleapis.com/environment/database/network/connections
|
|
Banco de dados disponível para failover |
composer.googleapis.com/environment/database/available_for_failover
|
Será True se a instância do Cloud SQL do ambiente estiver no nível alto
e está pronto para o failover. |
Contagem de solicitações automáticas de failover do banco de dados |
composer.googleapis.com/environment/database/auto_failover_request_count
|
Número total de solicitações de failover automático do ambiente instância do Cloud SQL. |
Métricas do worker
A métrica de ambiente a seguir está disponível para os workers do Airflow usados pelos ambientes do Cloud Composer 2.
Essa métrica é usada para escalonar automaticamente o número de workers no seu ambiente. O O escalonador automático horizontal de pods define essa métrica e, o componente de ambiente Airflow Worker Set Controller usa esse para aumentar ou diminuir o número de workers do Airflow, dependendo do o valor dessa métrica.
Métrica do worker | API |
---|---|
Meta do fator de escalonamento |
composer.googleapis.com/environment/worker/scale_factor_target |
Métricas do programador
Nome | API | Descrição |
---|---|---|
Programadores ativos |
composer.googleapis.com/environment/active_schedulers
|
Número de instâncias ativas do programador. |
Métricas do acionador
As seguintes métricas do acionador são fornecidas exclusivamente para o Cloud Composer:
Nome | API | Descrição |
---|---|---|
Acionadores ativos |
composer.googleapis.com/environment/active_triggerers
|
O número de instâncias ativas do acionador. |
Além disso, as seguintes métricas do Airflow estão disponíveis nas métricas do Cloud Composer:
Nome | API | Nome no Airflow | Descrição |
---|---|---|---|
Número total de acionadores em execução |
composer.googleapis.com/workload/triggerer/num_running_triggers
|
triggers.running
|
O número de acionadores em execução por instância de acionadores. |
Acionadores de bloqueio |
composer.googleapis.com/environment/trigger/blocking_count
|
triggers.blocked_main_thread
|
Número de gatilhos que bloquearam a linha de execução principal (provavelmente por não ser totalmente assíncrono). |
Acionadores com falha |
composer.googleapis.com/environment/trigger/failed_count
|
triggers.failed
|
Número de acionadores que falharam com um erro antes de disparar um evento. |
Acionadores bem-sucedidos |
composer.googleapis.com/environment/trigger/succeeded_count
|
triggers.succeeded
|
Número de acionadores que dispararam pelo menos um evento. |
Métricas do servidor da Web
As métricas de ambiente a seguir estão disponíveis para o servidor da Web do Airflow usado pelos ambientes do Cloud Composer. É possível usar essas métricas para verificar o desempenho e o uso de recursos da instância do servidor da Web do Airflow do ambiente.
Por exemplo, talvez você queira aumentar a escala do servidor da Web e os parâmetros de desempenho se ele se aproxima constantemente dos limites de recursos.
Nome | API | Descrição |
---|---|---|
Uso de CPU do servidor da Web |
composer.googleapis.com/environment/web_server/cpu/usage_time
|
|
Cota de CPU do servidor da Web |
composer.googleapis.com/environment/web_server/cpu/reserved_cores
|
|
Uso da memória do servidor da Web |
composer.googleapis.com/environment/web_server/memory/bytes_used
|
|
Cota de memória do servidor da Web |
composer.googleapis.com/environment/web_server/memory/quota
|
|
Servidores da Web ativos |
composer.googleapis.com/environment/active_webservers
|
Número de instâncias ativas do servidor da Web. |
Métricas do DAG
Para ajudar você a monitorar a eficiência das execuções de DAG e identificar tarefas que causam alta latência, o DAG a seguir estão disponíveis.
Métrica do DAG | API |
---|---|
Número de execuções de DAGs |
composer.googleapis.com/workflow/run_count |
Duração de cada execução de DAG |
composer.googleapis.com/workflow/run_duration |
Número de execuções da tarefa |
composer.googleapis.com/workflow/task/run_count |
Duração de cada execução de tarefa |
composer.googleapis.com/workflow/task/run_duration |
O Cloud Monitoring mostra apenas as métricas das execuções de tarefas e fluxos de trabalho concluídas com sucesso ou falha. Nenhum dado é exibido quando o fluxo de trabalho não está em atividade ou quando ele e as tarefas estão em andamento.
Métricas do Executor do Celery
As métricas do Celery Executor a seguir estão disponíveis. Com elas, você determina se há recursos suficientes de worker no ambiente.
Métrica do Celery Executor | API |
---|---|
Número de tarefas na fila |
composer.googleapis.com/environment/task_queue_length |
Número de workers on-line do Celery |
composer.googleapis.com/environment/num_celery_workers |
Métricas do Airflow
As seguintes métricas do Airflow estão disponíveis. Essas métricas correspondem às métricas fornecidas pelo Airflow.
Nome | API | Nome no Airflow | Descrição |
---|---|---|---|
Códigos de saída diferentes de zero da tarefa do Celery |
composer.googleapis.com/environment/celery/execute_command_failure_count
|
celery.execute_command.failure
|
Número de códigos de saída diferentes de zero das tarefas do Celery. |
Tempos limite de publicação de tarefas do Celery |
composer.googleapis.com/environment/celery/task_timeout_error_count
|
celery.task_timeout_error
|
Número de erros AirflowTaskTimeout gerados ao publicar tarefas no Celery Broker. |
Duração da busca do DAG serializada |
composer.googleapis.com/environment/collect_db_dag_duration
|
collect_db_dags
|
Tempo necessário para buscar todos os DAGs serializados do banco de dados. |
Erros de atualização do DAG |
composer.googleapis.com/environment/dag_callback/exception_count
|
dag.callback_exceptions
|
Número de exceções geradas de callbacks de DAG. Quando isso acontece, significa que um callback do DAG não está funcionando. |
Erros de atualização do DAG |
composer.googleapis.com/environment/dag_file/refresh_error_count
|
dag_file_refresh_error
|
Número de falhas ao carregar qualquer arquivo DAG. |
Tempo de carregamento do arquivo DAG |
composer.googleapis.com/environment/dag_processing/last_duration
|
dag_processing.last_duration.<dag_file>
|
Tempo gasto para carregar um arquivo DAG específico. |
Tempo desde o processamento do arquivo DAG |
composer.googleapis.com/environment/dag_processing/last_run_elapsed_time
|
dag_processing.last_run.seconds_ago.<dag_file>
|
Segundos desde a última vez que um arquivo DAG foi processado. |
Contagem de paradas do DagFileProcessorManager |
composer.googleapis.com/environment/dag_processing/manager_stall_count
|
dag_processing.manager_stalls
|
Número de processos DagFileProcessorManager parados. |
Erros de análise do DAG |
composer.googleapis.com/environment/dag_processing/parse_error_count
|
dag_processing.import_errors
|
Número de erros gerados ao analisar arquivos DAG. |
Como executar processos de análise de DAG |
composer.googleapis.com/environment/dag_processing/processes
|
dag_processing.processes
|
Número de processos de análise de DAG em execução. |
Tempos limite do processador |
composer.googleapis.com/environment/dag_processing/processor_timeout_count
|
dag_processing.processor_timeouts
|
Número de processadores de arquivos que foram eliminados por demorarem demais. |
Tempo necessário para verificar e importar todos os arquivos DAG |
composer.googleapis.com/environment/dag_processing/total_parse_time
|
dag_processing.total_parse_time
|
Tempo total gasto para verificar e importar todos os arquivos DAG uma vez. |
Tamanho atual do pacote do DAG |
composer.googleapis.com/environment/dagbag_size
|
dagbag_size
|
Número de DAGs encontrados quando o programador executou uma verificação com base na configuração. |
Notificações por e-mail de SLAs com falha |
composer.googleapis.com/environment/email/sla_notification_failure_count
|
sla_email_notification_failure
|
Número de tentativas de notificação por e-mail que falharam no SLA. |
Abrir slots no executor |
composer.googleapis.com/environment/executor/open_slots
|
executor.open_slots
|
Número de slots abertos no executor. |
Tarefas na fila do executor |
composer.googleapis.com/environment/executor/queued_tasks
|
executor.queued_tasks
|
Número de tarefas na fila do executor. |
Como executar tarefas no executor |
composer.googleapis.com/environment/executor/running_tasks
|
executor.running_tasks
|
Número de tarefas em execução no executor. |
Sucessos/falhas da instância da tarefa |
composer.googleapis.com/environment/finished_task_instance_count
|
ti_failures , ti_successes
|
Sucessos/falhas gerais de instâncias de tarefas. |
Jobs iniciados/concluídos |
composer.googleapis.com/environment/job/count
|
<job_name>_start , <job_name>_end
|
Número de jobs iniciados/finalizados, como SchedulerJob e LocalTaskJob. |
Falhas no sinal de funcionamento do job |
composer.googleapis.com/environment/job/heartbeat_failure_count
|
<job_name>_heartbeat_failure
|
Número de batimentos cardíacos com falha para um job. |
Tarefas criadas por operador |
composer.googleapis.com/environment/operator/created_task_instance_count
|
task_instance_created-<operator_name>
|
Número de instâncias de tarefas criadas para um determinado operador. |
Execuções do operador |
composer.googleapis.com/environment/operator/finished_task_instance_count
|
operator_failures_<operator_name> , operator_successes_<operator_name>
|
Número de instâncias de tarefa concluídas por operador |
Slots abertos no pool |
composer.googleapis.com/environment/pool/open_slots
|
pool.open_slots.<pool_name>
|
Número de slots abertos no pool. |
Slots enfileirados no pool |
composer.googleapis.com/environment/pool/queued_slots
|
pool.queued_slots.<pool_name>
|
Número de slots na fila do pool. |
Slots em execução no pool |
composer.googleapis.com/environment/pool/running_slots
|
pool.running_slots.<pool_name>
|
Número de slots em execução no pool. |
Execução de tarefas no pool |
composer.googleapis.com/environment/pool/starving_tasks
|
pool.starving_tasks.<pool_name>
|
Número de tarefas inativas no pool. |
Tempo gasto na seção crítica do programador |
composer.googleapis.com/environment/scheduler/critical_section_duration
|
scheduler.critical_section_duration
|
Tempo gasto na seção crítica do loop do programador. Apenas um programador pode entrar nesse loop por vez. |
Falhas de bloqueio de seção crítica |
composer.googleapis.com/environment/scheduler/critical_section_lock_failure_count
|
scheduler.critical_section_busy
|
Contagem de vezes que um processo de agendamento tentou obter uma trava na seção crítica (necessária para enviar tarefas ao executor) e a encontrou travada por outro processo. |
Tarefas encerradas externamente |
composer.googleapis.com/environment/scheduler/task/externally_killed_count
|
scheduler.tasks.killed_externally
|
Número de tarefas encerradas externamente. |
Tarefas órfãs |
composer.googleapis.com/environment/scheduler/task/orphan_count
|
scheduler.orphaned_tasks.cleared , scheduler.orphaned_tasks.adopted
|
Número de tarefas isoladas limpas/adotadas pelo programador. |
Tarefas em execução/com falta de recursos/executáveis |
composer.googleapis.com/environment/scheduler/tasks
|
scheduler.tasks.running , scheduler.tasks.starving , scheduler.tasks.executable
|
Número de tarefas em execução/sem recursos/executáveis. |
Batimentos do programador |
composer.googleapis.com/environment/scheduler_heartbeat_count
|
scheduler_heartbeat
|
Batimentos do programador. |
Notificações de callback do SLA com falha |
composer.googleapis.com/environment/sla_callback_notification_failure_count
|
sla_callback_notification_failure
|
Número de tentativas de notificação de callback com falha no SLA. |
Falhas de exceção de sondagem de sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/exception_failures
|
smart_sensor_operator.exception_failures
|
Número de falhas causadas pela exceção no loop de cutucado do sensor inteligente anterior. |
Falhas na infraestrutura de sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/infra_failures
|
smart_sensor_operator.infra_failures
|
Número de falhas de infraestrutura no loop de cutucado do sensor inteligente anterior. |
Exceções de sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/poked_exception
|
smart_sensor_operator.poked_exception
|
Número de exceções no loop de cutucado do sensor inteligente anterior. |
O sensor inteligente incitou tarefas com sucesso |
composer.googleapis.com/environment/smart_sensor/poked_success
|
smart_sensor_operator.poked_success
|
Número de tarefas com sucesso recentemente tocadas pelo sensor inteligente no ciclo de sondagem anterior. |
Tarefas de sensores inteligentes |
composer.googleapis.com/environment/smart_sensor/poked_tasks
|
smart_sensor_operator.poked_tasks
|
Número de tarefas tocadas pelo sensor inteligente no ciclo de toques anterior. |
Instâncias de tarefas concluídas anteriormente |
composer.googleapis.com/environment/task_instance/previously_succeeded_count
|
previously_succeeded
|
Número de instâncias de tarefas bem-sucedidas anteriormente. |
Tarefas zumbi eliminadas |
composer.googleapis.com/environment/zombie_task_killed_count
|
zombies_killed
|
Número de tarefas zumbi eliminadas. |
Duração da execução do DAG |
composer.googleapis.com/workflow/dag/run_duration
|
dagrun.duration.success.<dag_id> , dagrun.duration.failed.<dag_id>
|
Tempo que uma execução do DAG leva para chegar ao estado de sucesso/falha. |
Duração da verificação de dependência do DAG |
composer.googleapis.com/workflow/dependency_check_duration
|
dagrun.dependency-check.<dag_id>
|
Tempo necessário para verificar as dependências do DAG. Essa métrica é diferente das métricas de dependência e de verificação de permissões do ambiente e se aplica a DAGs. |
Atraso da programação da execução do DAG |
composer.googleapis.com/workflow/schedule_delay
|
dagrun.schedule_delay.<dag_id>
|
Tempo de atraso entre a data de início programada do DagRun e a data de início real. |
Tarefas concluídas |
composer.googleapis.com/workflow/task_instance/finished_count
|
ti.finish.<dag_id>.<task_id>.<state>
|
Número de tarefas concluídas em um determinado DAG. |
Duração da execução da instância da tarefa |
composer.googleapis.com/workflow/task_instance/run_duration
|
dag.<dag_id>.<task_id>.duration
|
Tempo necessário para concluir uma tarefa. |
Tarefas iniciadas |
composer.googleapis.com/workflow/task_instance/started_count
|
ti.start.<dag_id>.<task_id>
|
Número de tarefas iniciadas em um determinado DAG. |
Duração da instância de tarefa na fila |
composer.googleapis.com/workflow/task_instance/queued_duration
|
dag.<dag_id>.<task_id>.queued_duration
|
Tempo que uma tarefa passa no estado Na fila antes de mudar para o estado Em execução. |
Tarefas removidas do DAG |
composer.googleapis.com/workflow/task/removed_from_dag_count
|
task_removed_from_dag.<dag_id>
|
Número de tarefas removidas de um determinado DAG (ou seja, a tarefa não existe mais no DAG). |
Tarefas restauradas para o DAG |
composer.googleapis.com/workflow/task/restored_to_dag_count
|
task_restored_to_dag.<dag_id>
|
Número de tarefas restauradas para um determinado DAG (ou seja, a instância de tarefa que estava anteriormente no estado "REMOVED" no DB é adicionada ao arquivo DAG). |
Atraso no agendamento de tarefas |
composer.googleapis.com/workflow/task/schedule_delay
|
dagrun.schedule_delay.<dag_id>
|
Tempo decorrido entre o start_date da primeira tarefa e o início esperado do dagrun. |
Como usar o Monitoring para ambientes do Cloud Composer
Console
Use o Metrics Explorer para mostrar métricas relacionadas aos seus ambientes e DAGs:
O recurso Cloud Composer Environment contém métricas para ambientes.
Para mostrar as métricas de um ambiente específico, filtrar métricas pelo
environment_name
. Também é possível filtrar por outros rótulos, como o local do ambiente ou a versão da imagem.O recurso Fluxo de trabalho do Cloud Composer contém métricas para DAGs.
Para mostrar métricas de um DAG ou tarefa específica, filtrar métricas pelo Rótulos
workflow_name
etask_name
. Também é possível filtrar por outros rótulos, como status da tarefa ou nome do operador do Airflow.
API e gcloud
Você pode criar e gerenciar painéis personalizados e widgets por meio do
API Cloud Monitoring e o comando gcloud monitoring dashboards
. Para mais informações, consulte
Gerenciar painéis por API.
Para mais informações sobre recursos, métricas e filtros, consulte a referência Para a API Cloud Monitoring:
Como usar alertas do Cloud Monitoring
É possível criar políticas de alertas para monitorar os valores das métricas e ser notificado quando elas violarem uma condição.
-
No console do Google Cloud, acesse a página notifications Alertas:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Se você não tiver criado seus canais de notificação e quiser receber uma notificação, clique em Editar canais de notificação e adicione-os. Volte para a página Alertas depois de adicionar seus canais.
- Na página Alertas, clique em Criar política.
- Para selecionar a métrica, expanda o menu Selecionar uma métrica e faça isto:
- Para limitar o menu a entradas relevantes, insira
Cloud Composer
na barra de filtro. Se não houver resultados depois de filtrar o menu, desative a opção Mostrar somente recursos e métricas ativos. - Em Tipo de recurso, selecione Ambiente do Cloud Composer ou Fluxo de trabalho do Cloud Composer.
- Selecione uma Categoria de métrica e uma Métrica, depois selecione Aplicar.
- Para limitar o menu a entradas relevantes, insira
- Clique em Próxima.
- As configurações da página Configurar acionador de alertas determinam quando o alerta é acionado. Selecione um tipo de condição e, se necessário, especifique um limite. Para mais informações, consulte Criar políticas de alertas de limite de métrica.
- Clique em Próxima.
- Opcional: para adicionar notificações à sua política de alertas, clique em Canais de notificação. Na caixa de diálogo, selecione um ou mais canais de notificação no menu e clique em OK.
- Opcional: Atualize a Duração do fechamento automático do incidente. Este campo determina quando o Monitoring fecha incidentes na ausência de dados de métrica.
- Opcional: clique em Documentação e adicione as informações que quer incluir em uma mensagem de notificação.
- Clique em Nome e digite um nome para a política de alertas.
- Clique em Criar política.