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:
https://<prometheus host>/metrics
Estas s?o duas op??es de pr¨¦-processamento de dados do Prometheus:
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.
Considerando que voc¨º tenha o item principal HTTP configurado, voc¨º precisa criar um item dependente que usa uma etapa de pr¨¦-processamento Prometheus:
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
/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¨¢ 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)).
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.
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> |