Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
É possível usar o Cloud Monitoring e Cloud Logging com o Cloud Composer.
O Cloud Monitoring fornece visibilidade para o desempenho, o tempo de atividade e a integridade geral dos 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 papéis de 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. Você pode usar filtros de exclusão para reduzir o volume de registros, incluindo aqueles que o Cloud Logging é produzido para o Cloud Composer.
A exclusão de registros do
jobs.py
pode causar falhas na verificação de integridade eCrashLoopBackOff
erros. Você precisa incluir-jobs.py
nos filtros de exclusão para evitar a exclusão.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 seu ambiente, você pode usar o 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, a integridade
o status é
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 visível em
a 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 monitora o número de vezes que as verificações de acessibilidade são realizadas os 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 monitora o número de vezes que as verificações de permissão são realizadas 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 a integridade
Status como True
, se uma conexão SQL puder ser estabelecida, ou False
caso contrário.
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 execução.
Por exemplo, talvez você queira fazer upgrade do tipo de máquina Cloud SQL do seu ambiente se o ambiente se aproximar dos limites de recursos. Ou talvez você queira otimizar custos relacionados ao uso do banco de dados de metadados do Airflow. Para isso, 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
|
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 programador
Nome | API | Descrição |
---|---|---|
Programadores ativos |
composer.googleapis.com/environment/active_schedulers
|
Número de instâncias do programador ativas. |
Métricas do engatilhador
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 via 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 do acionador. |
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. Você pode usar essas métricas para verificar o desempenho e o uso de recursos do fluxo da Web do Airflow instância do servidor de aplicativos da Web.
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 |
---|---|---|
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 da tarefa 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 do 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 necessário 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 que um arquivo DAG foi processado pela última vez. |
Contagem de paradas do DagFileProcessorManager |
composer.googleapis.com/environment/dag_processing/manager_stall_count
|
dag_processing.manager_stalls
|
Número de processos DagFileProcessorManager paralisados. |
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 do DAG em execução no momento. |
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 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 necessário 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 ausência no SLA 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 no executor |
composer.googleapis.com/environment/executor/queued_tasks
|
executor.queued_tasks
|
Número de tarefas na fila no 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 da instância de tarefa. |
Trabalhos iniciados/concluídos |
composer.googleapis.com/environment/job/count
|
<job_name>_start , <job_name>_end
|
Número de jobs iniciados/concluídos, como SchedulerJob, LocalTaskJob. |
Falhas no sinal de funcionamento do job |
composer.googleapis.com/environment/job/heartbeat_failure_count
|
<job_name>_heartbeat_failure
|
Número de sinais de funcionamento com falha de 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 na fila no pool |
composer.googleapis.com/environment/pool/queued_slots
|
pool.queued_slots.<pool_name>
|
Número de slots na fila do pool. |
Como executar slots no pool |
composer.googleapis.com/environment/pool/running_slots
|
pool.running_slots.<pool_name>
|
Número de slots em execução no pool. |
Fim 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. Somente um programador pode entrar nesse loop por vez. |
Falhas críticas de bloqueio de seção |
composer.googleapis.com/environment/scheduler/critical_section_lock_failure_count
|
scheduler.critical_section_busy
|
Contagem de vezes que um processo programador tentou bloquear uma seção crítica (necessária para enviar tarefas ao executor) e a encontrou bloqueada por outro processo. |
Tarefas eliminadas externamente |
composer.googleapis.com/environment/scheduler/task/externally_killed_count
|
scheduler.tasks.killed_externally
|
Número de tarefas eliminadas externamente. |
Tarefas órfãs |
composer.googleapis.com/environment/scheduler/task/orphan_count
|
scheduler.orphaned_tasks.cleared , scheduler.orphaned_tasks.adopted
|
Número de tarefas órfãs apagadas/adotadas pelo programador. |
Tarefas em execução/com fome/executáveis |
composer.googleapis.com/environment/scheduler/tasks
|
scheduler.tasks.running , scheduler.tasks.starving , scheduler.tasks.executable
|
Número de tarefas em execução/com privação/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 salto do sensor inteligente |
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. |
Sensores inteligentes que detectam falhas na infraestrutura |
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 cutucadas com sensor inteligente |
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 realizou as tarefas |
composer.googleapis.com/environment/smart_sensor/poked_success
|
smart_sensor_operator.poked_success
|
Número de tarefas recém-sucedidas feitas pelo sensor inteligente no loop de cutucado anterior. |
O sensor inteligente pontuou tarefas |
composer.googleapis.com/environment/smart_sensor/poked_tasks
|
smart_sensor_operator.poked_tasks
|
Número de tarefas apontadas pelo sensor inteligente no loop de cutucado anterior. |
Instâncias de tarefas bem-sucedidas |
composer.googleapis.com/environment/task_instance/previously_succeeded_count
|
previously_succeeded
|
Número de instâncias de tarefas bem-sucedidas anteriormente. |
Excluiu tarefas zumbis |
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 um DagRun leva para alcançar o 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 verificações de dependência e permissão do ambiente e se aplica aos 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. |
Tarefas removidas do DAG |
composer.googleapis.com/workflow/task/removed_from_dag_count
|
task_removed_from_dag.<dag_id>
|
Número de tarefas removidas para um determinado DAG (ou seja, a tarefa não existe mais no DAG). |
Tarefas restauradas no DAG |
composer.googleapis.com/workflow/task/restored_to_dag_count
|
task_restored_to_dag.<dag_id>
|
O número de tarefas restauradas para um determinado DAG, ou seja, a instância da tarefa que estava anteriormente no estado REMOVIDO no banco de dados é adicionada ao arquivo DAG. |
Atraso na programação 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 em ambientes do Cloud Composer
Console
Você pode usar o Metrics Explorer para exibir relacionadas aos 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 Next.
- 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.