← 홈

📊

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

기초

설치

docker run -d -p 3000:3000 grafana/grafana Docker로 실행
brew install grafana macOS에 설치
sudo apt-get install grafana Ubuntu에 설치
grafana-server 서버 시작
grafana-cli plugins install grafana-piechart-panel 플러그인 설치
grafana-cli plugins list-remote 사용 가능한 플러그인 목록

키보드 단축키

Esc 편집 모드 종료 / 모달 닫기
Ctrl+S 대시보드 저장
E 패널 편집
V 패널 전체화면
P S 패널 공유
D S 대시보드 설정
Ctrl+F 대시보드 검색
Ctrl+H 모든 행 토글
T Z 시간 범위 축소
T Left 시간 뒤로
T Right 시간 앞으로

프로비저닝

데이터 소스

datasources.yml
# /etc/grafana/provisioning/datasources/datasources.yml
apiVersion: 1

datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
    url: http://prometheus:9090
    isDefault: true
    editable: false

  - name: Loki
    type: loki
    access: proxy
    url: http://loki:3100

  - name: InfluxDB
    type: influxdb
    access: proxy
    url: http://influxdb:8086
    database: mydb
    user: admin
    secureJsonData:
      password: secret

  - name: PostgreSQL
    type: postgres
    url: postgres:5432
    database: grafana
    user: grafana
    secureJsonData:
      password: secret
    jsonData:
      sslmode: disable

대시보드 프로비저닝

dashboards.yml
# /etc/grafana/provisioning/dashboards/dashboards.yml
apiVersion: 1

providers:
  - name: "Default"
    orgId: 1
    folder: ""
    type: file
    disableDeletion: false
    updateIntervalSeconds: 10
    options:
      path: /var/lib/grafana/dashboards
      foldersFromFilesStructure: true
대시보드 JSON
{
  "dashboard": {
    "title": "My Dashboard",
    "tags": ["production"],
    "timezone": "browser",
    "refresh": "5s",
    "time": {
      "from": "now-6h",
      "to": "now"
    },
    "panels": [
      {
        "id": 1,
        "title": "CPU Usage",
        "type": "graph",
        "gridPos": { "x": 0, "y": 0, "w": 12, "h": 8 },
        "targets": [
          {
            "expr": "100 - (avg(rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)",
            "legendFormat": "{{instance}}"
          }
        ]
      }
    ]
  }
}

패널 타입

일반 패널

  • 시계열: 시간 기반 데이터용 라인/영역 차트
  • 통계: 선택적 스파크라인이 있는 단일 값
  • 게이지: 최소/최대 임계값이 있는 값
  • 막대 차트: 범주형 비교
  • 테이블: 표 형식 데이터 표시
  • 히트맵: 시간에 따른 분포
  • 로그: 로그 라인 표시 (Loki)
  • 알림 목록: 현재 알림 표시

변수

변수 타입

쿼리 변수
# In Dashboard Settings > Variables

# Prometheus label values
Name: instance
Type: Query
Data source: Prometheus
Query: label_values(up, instance)

# Prometheus label values with filter
Query: label_values(up{job="$job"}, instance)

# Loki label values
Query: label_values({job="$job"}, level)
커스텀 변수
# Custom static values
Name: environment
Type: Custom
Values: dev, staging, prod

# Or comma-separated
Values: dev : Development, staging : Staging, prod : Production
인터벌 변수
# Auto interval based on time range
Name: interval
Type: Interval
Values: 1m, 5m, 10m, 30m, 1h, 6h, 12h, 1d
Auto option: enabled
Min interval: 1m
변수 사용
# In queries
rate(http_requests_total{instance="$instance"}[$interval])

# Multiple selection
rate(http_requests_total{instance=~"$instance"}[$interval])

# In panel titles
CPU Usage - $instance

# Special variables
$__interval      # Auto interval
$__interval_ms   # Auto interval in ms
$__range         # Time range
$__range_s       # Time range in seconds
$__from          # From timestamp (ms)
$__to            # To timestamp (ms)

변환

일반 변환

  • Reduce: 시리즈를 단일 값으로 집계 (last, mean, max 등)
  • Merge: 여러 쿼리를 하나의 테이블로 결합
  • Filter by name: 일치하는 시리즈만 표시
  • Organize fields: 열 재정렬, 이름 변경 또는 숨기기
  • Group by: 필드 값으로 행 그룹화
  • Join by field: 공통 필드에서 외부 조인
  • Add field from calculation: 계산된 열 생성
  • Sort by: 필드 값으로 행 정렬

알림

알림 규칙

알림 생성
# Alert rule structure
1. Query and condition
   - Query: rate(http_errors_total[5m]) / rate(http_requests_total[5m])
   - Condition: IS ABOVE 0.05

2. Evaluation behavior
   - Evaluate every: 1m
   - For: 5m (pending period)

3. Add details
   - Rule name: High Error Rate
   - Folder: Production
   - Group: HTTP Alerts
   - Summary: Error rate is {{ $values.A }}%
   - Description: Check the application logs

4. Notifications
   - Contact point: Slack, Email, PagerDuty, etc.
알림 어노테이션
# Available template variables in annotations
{{ $labels }}           # All labels
{{ $labels.instance }}  # Specific label
{{ $values }}           # All values
{{ $values.A }}         # Specific value (query refId)
{{ $value }}            # Alert value
{{ humanize $value }}   # Human readable value
{{ humanizePercentage $value }}  # As percentage
{{ humanizeDuration $value }}    # As duration

연락처 포인트

알림 템플릿
# Custom template example
{{ define "slack.message" }}
{{ range .Alerts }}
*Alert:* {{ .Labels.alertname }}
*Severity:* {{ .Labels.severity }}
*Instance:* {{ .Labels.instance }}
*Summary:* {{ .Annotations.summary }}
*Value:* {{ .Values.A }}
{{ end }}
{{ end }}

HTTP API

API 예제

curl -H "Authorization: Bearer TOKEN" http://localhost:3000/api/org 현재 조직 가져오기
curl -H "Authorization: Bearer TOKEN" http://localhost:3000/api/dashboards/db/my-dashboard 대시보드 가져오기
curl -H "Authorization: Bearer TOKEN" http://localhost:3000/api/search?query=cpu 대시보드 검색
curl -X POST -H "Content-Type: application/json" -d @dashboard.json http://localhost:3000/api/dashboards/db 대시보드 생성
curl -H "Authorization: Bearer TOKEN" http://localhost:3000/api/datasources 데이터 소스 목록
curl -H "Authorization: Bearer TOKEN" http://localhost:3000/api/alerts 알림 목록

설정

grafana.ini

일반 설정
[server]
http_port = 3000
domain = grafana.example.com
root_url = https://grafana.example.com/

[database]
type = postgres
host = localhost:5432
name = grafana
user = grafana
password = secret

[auth]
disable_login_form = false
disable_signout_menu = false

[auth.anonymous]
enabled = true
org_role = Viewer

[auth.github]
enabled = true
client_id = xxx
client_secret = xxx
allowed_organizations = my-org

[smtp]
enabled = true
host = smtp.gmail.com:587
user = alerts@example.com
password = secret
from_address = alerts@example.com

[log]
mode = console file
level = info