Como usar o Monitoring para os 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. Você também pode usar os recursos de alertas do Monitoring para ser notificado sobre várias condições, como atrasos no sistema de streaming longos ou jobs com falhas.

Antes de começar

Siga um dos guias de início rápido para configurar o projeto do Dataflow, além de criar e executar o pipeline.

Métricas personalizadas

Qualquer métrica definida no pipeline do Apache Beam é informada pelo Dataflow ao Monitoring como uma métrica personalizada. Existem três tipos de Métricas de pipeline do Apache Beam: Counter, Distribution e Gauge. Atualmente, o Dataflow relata apenas Counter e Distribution para o Monitoring. Distribution é relatado 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. Todas as métricas personalizadas do Dataflow são exportadas como um tipo de dados double para evitar conflitos. Elas aparecem no Monitoring como dataflow.googleapis.com/job/user_counter com metric_name: metric-name e ptransform: ptransform-name como rótulos. Eles estão sujeitos à limitação da cardinalidade no Monitoring.

Para compatibilidade com versões anteriores, o Dataflow também informa métricas personalizadas ao Monitoring como custom.googleapis.com/dataflow/metric-name. Há um limite de 100 métricas personalizadas do Dataflow por projeto publicado como custom.googleapis.com/dataflow/metric-name.

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

Conheça as métricas

Conheça as métricas do Dataflow usando o Monitoring. Siga as etapas desta seção para observar as diversas métricas padrão fornecidas para cada um dos canais do Apache Beam.

  1. No Console do Google Cloud, selecione Monitoring:

    Acessar Monitoring

  2. No painel de navegação à esquerda, clique em Metrics Explorer.

  3. No painel Localizar tipo de recurso e métrica, selecione o tipo de recurso dataflow_job. Selecionando o recurso dataflow_job no Metrics Explorer.

  4. Na lista que aparece, selecione uma métrica que você queira observar para um dos seus jobs.


    Escolher métricas

Criar políticas e painéis de alertas

O Monitoring não somente fornece acesso a métricas relacionadas ao Dataflow, mas também permite que você crie políticas e painéis de alertas para gerar gráficos de séries temporais de métricas e seja notificado quando essas métricas alcançarem valores especificados.

Criar grupos de recursos

É possível criar grupos de recursos que incluem diversos canais do Apache Beam e que facilitem a configuração de alertas e a criação de painéis.

  1. No Console do Google Cloud, selecione Monitoring:

    Acessar Monitoring

  2. No menu Grupos, selecione Criar grupo.

  3. 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.

  4. 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

Com o Monitoring, você pode criar alertas e ser notificado quando uma determinada métrica ultrapassar um limite especificado. Por exemplo, quando o atraso do sistema de um pipeline de streaming aumenta acima de um valor predefinido.

  1. No Console do Google Cloud, selecione Monitoring:

    Acessar Monitoring

  2. No menu Alerta, clique em Criar política.

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

    1. Selecione Adicionar condição.
    2. No campo Localizar tipo de recurso ou métrica, digite e selecione dataflow_job.
    3. No campo Localizar tipo de recurso ou métrica, selecione Atraso do sistema.
  4. Depois de criar um alerta, é possível analisar os eventos relacionados ao Dataflow selecionando Ver todos os eventos na seção Eventos. Sempre que um alerta é acionado, um evento indicativo 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 o próprio painel de monitoramento personalizado

É possível criar painéis de monitoramento do Monitoring com os gráficos mais relevantes relacionados ao Dataflow.

  1. Acesse o Console do Google Cloud e selecione Monitoring:

    Acessar Monitoring

  2. Selecione Dashboards > Create Dashboard.

  3. Clique em Adicionar gráfico.

  4. Na janela Adicionar gráfico, selecione dataflow_job e a métrica que quer traçar.

  5. No campo Filtro, selecione um grupo que contenha pipelines do Apache Beam.

Adicione ao painel quantos gráficos desejar.

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

Se você quiser monitorar as métricas de disco permanente, CPU, rede e processo das instâncias de VM do worker do Dataflow, ative o agente do Monitoring ao executar o pipeline. Veja a lista de métricas do agente do Monitoring disponíveis.

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 controlador deve ter o papel roles/monitoring.metricWriter.

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

A seguir

Para saber mais, conheça estes outros recursos: