kubernetes object의 metric은 하나의 metric으로는 단순한 표현만 가능합니다.
하지만 query 할 때 metric을 join시킴으로써 화면에 정보를 더 많이 표시할 수 있습니다. 이를 통해 여러 개의 대시보드를 확인할 필요 없이 하나의 대시보드로 여러 가지 정보를 확인할 수 있도록 할 수도 있습니다.
또한, join을 통해 특정 metric을 일종의 조건문처럼 사용할 수도 있습니다.
예를 들어, workload의 리소스 사용량을 확인할 때,
아래의 query문처럼 container의 memory 사용량 metric과 pod info metric을 join시켜서 container의 memory 사용량 metric에 pod 정보나 workload 정보를 포함되도록 하고
query 결과를 workload별로 더하도록 해서 workload의 memory 전체 사용량을 확인할 수 있습니다.
sum(
(
container_memory_working_set_bytes{container=""}
and on (pod)
kube_pod_info{created_by_kind="DaemonSet"}
)
* on (pod) group_left (created_by_name)
avg(kube_pod_info{created_by_kind="DaemonSet"}) by (pod, created_by_name)
) by (created_by_name)
Daemonset type의 pod 나열 + 값은 1

Daemonset type인 pod의 workingset memory 값

연산

참조
https://www.robustperception.io/left-joins-in-promql/
https://stackoverflow.com/questions/69823493/join-two-prometheus-queries
https://stackoverflow.com/questions/49896956/relabel-instance-to-hostname-in-prometheus
'Monitoring' 카테고리의 다른 글
Grafana transform (0) | 2023.09.04 |
---|---|
Prometheus에 argoCD metric 연동하기 (0) | 2023.09.04 |
LGTM 특장점 (0) | 2023.09.04 |
Prometheus alertmanager (0) | 2023.08.31 |
Prometheus를 push 방식으로 쓰기 (0) | 2023.08.31 |