Grafana 대시보드 개요
Grafana 대시보드 개요 (Grafana dashboards overview)
대시보드가 정확히 무엇일까요? 관측 가능성(observability) 세계에서 자주 쓰이는 용어지만, 그 개념은 자동차에서 빌려온 것이에요. 자동차 대시보드가 운전자에게 차량을 조작하는 데 필요한 컨트롤을 제공하듯, 디지털 대시보드는 시스템을 이해하고 관리하게 도와줘요. 이 글은 Grafana 대시보드가 어떻게 동작하는지 설명해서 여러분이 더 쉽게 직접 만들 수 있게 해줘요.
출처: 문서
본문
Grafana 대시보드는 데이터를 그래프·차트·기타 시각화로 아름답게 보여주는 패널(panels)들로 구성돼요. 패널은 데이터 소스의 원시 데이터를 시각화로 변환하는 컴포넌트로 만들어지며, 그 과정은 데이터가 세 개의 게이트(gate)를 통과하는 것으로 이뤄져요: 플러그인(plugin), 쿼리(query), 선택적 변환(transformation).
데이터 소스 (Data sources)
데이터 소스란 데이터를 담고 있는 어떤 엔티티든 가리켜요. SQL 데이터베이스, Grafana Loki, Grafana Mimir, JSON 기반 API, 심지어 기본 CSV 파일이 될 수도 있어요. 대시보드 시각화를 만드는 첫 단계는 필요한 데이터를 담은 데이터 소스를 선택하는 것이에요. 각 데이터 소스는 고유한 구조와 쿼리 방식을 가지므로 구분이 어려울 수 있지만, 대시보드에서는 다양한 데이터 소스를 하나의 뷰에 함께 시각화해 데이터를 전반적으로 이해하기 쉽게 해줘요.
플러그인 (Plugins)
Grafana 플러그인은 Grafana에 새로운 기능을 추가하는 소프트웨어예요. 여러 유형이 있지만 여기서는 데이터 소스 플러그인을 다뤄요. 데이터 소스 플러그인의 역할은 답을 원하는 쿼리를 받아 데이터 소스에서 데이터를 가져오고, 데이터 소스의 데이터 모델과 Grafana 대시보드의 데이터 모델 사이의 차이를 조정하는 것이에요. 이를 위해 **데이터 프레임(data frame)**이라는 통일된 데이터 구조를 사용해요. 데이터 소스에서 플러그인으로 들어오는 데이터는 다양한 포맷(JSON, 행·열, CSV 등)일 수 있지만, 플러그인을 떠나 나머지 게이트를 거쳐 시각화로 갈 때는 항상 데이터 프레임이에요.
현재 Grafana는 사용할 수 있는 다양한 155개 데이터 소스를 제공하며, 가장 흔한 옵션은 미리 설치되어 접근 가능해요. 다른 옵션을 살펴보기 전에 요구사항과 맞는 기존 데이터 소스가 있는지 찾아보세요. 적합한 데이터 소스가 없으면 플러그인 카탈로그를 찾아보거나 플러그인을 직접 만들 수도 있어요.
쿼리 (Queries)
쿼리는 전체 데이터를 특정 데이터셋으로 줄여 더 관리하기 쉬운 시각화를 제공해요. 시스템과 운영 프로세스에 대한 질문에 답을 도와주죠. 예를 들어 온라인 스토어를 운영하는 회사가 장바구니에 상품을 추가하는 고객 수를 알고 싶다면, 장바구니 서비스의 접근 메트릭을 집계해 초당 서비스에 접근하는 사용자 수를 보여주는 쿼리로 알아낼 수 있어요.
데이터 소스를 다룰 때 중요한 점은 각각 고유한 쿼리 언어를 가진다는 것이에요. 예를 들어 Prometheus 데이터 소스는 PromQL을, 로그는 LogQL을, 특정 데이터베이스는 SQL을 사용해요. 쿼리는 Grafana에서 모든 시각화의 기초이며, 대시보드는 여러 쿼리 언어를 쓸 수 있어요.
변환 (Transformations)
시각화의 데이터 포맷이 요구사항을 충족하지 않으면 쿼리가 반환한 데이터를 조작하는 변환(transformation)을 적용할 수 있어요. 처음 시작할 때는 필요 없을 수 있지만 강력해서 언급할 가치가 있죠. 변환은 다음과 같은 상황에서 유용해요:
- 두 필드를 결합하려 할 때 — 예:
Given Name과Family Name을Full Name필드로 연결. - 텍스트로만 된 CSV 데이터에서 필드 타입을 변환하려 할 때 — 예: 문자열에서 날짜나 숫자 파싱.
- 기반 데이터 소스나 쿼리 언어가 지원하지 않을 수 있는 필터·조인·병합·기타 SQL류 작업을 하려 할 때.
변환은 패널 편집 대화상자의 Transform 탭에 있어요. 쿼리처럼 변환도 원하는 만큼 여러 개 가질 수 있고, 데이터 타입 변경, 결과 필터링, 컬럼 정리, 정렬을 하나의 데이터 파이프라인으로 연결(chaining)할 수 있어요. 대시보드가 새로고침될 때마다 변환은 데이터 소스의 최신 데이터에 적용돼요.
패널 (Panels)
데이터가 소싱·쿼리·변환된 뒤에는 마지막 게이트인 패널로 전달돼요. 패널은 시각화를 표시하고 이를 조작할 다양한 컨트롤을 제공하는 컨테이너예요. 패널 구성은 데이터를 어떻게 보고 싶은지 지정하는 곳이에요. 예를 들어 패널 오른쪽 위의 드롭다운 메뉴로 막대 차트(bar chart), 파이 차트(pie chart), 히스토그램 같은 시각화 유형을 지정해요. 패널 옵션은 선택한 시각화에 따라 달라지며, 패널에는 패널이 시각화하는 데이터를 지정하는 쿼리도 포함돼요.
최적의 시각화 선택은 데이터와 그 표현 방식에 달려 있어요. 대시보드 예제를 한곳에서 살펴보고 싶다면 Grafana Play를 참고하세요 — 기능 쇼케이스와 다양한 예제가 있어요.
결론
데이터 소스·플러그인·쿼리·변환·패널 모델을 알면 이제 어떤 Grafana 대시보드든 바로 이해하고 직접 만드는 방법을 상상할 수 있어요. 대시보드 구축은 대시보드 요구사항을 정하고 이를 지원하는 데이터 소스를 식별하는 과정에서 시작돼요. 특수 데이터베이스를 통합하려면 올바른 플러그인을 설치해 그 플러그인과 쓸 데이터 소스를 추가할 수 있는지 확인해야 해요. 이 컴포넌트 아키텍처가 Grafana를 강력하고 범용적으로 만드는 이유 중 하나이며, 데이터 소스 플러그인과 데이터 프레임 추상화 덕분에 접근 가능한 어떤 데이터 소스든 같은 일반적인 접근 방식으로 동작해요.