jvm_memory_bytes_used{area="heap"} / jvm_memory_bytes_max
사용량(heap + offheap)
sum by (instance) (jvm_memory_bytes_used{job="spring"})
사용량 % (node의 memory 대비)
node_memory_MemTotal_bytes{job="node", instance="$your_instance"}
2.1.2 의 쿼리를 A, 2.1.3 의 쿼리를 B라고 했을때,
expression 을 추가하고 Math로 표현식
$A/$B
sum by (job, instance) (rate(jvm_gc_collection_seconds_sum[$__rate_interval]))
아래 공식으로 node_cpu_seconds_total 을 type과 관련없이, instance 별로 구할 수 있다.
sum by (job, instance) (rate(node_cpu_seconds_total{job="node" [$__rate_interval])))
spring instance 만 구분하기 위해
sum by (job, instance) (rate(node_cpu_seconds_total{job="node", instance="$your_instance"}[$__rate_interval])))
rate(process_cpu_seconds_total{job="spring", instance="$your_instance"}[$__rate_interval]) >= 0
2.2.1
의 쿼리를 A
2.2.2
의 쿼리를 B 로 했을때,
C query 를 만들고, operation을 Math 로 한다.
다음 수식으로 비율%를 구할 수 있다.
$B / $A
CPU사용율이 낮다면, 예제에 있는 /cpurun
API를 호출하면 무한루프를 돌면서 cpu 사용율이 치솟는다.
가장 좋은 것은, app에서 node(system)의 cpu_seconds_total 을 제공해서 한 번에 계산하거나, 아예 usage % 를 제공하는 것이다.
process_open_fds / process_max_fds