Áú»¢¶Ä²©

17 Verifica??es Prometheus

Vis?o geral

O Áú»¢¶Ä²© pode consultar m¨¦tricas expostas no formato de linha do Prometheus.

Dois passos s?o necess¨¢rios para iniciar a obten??o de dados do Prometheus:

  • um item principal HTTP apontando para o endpoint de dados apropriado, p.e. https://<prometheus host>/metrics
  • itens dependentes usando a op??o de pr¨¦-processamento Prometheus para consultar dados de m¨¦tricas reunidos pelo item principal

Estas s?o duas op??es de pr¨¦-processamento de dados do Prometheus:

  • Padr?o Prometheus - usado em itens normais para consultar dados Prometheus
  • Prometheus para JSON - usado em itens normais e para descoberta de baixo-n¨ªvel. Neste caso dados Prometheus consultados s?o retornados em um formato JSON.
Processamento em massa

Processamento em massa ¨¦ suportado para itens dependentes. Para habilitar o cache e indexa??o, o pr¨¦-processamento Padr?o Prometheus deve ser a primeira etapa de pr¨¦-processamento. Quando o Padr?o Prometheus ¨¦ a primeira etapa de pr¨¦-processamento ent?o o dado Prometheus analisado ¨¦ colocado em cache e indexado pela primeira condi??o <etiqueta>==<valor> na etapa de pr¨¦-processamento Padr?o Prometheus. Este cache ¨¦ reutilizado quando processando outros itens dependentes neste neste lote. Para otimiza??o de performance, a primeira etiqueta deve ser aquela com mais valores diferentes.

Se h¨¢ outro pr¨¦-processamento a ser feito antes da primeira etapa, ele deve ser movido ou para o item principal ou para um novo item dependente que seria usado como item principal para os itens dependentes relacionados.

Configura??o

Considerando que voc¨º tenha o item principal HTTP configurado, voc¨º precisa criar um item dependente que usa uma etapa de pr¨¦-processamento Prometheus:

  • Informe os par?metros gerais do item dependente no formul¨¢rio de configura??o
  • V¨¢ ¨¤ aba de Pr¨¦-processamento
  • Selecione uma op??o de pr¨¦-processamento Prometheus (Padr?o Prometheus ou Prometheus para JSON)

Os seguintes par?metros s?o especificados para a op??o de pr¨¦-processamento Padr?o Prometheus:

Par?metro Descri??o Exemplos
Padr?o Para definir o padr?o de dado requerido voc¨º pode usar uma linguagem de consulta similar ¨¤ linguagem de consulta to Prometheus (veja tabela de compara??o), p.e.:
<nome m¨¦trica> - selecione por nome da m¨¦trica
{__name__="<nome m¨¦trica>"} - selecione por nome da m¨¦trica
{__name__=~"<regex>"} - selecione por nome da m¨¦trica correspondente a uma express?o regular
{<label name>="<valor etiqueta>",...} - selecione por nome da etiqueta (label)
{<label name>=~"<regex>",...} - selecione por nome da etiqueta correspondente a uma express?o regular
{__name__=~".*"}==<valor> - selecione por valor da m¨¦trica
Ou uma combina??o do que est¨¢ acima:
<nome m¨¦trica>{<label1 name>="<valor etiqueta1>",<label2 name>=~"<regex>",...}==<valor>

O valor da etiqueta pode ser qualquer sequ¨ºncia de caracteres UTF-8, mas os caracteres de contrabarra, aspas duplas e nova linha tem de ser escapados como \\, \" e \n respectivamente; outros caracteres n?o devem ser escapados.
wmi_os_physical_memory_free_bytes
cpu_usage_system{cpu="cpu-total"}
cpu_usage_system{cpu=~".*"}
cpu_usage_system{cpu="cpu-total",host=~".*"}
wmi_service_state{name="dhcp"}==1
wmi_os_timezone{timezone=~".*"}==1
Resultado do processamento Especifique se ser¨¢ retornado o valor, a etiqueta ou aplique a fun??o apropriada (se o padr?o corresponde a v¨¢rias linhas e o resultado precisa ser agregado):
valor - retorna o valor da m¨¦trica (erro se m¨²ltiplas linhas corresponderem)
etiqueta - retorna o valor da etiqueta especificada no campo Etiqueta (erro se m¨²ltiplas linhas corresponderem)
sum - retorna a soma dos valores
min - retorna o valor m¨ªnimo
max - retorna o valor m¨¢ximo
avg - retorna o valor ³¾¨¦»å¾±´Ç
count - retorna a contagem de valores
Este campo est¨¢ dispon¨ªvel apenas na op??o Padr?o Prometheus.
Veja tamb¨¦m exemplos de uso de par?metros abaixo.
³§²¹¨ª»å²¹ Defina um nome de etiqueta (opcional). Neste caso o valor correspondente ao nome de etiqueta ¨¦ retornado.
Este campo est¨¢ dispon¨ªvel apenas para a op??o Padr?o Prometheus, se 'Etiqueta' estiver selecionado no campo Processamento de resultado.

