Use o Cloud Monitoring para pipelines do Dataflow

O Cloud Monitoring oferece registos e diagnósticos poderosos. A integração do Dataflow com o Monitoring permite-lhe aceder às métricas de tarefas do Dataflow, como o estado da tarefa, as contagens de elementos, o atraso do sistema (para tarefas de streaming) e os contadores de utilizadores a partir dos painéis de controlo do Monitoring. Também pode usar os alertas de monitorização para receber notificações sobre várias condições, como um atraso prolongado do sistema de streaming ou trabalhos com falhas.

Antes de começar

Siga o tutorial de Java, tutorial de Python ou tutorial de Go para configurar o seu projeto do Dataflow. Em seguida, crie e execute o seu pipeline.

Para ver registos no Explorador de métricas, a conta de serviço do trabalhador tem de ter a função roles/monitoring.metricWriter.

Métricas personalizadas

Qualquer métrica que defina no seu pipeline do Apache Beam é comunicada 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 comunica as métricas Counter e Distribution à monitorização.
  • Distribution é comunicado como quatro submétricas com o sufixo _MAX, _MIN, _MEAN e _COUNT.
  • O Dataflow não suporta a criação de um histograma a partir de métricas de Distribution.
  • O Dataflow envia atualizações incrementais para a monitorização 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 GAUGE tipo de métrica. Pode monitorizar a variação ao longo de um período para uma métrica GAUGE, conforme mostrado no seguinte exemplo de linguagem de consulta de monitorização:

     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 na monitorização como dataflow.googleapis.com/job/user_counter com as etiquetas metric_name: metric-name e ptransform: ptransform-name.

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

  • As métricas personalizadas do Dataflow estão sujeitas à limitação de cardinalidade na monitorização.

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

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

Use o Metrics Explorer

Use o Monitoring para explorar as métricas do Dataflow. Siga os passos nesta secção para observar as métricas padrão que são fornecidas para cada um dos seus pipelines do Apache Beam. Para mais informações sobre a utilização do explorador de métricas, consulte o artigo Crie gráficos com o explorador de métricas.

  1. Na Google Cloud consola, selecione Monitorização:

    Aceder a Monitorização

  2. No painel de navegação, selecione Explorador de métricas.

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

  4. Na lista apresentada, selecione uma métrica a observar para uma das suas tarefas.

Quando executa tarefas do Dataflow, também pode querer monitorizar as métricas das suas origens e destinos. Por exemplo, pode querer monitorizar as métricas da API BigQuery Storage. Para mais informações, consulte os artigos Crie painéis de controlo, gráficos e alertas e a lista completa de métricas do Serviço de transferência de dados do BigQuery.

Crie políticas de alerta e painéis de controlo

A monitorização dá acesso a métricas relacionadas com o Dataflow. Crie painéis de controlo para representar graficamente a série cronológica de métricas e crie políticas de alerta que lhe enviam uma notificação quando as métricas atingem valores especificados.

Crie grupos de recursos

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

  1. Na Google Cloud consola, selecione Monitorização:

    Aceder a Monitorização

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

  3. Clique em Criar grupo.

  4. Introduza 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 seus critérios de filtro pode ser o prefixo do nome dos seus pipelines. Criar grupo.

  6. Depois de criar o grupo, pode ver as métricas básicas relacionadas com os recursos nesse grupo.

Crie políticas de alerta para métricas do Dataflow

A monitorização permite-lhe criar alertas e receber notificações quando uma métrica ultrapassa um limite especificado. Por exemplo, pode receber uma notificação quando o atraso do sistema de um pipeline de streaming aumenta acima de um valor predefinido.

  1. Na Google Cloud consola, selecione Monitorização:

    Aceder a Monitorização

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

  3. Clique em Criar política.

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

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

    Sempre que um alerta é acionado, é criado um incidente e um evento correspondente. Se especificou um mecanismo de notificação no alerta, como email ou SMS, também recebe uma notificação.

Crie painéis de controlo de monitorização personalizados

Pode criar painéis de controlo de monitorização com os gráficos mais relevantes relacionados com o Dataflow. Para adicionar um gráfico a um painel de controlo, siga estes passos:

  1. Na Google Cloud consola, selecione Monitorização:

    Aceder a Monitorização

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

  3. Clique em Criar painel de controlo.

  4. Clique em Adicionar widget.

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

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

  7. Selecione uma categoria de métrica e uma métrica.

Pode adicionar os gráficos que quiser ao painel de controlo.

Receba métricas de VMs de trabalho do agente de monitorização

Pode usar a Monitorização para monitorizar o disco persistente, a CPU, a rede e as métricas de processos. Quando executar o pipeline, nas instâncias de VM do worker do Dataflow, ative o agente de monitorização. Consulte a lista de métricas do agente de monitorização disponíveis.

Para ativar o agente de monitorização, use a opção --experiments=enable_stackdriver_agent_metrics quando executar o pipeline. A conta de serviço do trabalhador tem de ter a função roles/monitoring.metricWriter.

Para desativar o agente de monitorização sem parar o pipeline, atualize o pipeline iniciando uma tarefa de substituição sem o parâmetro --experiments=enable_stackdriver_agent_metrics.

Armazenamento e retenção

As informações sobre tarefas do Dataflow concluídas ou canceladas são armazenadas durante 30 dias.

Os registos operacionais são armazenados no _Default contentor de registos. O nome do serviço da API de registo é dataflow.googleapis.com. Para mais informações sobre os tipos de recursos monitorizados e os serviços da Google Cloud Platform usados no Cloud Logging, consulte o artigo Recursos e serviços monitorizados.

Para ver detalhes sobre durante quanto tempo as entradas do registo são retidas pelo Logging, consulte as informações de retenção em Quotas e limites: períodos de retenção de registos.

Para ver informações sobre como ver registos operacionais, consulte o artigo Monitorize e veja registos de pipelines.

O que se segue?

Para saber mais, considere explorar estes outros recursos: