Nesta página, mostramos como personalizar o painel de monitoramento do projeto do Dataflow adicionando um gráfico que consulta métricas do Cloud Monitoring.
Com o painel de monitoramento de projetos, é possível monitorar uma coleção de jobs e conferir a integridade e o desempenho gerais deles. O painel contém um conjunto padrão de gráficos úteis para a maioria das cargas de trabalho. Ao personalizar o painel, você pode adicionar gráficos específicos para os requisitos da sua empresa.
Exemplo de cenário
Para mostrar como personalizar o painel, vamos supor que uma organização queira acompanhar o custo estimado dos 25 principais jobs no projeto dela.
Para este cenário, suponha que os jobs tenham as seguintes características:
- Todos os jobs são de streaming.
- Os jobs usam o modelo de faturamento de dados processados.
- Os jobs salvam arquivos no disco permanente, tanto padrão (HDD) quanto SSD.
- Os jobs não usam GPUs.
Escolher métricas
As métricas a seguir são necessárias para estimar o custo de um job, considerando as premissas listadas na seçã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 o embaralhamento (GB) |
job/total_streaming_data_processed
|
Uso do Persistent Disk (GB por hora, padrão e SSD) |
job/total_pd_usage_time
|
Para mais informações, consulte Preços do Dataflow.
Para saber quais recursos estão disponíveis no Monitoring, consulte Tipos de recursos monitorados.
Escrever uma consulta PromQL
Para consultar métricas do Cloud Monitoring, use a linguagem de consulta do Prometheus (PromQL). Nesta seção, mostramos como escrever uma consulta PromQL para o cenário criando-a com cláusulas menores. Esta seção não pressupõe nenhum conhecimento prévio de PromQL. Para mais informações, consulte PromQL no Cloud Monitoring.
Mapear nomes de métricas para strings do PromQL
Para usar métricas do Monitoring em consultas PromQL, é necessário mapear o nome da métrica para uma string PromQL, da seguinte maneira:
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 Como mapear métricas do Cloud Monitoring para PromQL.
Criar a consulta
Para saber 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. Para receber o valor mais recente, use uma função de janela de 1 minuto e pegue o valor máximo em cada janela.
Para saber o custo estimado de CPU, primeiro converta
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
Essa fórmula fornece o custo estimado de CPU para todos os jobs no projeto. Para receber o custo estimado de CPU por job, use o operador de agregação
sum
e agrupe por ID do job.sum( max_over_time(dataflow_googleapis_com:job_total_vcpu_time[1m]) / 3600 * CPU_PRICE ) by (job_id)
Para receber 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 job.#((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 saber o custo estimado de embaralhamento, converta
job/total_streaming_data_processed
de bytes para GB. Multiplique pelo preço dos dados processados durante o embaralhamento por GB e agrupe por ID do job.# 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 saber o custo estimado de uso do Persistent Disk, indexe o rótulo
storage_type
para separar por tipo de disco (padrão ou SSD). Converta cada valor de GB-segundos para GB-horas e agrupe por ID do job.# 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 job. Para receber os 25 principais jobs, use um filtro "top-K":
topk(25, # Sum the individual values. )
Escrever a consulta completa
Confira 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 variáveis a seguir por valores da página de preços do Dataflow da sua região.
- CPU_PRICE: preço da CPU, por vCPU a cada hora
- MEMORY_PRICE: preço da memória, por GB/hora
- SHUFFLE_PRICE: preço de embaralhamento, por GB
- STANDARD_PD_PRICE: preço do disco permanente padrão, por GB/hora
- SSD_PD_PRICE: preço do disco permanente SSD, por GB/hora
Editar o painel
Se você não criou um painel personalizado para o Dataflow neste projeto, crie um da seguinte maneira:
No console Google Cloud , acesse a página Dataflow > Monitoramento.
No menu suspenso Predefinido, clique em Personalizar painel.
Opcional: insira um nome para o painel na caixa Nome da visualização personalizada.
Se você já criou um painel personalizado, siga estas etapas para editar o painel:
No console Google Cloud , acesse a página Dataflow > Monitoramento.
No menu suspenso Predefinido, selecione o painel personalizado.
Clique em
Editar painel.
Adicionar um gráfico de métricas
Para adicionar um gráfico de métricas ao painel, siga estas etapas:
- Clique em Adicionar widget.
- No painel Adicionar widget, selecione Métrica.
- Na caixa Título do widget, insira um título para o gráfico, como
Estimated cost (top 25)
. - Clique em PROMQL.
- Cole a consulta PromQL mostrada anteriormente.
- Clique em Executar consulta.
- Clique em Aplicar.
- Opcional: arraste o gráfico para posicioná-lo no painel.
A seguir
- Adicione uma linha de referência para saber quando uma métrica excede um limite predefinido.
- Aprenda PromQL.
- Saiba mais sobre os painéis.