Exemplos de utiliza??o dos par?metros

  1. O caso de uso mais comum ¨¦ para retornar o valor. Para retornar o valor de /var/db de:

node_disk_usage_bytes{path="/var/cache"} 2.1766144e+09
node_disk_usage_bytes{path="/var/db"} 20480
node_disk_usage_bytes{path="/var/dpkg"} 8192
node_disk_usage_bytes{path="/var/empty"} 4096

use os seguintes par?metros:

  • Padr?o - node_disk_usage_bytes{path="/var/db"}
  • Processamento do resulado - selecione 'valor'
  1. Voc¨º pode tamb¨¦m estar interessado no valor ³¾¨¦»å¾±´Ç de todos os par?metros node_disk_usage_bytes:
  • Padr?o - node_disk_usage_bytes
  • Resultado do processamento - selecione 'avg'
  1. Enquanto o Prometheus suporta apenas dados num¨¦ricos, ¨¦ popular usar uma conting¨ºncia que permite retornar uma descri??o textual relevante tamb¨¦m. Isto pode ser alcan?ado com um filtro e especifica??o de uma etiqueta. Ent?o, para retornar o valor da etiqueta 'color' (cor) de

elasticsearch_cluster_health_status{cluster="elasticsearch",color="green"} 1
elasticsearch_cluster_health_status{cluster="elasticsearch",color="red"} 0
elasticsearch_cluster_health_status{cluster="elasticsearch",color="yellow"} 0

use os seguintes par?metros:

  • Padr?o - elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
  • Resultado do processamento - selecione 'etiqueta'
  • Etiqueta - especifique 'color'

O filtro (baseado no valor num¨¦rico '1') corresponder¨¢ a linha apropriada, enquanto a etiqueta retornar¨¢ a descri??o do estado de integridade (atualmente 'verde' (green); mas potencialmente tamb¨¦m 'vermelho' (red) ou 'amarelo' (yellow)).

Prometheus para JSON

Dados do Prometheus podem ser usados para descoberta de baixo-n¨ªvel. Neste caso s?o necess¨¢rios dados em formato JSON e a op??o de pr¨¦-processamento Prometheus para JSON retornar¨¢ exatamente isso.

Para mais detalhes, consulte Descoberta usando dados Prometheus.

Compara??o linguagem de consulta (query language)

A seguinte tabela lista as diferen?as e similaridades entre PromQL e a linguagem de consulta de pr¨¦-processamento Prometheus do Áú»¢¶Ä²©.

Áú»¢¶Ä²© Pr¨¦-processamento Prometheus
Diferen?as
Alvo para consulta Servidor Prometheus Texto plano em formato de exposi??o Prometheus
Retornos Vetor instant?neo M¨¦trica ou valor de etiqueta (Padr?o Prometheus)
Array de m¨¦tricas por valor ¨²nico em JSON (Prometheus para JSON)
Operadores de correspond¨ºncia de etiqueta =, !=, =~, !~ =, !=, =~, !~
Express?o Regular usada na etiqueta ou nome da m¨¦trica correspondente RE2 PCRE
Operadores de compara??o Veja Apenas == (igual) ¨¦ suportado para filtro de valor
Similaridades
Sele??o por nome de m¨¦trica igual string <nome m¨¦trica> ou {__name__="<nome m¨¦trica>"} <nome m¨¦trica> ou {__name__="<nome m¨¦trica>"}
Sele??o por nome de m¨¦trica correspondente a express?o regular {__name__=~"<regex>"} {__name__=~"<regex>"}
Sele??o pelo valor <nome etiqueta> que iguala string {<label name>="<nome etiqueta>",...} {<label name>="<nome etiqueta>",...}
Sele??o pelo valor <nome etiqueta> que corresponde ¨¤ express?o regular {<label name>=~"<regex>",...} {<label name>=~"<regex>",...}
Sele??o por valor que iguala string {__name__=~".*"} == <valor> {__name__=~".*"} == <valor>