Usar o Cloud Monitoring em pipelines do Dataflow

O Cloud Monitoring fornece geração de registros e diagnósticos avançados. A integração do Dataflow com o Monitoring permite acessar métricas de jobs do Dataflow, como status do job, contagens de elementos, atrasos do sistema (para jobs de streaming) e contadores de usuários nos painéis do Monitoring. Também é possível usar os alertas do Monitoring para notificação sobre várias condições, como atrasos longos do sistema de streaming ou jobs com falha.

Antes de começar

Siga os guias de início rápido do Java, do Python ou do Go para configurar seu projeto do Dataflow. Em seguida, crie e execute o pipeline.

Para acessar os registros no Metrics Explorer, a conta de serviço do worker precisa ter o papel roles/monitoring.metricWriter.

Métricas personalizadas

Qualquer métrica definida no pipeline do Apache Beam é informada pelo Dataflow ao Monitoring como uma métrica personalizada. O Apache Beam tem três tipos de métricas de pipeline: Counter, Distribution e Gauge.

  • O Dataflow informa as métricas Counter e Distribution ao Monitoring.
  • Distribution é informada como quatro submétricas com os sufixos _MAX, _MIN, _MEAN e _COUNT.
  • O Dataflow não é compatível com a criação de um histograma a partir de métricas Distribution.
  • O Dataflow informa atualizações incrementais ao Monitoring aproximadamente a cada 30 segundos.
  • Para evitar conflitos, todas as métricas personalizadas do Dataflow são exportadas como um tipo de dados double.
  • Para simplificar, todas as métricas personalizadas do Dataflow são exportadas como um tipo de métrica GAUGE. É possível monitorar o delta em uma janela de tempo para uma métrica GAUGE, conforme mostrado no exemplo da Linguagem de consulta do Monitoring a seguir:

     fetch dataflow_job
     | metric 'dataflow.googleapis.com/job/user_counter'
     | filter (metric.job_id == '[JobID]')
     | delta 1m
     | group_by 1m, [value_user_counter_mean: mean(value.user_counter)]
     | every 1m
     | group_by [metric.ptransform, metric.metric_name],
       [value_user_counter_mean_aggregate: aggregate(value_user_counter_mean)]
    
  • As métricas personalizadas do Dataflow aparecem no Monitoring como dataflow.googleapis.com/job/user_counter com os rótulos metric_name: metric-name e ptransform: ptransform-name.

  • Para compatibilidade com versões anteriores, o Dataflow também informa métricas personalizadas ao Monitoring como custom.googleapis.com/dataflow/metric-name.

  • As métricas personalizadas do Dataflow estão sujeitas à limitação da cardinalidade no Monitoring.

  • Cada projeto tem um limite de 100 métricas personalizadas do Dataflow. Essas métricas são publicadas como custom.googleapis.com/dataflow/metric-name.

As métricas personalizadas informadas ao Monitoring geram cobranças com base nos preços do Cloud Monitoring.

Usar o Metrics Explorer

Usar o Monitoring para analisar as métricas do Dataflow. Siga as etapas desta seção para observar as métricas padrão fornecidas para cada pipeline do Apache Beam. Para mais informações sobre como usar o Metrics Explorer, consulte Criar gráficos com o Metrics Explorer.

  1. No Console do Google Cloud, selecione Monitoring:

    Acessar Monitoring

  2. No painel de navegação, selecione Metrics Explorer.

  3. No painel Selecionar uma métrica, insira Dataflow Job no filtro.

  4. Na lista exibida, selecione uma métrica a ser observada para um dos jobs.

Ao executar jobs do Dataflow, talvez você também queira monitorar métricas para suas origens e coletores. Por exemplo, é possível monitorar as métricas da API BigQuery Storage. Para mais informações, consulte Criar painéis, gráficos e alertas e a lista completa de métricas do serviço de transferência de dados do BigQuery.

Criar políticas e painéis de alertas

O Monitoring fornece acesso a métricas relacionadas ao Dataflow. Crie painéis para traçar a série temporal de métricas e criar políticas de alertas que notificam você quando as métricas atingem os valores especificados.

