O PromQL pode ser usado para consultar e criar gráficos usando dados do Cloud Monitoring destas fontes:
- Google Cloud serviços, como o Google Kubernetes Engine ou o Compute Engine, que gravam métricas descritas nas listas de métricas do sistema do Cloud Monitoring.
- Métricas definidas pelo usuário, como métricas com base em registros e métricas definidas pelo usuário do Cloud Monitoring.
- Google Cloud Managed Service para Prometheus, a solução de várias nuvens totalmente gerenciada do Prometheus do Google Cloud. Para saber mais sobre esse serviço gerenciado, incluindo suporte para PromQL, consulte Google Cloud Managed Service para Prometheus.
Também é possível usar ferramentas como o Grafana para criar gráficos com dados de métricas ingeridos pelo Cloud Monitoring. As métricas disponíveis incluem as do Managed Service para Prometheus e do Cloud Monitoring documentadas nas listas de métricas. Para informações sobre como configurar o Grafana e outras ferramentas com base na API Prometheus, consulte a documentação do serviço gerenciado para Prometheus sobre o Grafana.
Também é possível importar os painéis do Grafana para o Cloud Monitoring.
Convenções de nomenclatura
O modelo de métrica e as convenções de nomenclatura do Prometheus são diferentes daqueles usados pelo Cloud Monitoring. Para usar o PromQL para consultar dados de métricas do Monitoring, é necessário converter os nomes do Cloud Monitoring em equivalentes compatíveis com o PromQL. Para informações sobre as convenções de nomenclatura, consulte Como mapear métricas do Cloud Monitoring para PromQL.
Como acessar o PromQL no Cloud Monitoring
É possível usar o PromQL na guia Code nas páginas a seguir no console Google Cloud :
- Metrics Explorer
- Adicionar gráfico ao criar painéis personalizados
Para informações sobre como acessar e usar o editor, consulte Como usar o editor de PromQL.
Regras e alertas do Prometheus
É possível usar o PromQL para criar regras de gravação e alerta em qualquer métrica no Cloud Monitoring usando alertas no estilo Prometheus no Cloud Monitoring. Para mais informações, consulte Avaliação e alerta de regras gerenciadas ou Avaliação e alerta de regras autoimplantadas.
Aprendizado sobre promQL
Para aprender os conceitos básicos do uso do PromQL, recomendamos consultar a documentação de código aberto. Estes recursos podem ajudar você a começar:
Diferenças de PromQL
O PromQL para Cloud Monitoring pode funcionar de maneira um pouco diferente do PromQL upstream.
As consultas da PromQL no Cloud Monitoring são parcialmente avaliadas no back-end do Monarch usando uma linguagem de consulta interna. Há algumas diferenças conhecidas nos resultados da consulta. Além das diferenças listadas nesta seção, o PromQL no Cloud Monitoring é igual ao PromQL disponível na versão 2.44 do Prometheus.As funções PromQL adicionadas após a versão 2.44 do Prometheus podem não ser compatíveis.
Como corresponder com nomes de métricas
Só é possível fazer a correspondência exata com nomes de métricas. É necessário incluir uma correspondência exata no nome da métrica na consulta.
Recomendamos as seguintes soluções alternativas para cenários comuns que usam um comparador de expressão
regular no marcador __name__
:
- As configurações do adaptador do Prometheus geralmente usam o operador
=~
para corresponder a vários nomes de métricas. Para corrigir esse uso, expanda a configuração para usar uma política separada para cada métrica e nomeie cada métrica explicitamente. Isso também impede que você faça o escalonamento automático acidentalmente em métricas inesperadas. - As expressões regulares geralmente são usadas para representar graficamente várias métricas não dimensionais
no mesmo gráfico. Por exemplo, se você tiver uma métrica como
cpu_servicename_usage
, poderá usar um curinga para representar todos os serviços juntos. O uso de métricas não dimensionais como essa é uma prática explicitamente ruim no Cloud Monitoring, e essa prática leva a uma performance de consulta extremamente ruim. Para corrigir esse uso, mova toda a dimensionalidade para rótulos de métricas em vez de incorporar dimensões no nome da métrica. - A consulta de várias métricas é usada com frequência para saber quais métricas estão disponíveis para consulta. Recomendamos que você use a chamada
/labels/__name__/values
para descobrir métricas. Também é possível descobrir métricas usando a interface do Cloud Monitoring. - A correspondência de várias métricas é útil para saber quantas amostras foram extraídas, ingeridas e cobradas por métrica. O Cloud Monitoring fornece essas informações na página Gerenciamento de métricas. Também é possível acessar essas informações como dados de métrica usando a métrica Samples Ingested ou a métrica Samples Written by Attribution ID.
Inatividade
A inatividade não é compatível com o back-end do Monarch.
Cálculo de irate
Quando a janela de lookback da função irate
é menor que o tamanho da etapa, aumentamos a janela para o tamanho da etapa.
O Monarch exige essa mudança para garantir que nenhum dos dados de entrada seja completamente ignorado na saída. Essa diferença também se aplica a cálculos rate
.
Cálculo de rate
e increase
Quando a janela de lookback da função rate
é menor que o tamanho da etapa, aumentamos a janela para o tamanho da etapa.
O Monarch exige essa mudança para garantir que nenhum dos dados de entrada
seja completamente ignorado na saída. Essa diferença também se aplica a cálculos irate
.
Há diferenças nos cálculos de interpolação e extrapolação. O Monarch usa um algoritmo de interpolação diferente do Prometheus, e essa diferença pode levar a resultados um pouco diferentes. Por exemplo, as amostras do contador Monarch são armazenadas com um intervalo de tempo em vez do único carimbo de data/hora usado pelo Prometheus. Portanto, as amostras de contador no Monarch podem ser incluídas em um cálculo de taxa, mesmo que o carimbo de data/hora do Prometheus as exclua. Isso normalmente gera resultados de taxa mais precisos, especialmente ao consultar o início ou o fim da série temporal subjacente.
Cálculo de histogram_quantile
Um cálculo histogram_quantile
do PromQL
em um histograma sem amostras produz um valor NaN. O cálculo da
linguagem de consulta interna não produz valor.
O ponto no carimbo de data/hora é descartado.
As diferenças de cálculo de taxa também podem afetar a entrada em consultas histogram_quantile
.
Funções específicas de tipo em métricas de tipos diferentes
Embora o Prometheus upstream seja do tipo fraco, o Monarch tem uma classificação forte. Isso significa que a execução de funções específicas para um único tipo em uma métrica de tipo diferente (por exemplo, executar rate()
em uma métrica do GAUGE ou histogram_quantile()
em uma métrica de COUNTER ou sem tipo) não funciona no Cloud Monitoring, mesmo que essas funções funcionem no Prometheus upstream.