Grafana Reference
Grafana 대시보드 모니터링 레퍼런스
Grafana Reference 소개
이 Grafana 레퍼런스는 Grafana 옵저버빌리티 플랫폼 설정을 위한 검색 가능한 치트시트입니다. 대시보드 JSON 모델 구조, 템플릿 변수($variable 구문, 쿼리/커스텀/인터벌/다중값/연쇄 변수), 대시보드 어노테이션, 링크, YAML 설정 파일 기반 프로비저닝을 다룹니다.
시계열, 통계, 테이블, 게이지 패널 타입과 필드 설정 및 임계값 예제, PromQL 표현식을 사용한 알림 규칙, 연락 채널(Slack, Email, PagerDuty) 설정, 알림 정책과 라우팅, 무음/음소거 타이밍, Prometheus/Loki/InfluxDB/Elasticsearch 데이터소스 프로비저닝도 포함합니다.
DevOps 엔지니어, SRE, 플랫폼 엔지니어, 모니터링 전문가가 Grafana 대시보드 JSON 스니펫, 변수 구문, 알림 설정, 데이터소스 YAML 템플릿, 플러그인 개발 패턴, Grafana HTTP API 엔드포인트에 빠르게 접근할 수 있도록 설계되었습니다.
주요 기능
- 패널 배열, 시간 범위 설정, 프로비저닝 YAML이 포함된 대시보드 JSON 모델
- 쿼리, 커스텀, 인터벌, 다중값, 연쇄 변수 패턴을 다루는 템플릿 변수 레퍼런스
- 시계열, 통계, 테이블, 게이지 타입의 패널 설정과 임계값 및 오버라이드
- PromQL 알림 규칙, 연락 채널, 알림 정책, 음소거 타이밍을 포함한 Grafana Alerting 설정
- Prometheus, Loki, InfluxDB, Elasticsearch용 데이터소스 프로비저닝 YAML
- create-plugin CLI를 활용한 커스텀 패널 및 데이터소스 플러그인 개발 가이드
- Bearer 토큰 인증을 사용한 대시보드 CRUD 작업 Grafana HTTP API 예제
- 대시보드, 패널, 변수, 알림, 데이터소스, 플러그인 카테고리별 필터링
자주 묻는 질문
Grafana 대시보드를 JSON으로 어떻게 정의하나요?
Grafana 대시보드 JSON 모델은 title, panels 배열, time 범위(from/to)를 포함하는 dashboard 객체로 구성됩니다. 각 패널은 type(timeseries, stat, table, gauge), 데이터소스 쿼리가 포함된 targets, 단위와 임계값을 위한 fieldConfig를 지정합니다. Grafana UI나 API를 통해 JSON으로 가져오기/내보내기할 수 있습니다.
Grafana에서 템플릿 변수는 어떻게 작동하나요?
템플릿 변수는 쿼리에서 $variable 또는 ${variable}로 참조합니다. 쿼리 변수는 데이터소스에서 값을 가져오고(예: label_values(up, instance)), 커스텀 변수는 쉼표로 구분된 정적 값을 사용하며, 인터벌 변수는 rate 쿼리를 위한 시간 범위를 정의하고, 연쇄 변수는 하나를 변경하면 다른 것이 자동 갱신되는 종속 드롭다운을 만듭니다.
Grafana 알림을 어떻게 설정하나요?
PromQL 표현식으로 알림 규칙을 정의하고(예: avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) < 0.2), "for" 파라미터로 평가 기간을 설정하며, 심각도 라벨을 추가하고, 주석을 구성합니다. 연락 채널(Slack 웹훅, Email, PagerDuty)과 라벨 매칭으로 알림을 라우팅하는 알림 정책을 설정합니다.
데이터소스 프로비저닝은 어떻게 하나요?
/etc/grafana/provisioning/datasources/에 YAML 파일을 생성합니다. 각 데이터소스 항목에 name, type(prometheus, loki, influxdb, elasticsearch), URL, access 모드가 필요합니다. Prometheus는 url을 http://prometheus:9090으로 proxy access와 함께 설정합니다. Loki는 maxLines와 트레이스 연동을 위한 derivedFields를 선택적으로 구성합니다.
Grafana에서 지원하는 패널 타입은 무엇인가요?
주요 패널 타입에는 메트릭 시각화를 위한 Time Series, 단일 값 표시를 위한 Stat, 표 형태 데이터를 위한 Table, 임계값 기반 시각화를 위한 Gauge가 있습니다. 각 패널은 시리즈별 커스터마이징을 위한 필드 설정 오버라이드를 지원합니다.
커스텀 Grafana 플러그인은 어떻게 개발하나요?
npx @grafana/create-plugin@latest로 플러그인 프로젝트를 생성합니다. 패널 플러그인은 시각화 컴포넌트를 정의하고, 데이터소스 플러그인은 DataSourceApi를 확장하여 DataQueryRequest 객체를 처리하는 query 메서드를 구현합니다. plugin.json에 type, name, 고유 id를 정의합니다.
Grafana HTTP API는 어떻게 사용하나요?
Authorization 헤더에 Bearer 토큰으로 인증합니다. GET /api/search?type=dash-db로 대시보드 목록을 조회하고, POST /api/dashboards/db에 JSON 본문으로 대시보드를 생성 또는 업데이트합니다. 대시보드, 데이터소스, 알림 규칙, 사용자 관리에 대한 전체 CRUD 작업을 지원합니다.
이 Grafana 레퍼런스는 무료인가요?
네, 이 Grafana 치트시트는 계정 등록 없이 완전 무료입니다. 모든 대시보드 JSON 스니펫, 변수 구문, YAML 설정을 브라우저에서 카테고리별로 검색하고 필터링할 수 있습니다. liminfo.com의 무료 DevOps 레퍼런스 도구 모음의 일부입니다.