← 이슈 기록 목록

빈 그래프의 원인을 3주 만에 찾은 이야기

PromQLPrometheusMonitoring

01이슈 및 현상

새로 만든 GPU 모니터링에서 노드 탭은 정상인데 가상머신(VM) 탭의 그래프가 비어 있거나 이상한 값을 보였고, 원인을 찾는 데 약 3주가 걸렸습니다.

02원인 파악

PromQL은 라벨 선택자가 틀려도 에러 없이 빈 결과를 반환해 '데이터 없음'과 '쿼리 오류'가 구분되지 않았습니다. 원인은 세 겹이었는데, VM 조회에 namespace=cluster를 쓴 것(VM은 자신의 project namespace에 존재), 노드/VM의 집계 방식(avg by+정규식 vs 무집계+완전일치)이 탭과 뒤바뀐 것, 기본 분기를 VM으로 둔 것이었습니다.

03해결 방안

VMS 상수를 신설해 분기를 명시적으로 뒤집고, 기본을 노드 집계형으로 정리한 뒤 VM만 namespace=selected.project와 pod 완전 일치로 예외 처리했습니다. GPU RAM 쿼리에도 같은 수정을 적용하고, 이어서 빈 데이터 안내 메시지와 조회 스피너를 추가했습니다.

04결과 및 성과

가상머신 탭 지표가 정확히 조회되도록 바로잡았습니다. 빈 데이터·조회 중·오류를 구분해 보여주게 되어, 같은 유형의 조용한 실패를 다음엔 빠르게 진단할 수 있는 장치까지 함께 갖췄습니다.