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:
- As tarefas são todas tarefas de streaming.
- As tarefas usam o modelo de faturação de dados processados.
- As tarefas guardam ficheiros no Persistent Disk, tanto Standard (HDD) como SSD.
- As tarefas não usam GPUs.
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:
Recurso | Mé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étrica | String 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:
Na Google Cloud consola, aceda à página Dataflow > Monitorização.
No menu pendente Predefinido, clique em Personalizar painel de controlo.
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:
Na Google Cloud consola, aceda à página Dataflow > Monitorização.
No menu pendente Predefinido, selecione o painel de controlo personalizado.
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:
- Clique em Adicionar widget.
- No painel Adicionar widget, selecione Métrica.
- Na caixa Título do widget, introduza um título para o gráfico, como
Estimated cost (top 25)
. - Clique em PROMQL
- Cole a consulta PromQL apresentada anteriormente.
- Clique em Executar consulta.
- Clique em Aplicar.
- Opcional: arraste o gráfico para o posicionar no painel de controlo.
O que se segue?
- Adicione uma linha de referência para poder ver quando uma métrica excede um limite predefinido.
- Aprenda PromQL.
- Saiba mais acerca dos painéis de controlo.