쿼리와 데이터 변환 — 패널에 데이터를 채우는 방법
쿼리와 데이터 변환 — 패널에 데이터를 채우는 방법
패널이 화려하게 보이는 것도 좋지만, 그 밑에는 '어떤 쿼리로 어떤 데이터를 가져올지'라는 핵심 질문이 있어요. Grafana에서 쿼리는 데이터 소스가 반환하는 데이터를 패널이 시각화하도록 만드는 요청이에요. 이번 장에서는 쿼리를 어떻게 추가하고, 여러 쿼리를 관리하며, 데이터가 패널에 알맞게 들어오도록 다듬는 법을 살펴볼게요.
본문
쿼리란 무엇인가요? 쿼리는 Grafana가 패널에 시각화할 데이터를 데이터 소스에서 가져오는 요청이에요. 패널을 만들면 Grafana는 자동으로 기본 데이터 소스를 선택해요.
쿼리 에디터. 데이터 소스마다 저마다의 쿼리 에디터가 있어요. Grafana에 포함된 핵심 데이터 소스는 각각의 문서에서 쿼리 에디터 사용법을 알려주고, 플러그인으로 설치한 데이터 소스는 플러그인 카탈로그의 자기 문서를 참조해요.
특수 데이터 소스. Grafana에는 Grafana, Mixed, Dashboard라는 세 가지 특수 데이터 소스도 있어요. Mixed 데이터 소스는 패널 하나에서 서로 다른 데이터 소스를 섞어 쓸 때, Dashboard 데이터 소스는 이미 다른 대시보드에 있는 패널의 쿼리를 재사용할 때 유용해요.
쿼리 추가하기. 새 대시보드의 첫 패널을 추가할 때는 데이터 소스를 선택하라는 안내가 나와요. 쿼리를 추가하는 순서는 다음과 같아요.
- 쿼리를 추가할 패널을 편집해요.
- Query 탭을 클릭해요.
- Data source 드롭다운 메뉴에서 데이터 소스를 선택해요.
- 쿼리가 반환하는 데이터를 패널이 시각화해요.
쿼리 관리하기. Grafana는 쿼리를 접을 수 있는 쿼리 행(query rows)으로 구성해요. 각 쿼리 행에는 쿼리 에디터가 있고 A, B, C처럼 알파벳으로 식별돼요. 쿼리 행을 추가·제거·재정렬하고, 각 쿼리를 개별적으로 비활성화하거나 데이터 소스로 보내기 전에 재작성하는 등 다양한 조작이 가능해요. 쿼리 옵션(Query options)에서는 최대 데이터 포인트, 최소 간격(Minimum interval), 시간 범위(time range) 등을 조정할 수 있어요.
저장하지 않고도 쿼리 결과 미리 보기. 쿼리 결과는 패널에 저장하지 않아도 바로 확인할 수 있어요. 쿼리 에디터에서 데이터를 저장하기 전에 결과가 어떤지 미리 살펴보고 조정하면, 대시보드에 원하는 데이터가 정확히 들어가도록 다듬을 수 있어요.
데이터 변환(Transformations). 원본 쿼리 결과를 그대로 쓰지 않고 가공해야 할 때는 변환을 적용해요. 변환은 패널의 시각화 직전에 쿼리 결과의 형태를 바꾸는 단계예요. 예를 들어 필터로 관심 있는 시리즈만 남기거나, 두 개의 쿼리 결과를 조인하거나, 필드 값을 계산해서 새 필드를 만드는 것 등이 가능해요. 데이터 소스에서 처리하기 어려운 연산을 Grafana 쪽에서 마무리 지을 때 특히 유용해요.
쿼리 예시와 구문. 데이터 소스에 따라 쿼리 구문이 달라요. Prometheus라면 PromQL, InfluxDB라면 InfluxQL/Flux처럼요. 쿼리 에디터가 제공하는 자동 완성과 구문 강조를 활용하면 데이터 소스별 구문을 더 쉽게 익힐 수 있어요. 관련된 쿼리 예시는 각 데이터 소스 문서에서 확인할 수 있어요.