Personalize o painel de controlo de monitorização do fluxo de dados

Esta página mostra como personalizar o painel de controlo de monitorização de projetos do Dataflow, adicionando um gráfico que consulta métricas do Cloud Monitoring.

O painel de controlo de monitorização de projetos permite-lhe monitorizar uma coleção de tarefas e ver o respetivo estado e desempenho gerais. O painel de controlo contém um conjunto predefinido de gráficos úteis para a maioria das cargas de trabalho. Ao personalizar o painel de controlo, pode adicionar gráficos específicos dos requisitos da sua empresa.

Cenário de exemplo

Para mostrar como pode personalizar o painel de controlo, suponha que uma organização quer acompanhar o custo estimado dos 25 principais trabalhos no respetivo projeto.

Para este cenário, suponha que os trabalhos têm as seguintes caraterísticas:

Escolha as métricas

As seguintes métricas são necessárias para estimar o custo de uma tarefa, tendo em conta as pressuposições indicadas na secção anterior:

RecursoMétrica relevante
CPU (vCPU por hora) job/total_vcpu_time
Memória (GB por hora) job/total_memory_usage_time
Dados processados durante a mistura aleatória (GB) job/total_streaming_data_processed
Utilização do disco persistente (GB por hora, padrão e SSD) job/total_pd_usage_time

Para mais informações, consulte os preços do Dataflow.

Para saber que recursos estão disponíveis na Monitorização, consulte o artigo Tipos de recursos monitorizados.

Escreva uma consulta PromQL

Para consultar métricas do Cloud Monitoring, use a linguagem de consulta Prometheus (PromQL). Esta secção mostra como escrever uma consulta PromQL para o cenário, criando-a a partir de cláusulas mais pequenas. Esta secção não pressupõe conhecimentos prévios de PromQL. Para mais informações, consulte o artigo PromQL no Cloud Monitoring.

Mapeie nomes de métricas para strings PromQL

Para usar métricas de monitorização em consultas PromQL, tem de mapear o nome da métrica para uma string PromQL, da seguinte forma:

Nome da métricaString PromQL
job/total_vcpu_time dataflow_googleapis_com:job_total_vcpu_time
job/total_memory_usage_time dataflow_googleapis_com:job_total_memory_usage_time
job/total_streaming_data_processed dataflow_googleapis_com:job_total_streaming_data_processed
job/total_pd_usage_time dataflow_googleapis_com:job_total_pd_usage_time

Para mais informações, consulte o artigo Mapear métricas do Cloud Monitoring para PromQL.

Crie a consulta

Para obter o custo estimado, calcule os preços de cada componente com base no valor mais atual de cada métrica. As métricas são amostradas a cada 60 segundos. Por isso, para obter o valor mais recente, use uma função de janelas de 1 minuto e obtenha o valor máximo em cada janela.

  • Para obter o custo de CPU estimado, converta primeiro job/total_vcpu_time de segundos para horas. Multiplique pelo preço da CPU por vCPU por hora.

    # ((vCPU time)[Bucket 1m] / Seconds per hour * vCPU Price)
    max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
    

    Esta fórmula dá o custo estimado da CPU para todas as tarefas no projeto. Para obter o custo de CPU estimado por tarefa, use o operador de agregação sum e agrupe por ID da tarefa.

    sum(
      max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
    ) by (job_id)
    
  • Para obter o custo de memória estimado, converta job/total_memory_usage_time de segundos para horas. Multiplique pelo preço da memória por GB por hora e agrupe por ID do trabalho.

    #((Memory time)[Bucket 1m] / Seconds per hour) * Memory Price
    sum(
      max_over_time(dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
    ) by (job_id)
    
  • Para obter o custo de reorganização estimado, converta job/total_streaming_data_processed de bytes para GB. Multiplique pelo preço dos dados processados durante a mistura por GB e agrupe por ID da tarefa.

    # Shuffle Billing. Reported once every 60 seconds, measured in bytes.
    # Formula: (Shuffle Data)[Bucket 1m] / (Bytes in GB) * (Shuffle Price)
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_streaming_data_processed[1m]
     ) / 1000000000 * SHUFFLE_PRICE
    ) by (job_id)
    
  • Para obter o custo de utilização do disco persistente estimado, indexe a etiqueta storage_type para separar por tipo de disco (padrão ou SSD). Converta cada valor de GB-segundos em GB-horas e agrupe por ID da tarefa.

    # Formula: ((Standard PD time)[Bucket 1m] / Seconds per hour) * Standard PD price
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]
      ) / 3600 * STANDARD_PD_PRICE
    ) by (job_id)
    
    # Formula: ((SSD PD time)[Bucket 1m] / Seconds per hour) * SSD PD price
    sum(
      max_over_time(
        dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]
      ) / 3600 * SSD_PD_PRICE
    ) by (job_id)
    
  • A soma dos valores anteriores dá o custo estimado por trabalho. Para obter os 25 principais trabalhos, use um filtro Top K:

    topk(25,
      # Sum the individual values.
    )
    

Escreva a consulta completa

O exemplo seguinte mostra a consulta completa:

topk(25,
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_memory_usage_time[1m]) / 3600 * MEMORY_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_streaming_data_processed[1m]) / 1000000000 * SHUFFLE_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_pd_usage_time{storage_type="HDD"}[1m]) / 3600 * STANDARD_PD_PRICE
  )
  by (job_id) +
sum(
  max_over_time(
    dataflow_googleapis_com:job_total_pd_usage_time{storage_type="SSD"}[1m]) / 3600 * SSD_PD_PRICE
  )
  by (job_id)
)

Substitua as seguintes variáveis por valores da página de preços do Dataflow para a sua região.

  • CPU_PRICE: preço da CPU, por vCPU por hora
  • MEMORY_PRICE: preço da memória, por GB por hora
  • SHUFFLE_PRICE: preço da funcionalidade de aleatório, por GB
  • STANDARD_PD_PRICE: preço do disco persistente padrão, por GB por hora
  • SSD_PD_PRICE: preço do disco persistente SSD, por GB por hora

Edite o painel de controlo

Se não criou anteriormente um painel de controlo personalizado para o Dataflow neste projeto, crie um da seguinte forma:

  1. Na Google Cloud consola, aceda à página Dataflow > Monitorização.

    Aceder a Monitorização

  2. No menu pendente Predefinido, clique em Personalizar painel de controlo.

  3. Opcional: introduza um nome para o painel de controlo na caixa Nome da vista personalizada.

Se criou anteriormente um painel de controlo personalizado, siga os passos abaixo para editar o painel de controlo:

  1. Na Google Cloud consola, aceda à página Dataflow > Monitorização.

    Aceder a Monitorização

  2. No menu pendente Predefinido, selecione o painel de controlo personalizado.

  3. Clique em Editar painel de controlo.

Adicione um gráfico de métricas

Para adicionar um gráfico de métricas ao painel de controlo, siga estes passos:

  1. Clique em Adicionar widget.
  2. No painel Adicionar widget, selecione Métrica.
  3. Na caixa Título do widget, introduza um título para o gráfico, como Estimated cost (top 25).
  4. Clique em PROMQL
  5. Cole a consulta PromQL apresentada anteriormente.
  6. Clique em Executar consulta.
  7. Clique em Aplicar.
  8. Opcional: arraste o gráfico para o posicionar no painel de controlo.

O que se segue?