Grafana를 처음 세팅할 때는 템플릿 기반의 기본 대시보드만 만들었다. 내가 돌리는 Debian VPS 모니터링용이었다. 화면은 이런 느낌이다.

원래는 이것만 봤는데, Prometheus를 Gethomepage 대시보드에 직접 뿌린 뒤부터는 Grafana에 관심이 덜해졌다.
필요한 건 이미 여기에 다 있었기 때문이다.

그래도 Grafana를 제대로 세팅해 두는 게 맞다. 데이터는 결국 Grafana에 쌓이고, 과거까지 볼 수 있으며, 네트워크 트래픽 분석 등 핵심 작업이 여기에 있기 때문이다.
그래서 오늘, 내 Grafana를 다시 닦아보기로 했다.
1. ChatGPT로 기본 Overview
몇 개의 프롬프트로 대충 물어봤더니 JSON을 바로 import하면 된다고 해서 GPT에게 맡겼다. 결과는 이랬다. 기대한 수준은 아니었다.

몇 번 더 시도했더니 이렇게 나왔다.

하지만 내 Use Case에는 맞지 않았다. 여러 시간 구간을 모니터링하고 싶은데, 이 방식은 내 기존 대시보드 방식의 쿼리를 그대로 사용했기 때문이다.

2. 몇 가지 분석
Variable

위에 보이는 것들이 Variable이다.

쿼리에서 이렇게 쓴다.
100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle", instance="$node"}[$__rate_interval])))
핵심은 [$__rate_interval]로, 시간 범위에 맞춰 데이터를 필터링할 수 있다.
이번 목표
Grafana 쿼리가 Prometheus 화면처럼 보이게 만들기.

직접 넣으면 원하는 값처럼 나온다.

다음은 시간 variable을 적용하는 것.

두 가지 Variable을 써봤지만 동작하지 않았다.
문제는 어디에?
$__rate_interval vs $__range를 이해해야 했다.
이것이 $__rate_interval

그리고 이것이 $__range

단위가 GB로 나온 건 변환을 안 했기 때문이고 디버깅용이었다. 이제 두 개의 차이가 보인다.
$__range는 label에 매핑된다.

label을 바꾸면 데이터도 바뀐다.
성공



그래도 이 그래프는 좀 안 어울리는 듯하지만 일단은 둔다. 다음 문제로.
목표 2

win-4를 다른 값으로 바꿀 수 있어야 한다.
초기 아이디어
이 Variable 전체를 복사해서 옮긴다.

하지만 VPS에만 적용되어 안 된다.
Windows Exporter까지 포함하는 변수가 필요했고, 답은 up이었다.

이제 적용해본다.

잘 된다.
그런데 가족을 데리러 가야 해서 잠깐 중단.
~4시간 후
다시 시작.
목표 3
이걸 22개로 복제하되 변수만 다르게.

방법은 두 가지. GPT가 제안한 건 거대한 JSON 복붙인데 너무 비효율적이다. DevOps/SysAdmin용 플랫폼에서 Clone 기능이 없을 리 없다.
찾아보니 기능 이름은 repeat rows and panels. 영상 6:28에서 Multi Value를 켜야 한다고 알려준다.
예전에 Public PVE 솔루션도 단순했던 게 떠올랐다.
그래서 말인데 GPT는 참 멍청하다. 계속 믿다 보면 집 팔게 된다 =))
결과

엄청 긴 대시보드가 완성됐다. 시간 변수도 조절 가능. 완전 최고!!!
Comments
Join the conversation
Leave a comment
No comments yet
Be the first to share your thoughts!