1
resposta

[Dúvida] Métricas Memory heap e Memory non-heap

Algumas métricas quando estão configuradas como ilimitadas devolvem o valor -1.0 no endpoint do Prometheus.

Por exemplo: jvmmemorymaxbytes{area="nonheap",id="Metaspace",} -1.0. Como faria para filtrar esse valor na query da lição Métricas Memory heap e Memory non-heap?

sum(jvm_memory_used_bytes{application="$application", instance="$instance", job="app-forum-api", area="nonheap"})*100 / sum(jvm_memory_max_bytes{application="$application", instance="$instance", job="app-forum-api", area="nonheap"})

1 resposta

Olá, Fábio.

Tudo bem?

Esses valores geralmente indicam que a métrica está configurada como ilimitada. Para filtrar esses valores, você pode usar a função clamp_min do Prometheus, que permite definir um limite mínimo para os valores retornados.

Aqui está um exemplo de como você pode ajustar sua query para ignorar os valores -1.0:

sum(jvm_memory_used_bytes{application="$application", instance="$instance", job="app-forum-api", area="nonheap"}) * 100 / 
sum(clamp_min(jvm_memory_max_bytes{application="$application", instance="$instance", job="app-forum-api", area="nonheap"}, 0))

A função clamp_min define um limite mínimo para os valores, substituindo qualquer valor menor que o limite especificado (neste caso, 0) pelo próprio limite. Assim, os valores -1.0 serão substituídos por 0, evitando que eles afetem o resultado da sua query.

Faz sentido, seria isso?

Espero ter ajudado e bons estudos!