Homelab #18 Grafana 커스텀 대시보드 />
HOMELAB

Homelab #18 Grafana 커스텀 대시보드

Thất Nghiệp Thất Nghiệp
Oct 23, 2025 1 min read 0 조회
블로그로 돌아가기

Grafana를 처음 세팅할 때는 템플릿 기반의 기본 대시보드만 만들었다. 내가 돌리는 Debian VPS 모니터링용이었다. 화면은 이런 느낌이다.
Grafana를 처음 세팅할 때는 템플릿 기반의 기본 대시보드만 만들었다
원래는 이것만 봤는데, Prometheus를 Gethomepage 대시보드에 직접 뿌린 뒤부터는 Grafana에 관심이 덜해졌다.
필요한 건 이미 여기에 다 있었기 때문이다.
필요한 건 이미 여기에 다 있었기 때문이다
그래도 Grafana를 제대로 세팅해 두는 게 맞다. 데이터는 결국 Grafana에 쌓이고, 과거까지 볼 수 있으며, 네트워크 트래픽 분석 등 핵심 작업이 여기에 있기 때문이다.
그래서 오늘, 내 Grafana를 다시 닦아보기로 했다.

1. ChatGPT로 기본 Overview

몇 개의 프롬프트로 대충 물어봤더니 JSON을 바로 import하면 된다고 해서 GPT에게 맡겼다. 결과는 이랬다. 기대한 수준은 아니었다.
1. ChatGPT로 기본 Overview - Grafana를 처음 세팅할 때는 템플릿 기반의 기본 대시보드만 만들었다
몇 번 더 시도했더니 이렇게 나왔다.
1. ChatGPT로 기본 Overview - Grafana를 처음 세팅할 때는 템플릿 기반의 기본 대시보드만 만들었다
하지만 내 Use Case에는 맞지 않았다. 여러 시간 구간을 모니터링하고 싶은데, 이 방식은 내 기존 대시보드 방식의 쿼리를 그대로 사용했기 때문이다.
1. ChatGPT로 기본 Overview - Grafana를 처음 세팅할 때는 템플릿 기반의 기본 대시보드만 만들었다

2. 몇 가지 분석

Variable

Variable - 몇 개의 프롬프트로 대충 물어봤더니 JSON을 바로 import하면 된다고 해서 GPT에게 맡겼다
위에 보이는 것들이 Variable이다.
Variable - 몇 개의 프롬프트로 대충 물어봤더니 JSON을 바로 import하면 된다고 해서 GPT에게 맡겼다
쿼리에서 이렇게 쓴다.
100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle", instance="$node"}[$__rate_interval])))
핵심은 [$__rate_interval]로, 시간 범위에 맞춰 데이터를 필터링할 수 있다.

이번 목표

Grafana 쿼리가 Prometheus 화면처럼 보이게 만들기.
이번 목표 - 위에 보이는 것들이 Variable이다
직접 넣으면 원하는 값처럼 나온다.
이번 목표 - 위에 보이는 것들이 Variable이다
다음은 시간 variable을 적용하는 것.
이번 목표 - 위에 보이는 것들이 Variable이다
두 가지 Variable을 써봤지만 동작하지 않았다.

문제는 어디에?

$__rate_interval vs $__range를 이해해야 했다.

이것이 $__rate_interval
문제는 어디에? - $__rate_interval vs $__range를 이해해야 했다

그리고 이것이 $__range
문제는 어디에? - 이것이 $__rate_interval

단위가 GB로 나온 건 변환을 안 했기 때문이고 디버깅용이었다. 이제 두 개의 차이가 보인다.
$__range는 label에 매핑된다.
문제는 어디에? - 그리고 이것이 $__range
label을 바꾸면 데이터도 바뀐다.

성공

성공 - 단위가 GB로 나온 건 변환을 안 했기 때문이고 디버깅용이었다
성공 - 단위가 GB로 나온 건 변환을 안 했기 때문이고 디버깅용이었다
성공 - 단위가 GB로 나온 건 변환을 안 했기 때문이고 디버깅용이었다

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

목표 2

목표 2 - 그래도 이 그래프는 좀 안 어울리는 듯하지만 일단은 둔다
win-4를 다른 값으로 바꿀 수 있어야 한다.

초기 아이디어

이 Variable 전체를 복사해서 옮긴다.
초기 아이디어 - win-4를 다른 값으로 바꿀 수 있어야 한다
하지만 VPS에만 적용되어 안 된다.
Windows Exporter까지 포함하는 변수가 필요했고, 답은 up이었다.
초기 아이디어 - win-4를 다른 값으로 바꿀 수 있어야 한다
이제 적용해본다.
초기 아이디어 - win-4를 다른 값으로 바꿀 수 있어야 한다
잘 된다.
그런데 가족을 데리러 가야 해서 잠깐 중단.
~4시간 후
다시 시작.

목표 3

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

결과

결과 - 이걸 22개로 복제하되 변수만 다르게
엄청 긴 대시보드가 완성됐다. 시간 변수도 조절 가능. 완전 최고!!!

이 글 공유하기

Twitter LinkedIn
Thất Nghiệp

Thất Nghiệp 작성

깔끔한 코드, 창의적인 자유, 완벽한 개발 환경을 추구하는 개발자. 하나의 컴포넌트씩 디지털 공간을 만들어가고 있습니다.

Comments

Join the conversation

Leave a comment

Won't be published

이런 글도 있어요