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:
https://<prometheus host>/metrics
Existem duas op??es de pr¨¦-processamento de dados do Prometheus:
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.
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:
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
/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:
node_disk_usage_bytes{path="/var/db"}
node_disk_usage_bytes
:node_disk_usage_bytes
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:
elasticsearch_cluster_health_status {cluster="elasticsearch"} == 1
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).
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.
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> |