Grafana Stat Panel을 사용한 데이터 시각화 가이드
이 포스트에서는 데이터베이스 테이블의 HTTP status code 비율을 Grafana Stat Panel을 사용하여 시각화하는 방법을 간단히 설명합니다.
이 과정을 통해 데이터베이스의 로그 데이터를 효과적으로 분석하고, 직관적인 대시보드를 구축할 수 있습니다.
목차
1. 준비 작업
2. Grafana Stat Panel 설정
3. 결과
4. 결론
1. 준비 작업
Grafana에서 데이터를 시각화하기 위해 데이터 소스를 설정해야 합니다. 테이블이 저장된 데이터베이스(예: Clickhouse, PostgreSQL, MySQL, OpenTelemetry가 연결된 데이터 소스)를 Grafana에 추가합니다.
이 포스트에서는 Clickhouse Database를 사용합니다.
1. Grafana 대시보드에 로그인 후 좌측 메뉴에 Connections > Data sources를 클릭하여 사용하고 있는 데이터베이스를 추가합니다.

2. 아래와 같은 테이블에 HTTP 요청에 대한 로그 데이터가 포함되어 있다고 가정합니다. 이 테이블에는 최소한 다음과 같은 컬럼이 있다고 가정합니다.
- statusCode – HTTP 응답 상태 코드
- host – 요청이 발생한 호스트
- path – 요청 URL 경로

2. Grafana Stat Panel 설정
1. Grafana 대시보드에서 Add > Visualization을 선택합니다.
2. 패널 유형으로 Stat을 선택합니다.

3. Stat Panel에서 제공된 쿼리를 사용하여 성공 상태 코드(200~399)의 비율을 계산합니다. 아래는 사용된 쿼리입니다.
WITH (
SELECT count()
FROM table
) AS total
SELECT
(count() * 100.0) / total AS percentage
FROM table
WHERE statusCode BETWEEN 200 AND 399

우측 옵션 중 Standard options > Unit > Misc > Percent를 선택하여 퍼센트로 나타낼 수 있습니다.

우측 옵션 중 Thresholds의 값을 입력하여 퍼센트별 색상을 변경할 수 있습니다.

3. 결과

위와 같이 200~399대의 응답 퍼센트와 400~599 에러 퍼센트를 확인할 수 있습니다.
이로서 성공 응답과 에러 응답의 비율을 즉시 비교할 수 있고, 시스템의 전반적인 안정성과 오류 발생 빈도를 직관적으로 확인할 수 있습니다.
에러 비율이 비정상적으로 높아지면 문제를 빠르게 시스템의 건강 상태를 빠르게 파악하고 감지할 수 있습니다.
4. 결론
위의 쿼리를 활용하여 Stat Panel로 테이블의 성공 상태 코드 비율을 효과적으로 시각화할 수 있습니다. 추가적으로 Grafana의 동적 변수를 추가하여 host, path 별 응답 비율을 보다 자유롭게 나타낼 수 있습니다.
이를 통해 시스템 성능을 바르게 모니터링하고 이상 징후를 감지할 수 있습니다. 추가 패널과 결합하면 더욱 풍부한 대시보드를 구성할 수 있습니다.
- 분포 데이터를 Grafana Pie Chart Panel을 사용하여 시각화
- API 호출량을 Grafana Time Series Panel로 시각화하여 모니터링 강화
- Grafana Gauge Panel을 사용한 데이터 시각화 가이드
위 블로그 외에도 NGINX STORE에서 더욱 많은 포스트를 확인할 수 있습니다. 또한 Grafana의 구성이 필요하시다면 NGINX STORE에 연락하여 논의하십시오.
댓글을 달려면 로그인해야 합니다.