Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
É 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. Use o Cloud Monitoring para entender a performance e a integridade dos ambientes do Cloud Composer e das métricas do Airflow.
O Logging captura os registros produzidos pelos contêineres do programador e do worker no cluster do ambiente. Esses registros contêm informações sobre a dependência do Airflow e do sistema para ajudar na depuração. Para mais informações sobre como conferir registros, consulte Conferir registros do Airflow.
Antes de começar
As permissões a seguir são necessárias para acessar os registros e as métricas do 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 Google Cloud . Use filtros de exclusão para reduzir o volume de registros, incluindo os que o Cloud Logging produz para o Cloud Composer.
Métricas de ambiente
É possível usar métricas de ambiente para verificar o uso de recursos e a integridade dos ambientes do Cloud Composer.
Integridade do ambiente
Para verificar a integridade do ambiente, use a seguinte métrica de status de integridade:
Métrica | API |
---|---|
Integridade de um ambiente |
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 forma:
- 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 podem ser modificados. As mudanças no DAG de atividade não são mantidas.
Verificações de dependências do ambiente
O Cloud Composer verifica periodicamente se o ambiente pode acessar os serviços necessários para a operação e se ele tem permissões suficientes para interagir com eles. Exemplos de serviços necessários para a operação do ambiente são o Artifact Registry, o Cloud Logging e o Cloud Monitoring.
As seguintes métricas estão disponíveis para as verificações de dependências do ambiente:
Métrica | 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, use a 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. É possível usar essas métricas para monitorar o desempenho e o uso de recursos da instância do banco de dados do ambiente.
Por exemplo, talvez seja necessário fazer upgrade do tipo de máquina do Cloud SQL do seu ambiente se ele se aproximar dos limites de recursos. Ou talvez você queira otimizar os custos relacionados ao uso do banco de dados de metadados do Airflow com uma limpeza de banco de dados para manter o armazenamento abaixo de um determinado limite.
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
|
É True se a instância do Cloud SQL do ambiente estiver no modo de alta
disponibilidade e pronta para failover. |
Contagem de solicitações de failover automático do banco de dados |
composer.googleapis.com/environment/database/auto_failover_request_count
|
Número total de solicitações de failover automático da instância do Cloud SQL do ambiente. |
Métricas do worker
As métricas de ambiente a seguir estão disponíveis para workers do Airflow nos ambientes do Cloud Composer 3 e do Cloud Composer 2.
Essa métrica é usada para escalonar automaticamente o número de workers no seu ambiente. O escalonamento automático de pod horizontal define essa métrica, e o componente de ambiente controlador de conjunto de workers do Airflow usa essa métrica para aumentar ou diminuir o número de workers do Airflow, dependendo do valor dela.
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
Nome | API | Descrição |
---|---|---|
Acionadores ativos |
composer.googleapis.com/environment/active_triggerers
|
O número de instâncias de acionadores ativas. |
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 fazer upgrade do tipo de máquina do servidor da Web se ele se aproxima constantemente dos limites de recursos.
Nome | API | Descrição |
---|---|---|
Servidores da Web ativos |
composer.googleapis.com/environment/active_webservers
|
Número de instâncias ativas do servidor da Web. |
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
|
Cotas para serviços usados pelo ambiente
O Cloud Composer usa outros serviços Google Cloud . Esses serviços têm cotas de nível de projeto, que são aplicadas quando você usa o Cloud Composer.
No Cloud Composer 3, o cluster do ambiente fica localizado no projeto do locatário. O Cloud Composer 3 oferece as seguintes métricas que informam a utilização de cotas e os limites de cota correspondentes para serviços usados pelo seu ambiente no projeto do inquilino.
Métrica | API | Descrição |
---|---|---|
Limite de cota de CPU para cargas de trabalho do Cloud Composer |
composer.googleapis.com/environment/workloads_cpu_quota
|
(Somente Cloud Composer 3) A cota de alocação de CPU do Compute Engine para o número total de CPUs virtuais usadas por um ambiente. O limite é aplicado por ambiente. Se o projeto tiver vários ambientes do Cloud Composer 3, cada um deles terá o próprio limite de cota. |
Uso da cota de CPU para cargas de trabalho do Cloud Composer |
composer.googleapis.com/environment/workloads_cpu_quota_usage
|
(somente Cloud Composer 3) O uso da cota de alocação de CPU do Compute Engine por um ambiente. |
Métricas do DAG
Para ajudar a monitorar a eficiência das execuções de DAG e identificar tarefas que causam alta latência, as seguintes métricas de DAG estão disponíveis.
Métrica do DAG | API |
---|---|
Número de execuções de DAG |
composer.googleapis.com/workflow/run_count |
Duração de cada execução do 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 a tarefa no agente do Celery. |
Duração da busca do DAG serializado |
composer.googleapis.com/environment/collect_db_dag_duration
|
collect_db_dags
|
Tempo gasto 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 de 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 paralisações 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 de 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 encerrados por demorarem muito. |
Tempo que levou 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 repositório 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 falha no SLA |
composer.googleapis.com/environment/email/sla_notification_failure_count
|
sla_email_notification_failure
|
Número de tentativas de notificação por e-mail com falha 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 de instâncias de tarefas |
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 de operadores |
composer.googleapis.com/environment/operator/finished_task_instance_count
|
operator_failures_<operator_name> , operator_successes_<operator_name>
|
Número de instâncias de tarefas 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 com falta de recursos 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 um bloqueio na seção crítica (necessária para enviar tarefas ao executor) e encontrou o bloqueio de 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/famintas/executáveis. |
Batimentos do programador |
composer.googleapis.com/environment/scheduler_heartbeat_count
|
scheduler_heartbeat
|
Batimentos do programador. |
Notificações de callback de 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 por exceção no loop de sondagem 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 sondagem de sensores inteligentes 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 sondagem de sensores inteligentes 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 recém-sucedidas tocadas pelo sensor inteligente no loop 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 que já tiveram sucesso. |
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ências 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 na 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 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 que leva 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 "Em 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 banco de dados é adicionada ao arquivo DAG). |
Atraso no agendamento de tarefas |
composer.googleapis.com/workflow/task/schedule_delay
|
dagrun.schedule_delay.<dag_id>
|
Tempo decorrido entre a start_date da primeira tarefa e o início esperado da dagrun. |
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 acionadores que bloquearam a linha de execução principal (provavelmente por não serem totalmente assíncronos). |
Acionadores com falha |
composer.googleapis.com/environment/trigger/failed_count
|
triggers.failed
|
Número de acionadores que falharam com um erro antes de acionar um evento. |
Acionadores bem-sucedidos |
composer.googleapis.com/environment/trigger/succeeded_count
|
triggers.succeeded
|
Número de acionadores que acionaram pelo menos um evento. |
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 Ambiente do Cloud Composer contém métricas para ambientes.
Para mostrar métricas de um ambiente específico, filtre as métricas pelo rótulo
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 uma DAG ou tarefa específica, filtre as métricas pelos 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
É possível criar e gerenciar painéis e widgets personalizados usando a
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 da API Cloud Monitoring:
Como usar os 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.