Criar grupos de recursos

Para facilitar a definição de alertas e a criação de painéis, crie grupos de recursos que incluam vários pipelines do Apache Beam.

  1. No Console do Google Cloud, selecione Monitoring:

    Acessar Monitoring

  2. No painel de navegação, selecione Grupos.

  3. Clique em Criar grupo.

  4. Digite um nome para o grupo.

  5. Adicione critérios de filtro que definam os recursos do Dataflow incluídos no grupo. Por exemplo, um dos critérios de filtro pode ser o prefixo do nome dos seus pipelines. Criar grupo.

  6. Depois que o grupo for criado, é possível ver as métricas básicas relacionadas aos recursos desse grupo.

Criar políticas de alertas para métricas do Dataflow

O monitoramento permite que você crie alertas e receba notificações quando uma métrica ultrapassa um limite especificado. Por exemplo, é possível receber uma notificação quando o atraso do sistema de um pipeline de streaming ficar superior a um valor predefinido.

  1. No Console do Google Cloud, selecione Monitoring:

    Acessar Monitoring

  2. No painel de navegação, selecione Alertas.

  3. Clique em Criar política.

  4. Na página Criar nova política de alertas, definir as condições de alerta e os canais de notificação.
    Por exemplo, para definir um alerta de atraso do sistema para o grupo de pipelines WindowedWordCount do Apache Beam, conclua as seguintes etapas:

    1. Clique em Selecionar uma métrica.
    2. No campo Selecionar uma métrica, insira Dataflow Job.
    3. Em Categorias de métrica, selecione Job.
    4. Em Métricas, selecione Atraso do sistema.

    Sempre que um alerta é acionado, um incidente e um evento correspondente são criados. Se você tiver especificado um mecanismo de notificação no alerta, como e-mail ou SMS, você também receberá uma notificação.

Criar painéis de monitoramento personalizados

É possível criar painéis de monitoramento do Monitoring com os gráficos mais relevantes relacionados ao Dataflow. Para adicionar um gráfico a um painel, siga estas etapas:

  1. No Console do Google Cloud, selecione Monitoring:

    Acessar Monitoring

  2. No painel de navegação, selecione Painéis.

  3. Clique em Criar painel.

  4. Clique em Adicionar widget.

  5. Na janela Adicionar widget, em Dados, selecione Métrica.

  6. No painel Selecionar uma métrica, em Métrica, insira Dataflow Job.

  7. Selecione uma categoria e uma métrica.

Adicione ao painel quantos gráficos desejar.

Receber métricas de VMs de workers do agente do Monitoring

É possível usar o Monitoring para monitorar discos permanentes, CPUs, rede e métricas de processos. Ao executar o pipeline, nas instâncias de VM de worker do Dataflow, ative o Agente do Monitoring. Confira a lista de métricas disponíveis do agente do Monitoring.

Para ativar o agente do Monitoring, use a opção --experiments=enable_stackdriver_agent_metrics ao executar o pipeline. A conta de serviço do worker deve ter o papel roles/monitoring.metricWriter.

Para desativar o agente do Monitoring sem interromper o pipeline, inicie um job substituto sem o parâmetro --experiments=enable_stackdriver_agent_metrics para atualizar o pipeline.

Armazenamento e retenção

As informações sobre jobs concluídos ou cancelados do Dataflow são armazenadas por 30 dias.

Os registros operacionais são armazenados no bucket de registros _Default. O nome do serviço da API de registro é dataflow.googleapis.com. Para mais informações sobre os tipos de recursos monitorados e os serviços do Google Cloud usados no Cloud Logging, consulte Recursos e serviços monitorados.

Para saber detalhes sobre o período de retenção das entradas de registro no Logging, consulte as informações sobre retenção em Cotas e limites: períodos de armazenamento de registros.

Para informações sobre como visualizar registros operacionais, consulte Monitorar e visualizar registros de pipeline.

A seguir

Para saber mais, conheça estes outros recursos: