Áú»¢¶Ä²©

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 come?ar a coletar dados do Prometheus:

  • um item mestre HTTP HTTP master item apontando para o endpoint de dados apropriado, por exemplo, https://<prometheus host>/metrics
  • itens dependentes usando uma op??o de pr¨¦-processamento Prometheus para consultar os dados necess¨¢rios das m¨¦tricas coletadas pelo item mestre

Existem duas op??es de pr¨¦-processamento de dados do Prometheus:

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

O processamento em massa ¨¦ suportado para itens dependentes. Para habilitar o cache e a indexa??o, o pr¨¦-processamento com o padr?o Prometheus deve ser o primeiro passo de pr¨¦-processamento. Quando o padr?o Prometheus ¨¦ o primeiro passo de pr¨¦-processamento, os dados Prometheus analisados s?o armazenados em cache e indexados pela primeira condi??o <label>==<value> no passo de pr¨¦-processamento padr?o Prometheus. Esse cache ¨¦ reutilizado ao processar outros itens dependentes neste lote. Para um desempenho ideal, o primeiro °ù¨®³Ù³Ü±ô´Ç deve ser aquele com a maioria dos valores diferentes.

Se houver outro pr¨¦-processamento a ser feito antes do primeiro passo, ele deve ser movido para o item mestre ou para um novo item dependente, que seria usado como item mestre para os itens dependentes.

Configura??o

Se voc¨º j¨¢ tiver o item mestre HTTP configurado, ¨¦ necess¨¢rio criar um item dependente dependent item que utilize um passo de pr¨¦-processamento Prometheus:

  • Insira os par?metros gerais do item dependente no formul¨¢rio de configura??o
  • V¨¢ para a 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 espec¨ªficos para a op??o de pr¨¦-processamento padr?o Prometheus:

Par?metro Descri??o Exemplos
Padr?o Para definir o padr?o de dados necess¨¢rio, voc¨º pode usar uma linguagem de consulta semelhante ¨¤ linguagem de consulta Prometheus (veja a tabela comparison table), por exemplo:
<nome da m¨¦trica> - selecionar por nome de m¨¦trica
{__name__="<metric name>"} - selecione por nome de m¨¦trica
{__name__=~"<regex>"} - selecione por nome de m¨¦trica correspondente a uma express?o regular
{<label name>="<label value>",...} - selecione por nome de °ù¨®³Ù³Ü±ô´Ç
{<label name>=~"<regex>",...} - selecionar por nome de °ù¨®³Ù³Ü±ô´Ç que corresponda a uma express?o regular
{__name__=~".*"}==<value> - selecionar por valor de m¨¦trica
Ou uma combina??o dos acima:
<metric name>{<label1 name>="<label1 value>",<label2 name>=~"<regex>",...}==<value>

O valor do °ù¨®³Ù³Ü±ô´Ç pode ser qualquer sequ¨ºncia de caracteres UTF-8, mas os caracteres barra invertida, aspas duplas e quebra de linha devem 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
Processamento de resultado Especifique se deseja retornar o valor, o °ù¨®³Ù³Ü±ô´Ç ou aplicar a fun??o apropriada (se o padr?o corresponder a v¨¢rias linhas e o resultado precisar ser agregado):
valor - retornar valor da m¨¦trica (erro se v¨¢rias linhas forem correspondidas)
°ù¨®³Ù³Ü±ô´Ç - retornar o valor do °ù¨®³Ù³Ü±ô´Ç especificado no campo Label (erro se v¨¢rias m¨¦tricas forem correspondidas)
sum - retornar a soma dos valores
min - retornar o valor m¨ªnimo
max - retornar o valor m¨¢ximo
avg - retornar o valor ³¾¨¦»å¾±´Ç
count - retornar a contagem dos valores
Este campo est¨¢ dispon¨ªvel apenas para a op??o padr?o Prometheus.
Veja tamb¨¦m exemplos de uso de par?metros abaixo.
³§²¹¨ª»å²¹ Defina o nome do °ù¨®³Ù³Ü±ô´Ç (opcional). Nesse caso, o valor correspondente ao nome do °ù¨®³Ù³Ü±ô´Ç ¨¦ retornado.
Este campo est¨¢ dispon¨ªvel apenas para a op??o padr?o Prometheus, se 'label' for selecionado no campo Processamento de resultado.

Exemplos de uso dos par?metros

  1. O caso de uso mais comum ¨¦ retornar o valor. Para retornar o valor /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 de resultado - selecione 'value'
  1. Voc¨º tamb¨¦m pode estar interessado no valor ³¾¨¦»å¾±´Ç de todos os par?metros node_disk_usage_bytes:
  • Padr?o - node_disk_usage_bytes
  • Processamento de resultado - selecione 'avg'
  1. Embora o Prometheus suporte apenas dados num¨¦ricos, ¨¦ comum usar um artif¨ªcio que permite retornar a descri??o textual relevante tamb¨¦m. Isso pode ser realizado com um filtro e especificando o °ù¨®³Ù³Ü±ô´Ç. Assim, para retornar o valor do °ù¨®³Ù³Ü±ô´Ç 'color' 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
  • Processamento de resultado - selecione 'label'
  • Label - especifique 'color'

O filtro (baseado no valor num¨¦rico '1') corresponder¨¢ ¨¤ linha apropriada, enquanto o °ù¨®³Ù³Ü±ô´Ç retornar¨¢ a descri??o do status de sa¨²de (atualmente 'verde', mas potencialmente tamb¨¦m 'vermelho' ou 'amarelo).

Prometheus para JSON

Os dados do Prometheus podem ser usados para descoberta em baixo n¨ªvel. Nesse 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 Discovery using Prometheus data.

Compara??o de linguagens de consulta

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

Pr¨¦-processamento Prometheus do Áú»¢¶Ä²©
Diferen?as
Alvo da consulta Texto simples no formato de exposi??o Prometheus
Retorna Vetor instant?neo Valor de m¨¦trica ou °ù¨®³Ù³Ü±ô´Ç (padr?o Prometheus)
Array de m¨¦tricas para um ¨²nico valor em JSON (Prometheus para JSON)
Operadores de correspond¨ºncia de °ù¨®³Ù³Ü±ô´Ç =, !=, =~, !~ =, !=, =~, !~
Express?o regular usada na correspond¨ºncia de nome de °ù¨®³Ù³Ü±ô´Ç ou m¨¦trica RE2 PCRE
Operadores de compara??o Consulte Apenas == (igual) ¨¦ suporatdo para para filtragem de valores
Similaridades
Selecionando por nome de m¨¦trica que ¨¦ igual a uma string <metric name> ou {__name__="<metric name>"} <metric name> ou {__name__="<metric name>"}
Selecionando por nome de m¨¦trica que corresponde a uma express?o regular {__name__=~"<regex>"} {__name__=~"<regex>"}
Selecionando por valor de <label name> que ¨¦ igual a uma string {<label name>="<label value>",...} {<label name>="<label value>",...}
Selecionando por valor de <label name> que corresponde a uma express?o regular {<label name>=~"<regex>",...} {<label name>=~"<regex>",...}
Selecionando por valor que ¨¦ igual a uma string {__name__=~".*"} == <value> {__name__=~".*"} == <value>