Pink Spider/Grafana DashBoard

Created Tue, 20 May 2025 20:20:45 +0900 Modified Mon, 08 Dec 2025 08:41:47 +0900
1898 Words 9 min

Grafana Dashboard 설정

{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": {
          "type": "grafana",
          "uid": "-- Grafana --"
        },
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "editable": false,
  "fiscalYearStartMonth": 0,
  "graphTooltip": 0,
  "links": [],
  "liveNow": false,
  "panels": [
    {
      "datasource": {
        "type": "prometheus",
        "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
      },
      "gridPos": {
        "h": 3,
        "w": 24,
        "x": 0,
        "y": 0
      },
      "id": 1,
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "refId": "A"
        }
      ],
      "type": "welcome"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
      },
      "gridPos": {
        "h": 9,
        "w": 24,
        "x": 0,
        "y": 3
      },
      "id": 123123,
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "refId": "A"
        }
      ],
      "type": "gettingstarted"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
      },
      "gridPos": {
        "h": 15,
        "w": 12,
        "x": 0,
        "y": 12
      },
      "id": 3,
      "links": [],
      "options": {
        "folderUID": "",
        "includeVars": false,
        "keepTime": false,
        "maxItems": 30,
        "query": "",
        "showHeadings": true,
        "showRecentlyViewed": true,
        "showSearch": false,
        "showStarred": true,
        "tags": []
      },
      "pluginVersion": "10.3.3",
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "refId": "A"
        }
      ],
      "title": "Dashboards",
      "type": "dashlist"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
      },
      "gridPos": {
        "h": 15,
        "w": 12,
        "x": 12,
        "y": 12
      },
      "id": 4,
      "links": [],
      "options": {
        "feedUrl": "https://grafana.com/blog/news.xml",
        "showImage": true
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
          },
          "refId": "A"
        }
      ],
      "title": "Latest from the blog",
      "type": "news"
    }
  ],
  "refresh": "",
  "schemaVersion": 39,
  "tags": [],
  "templating": {
    "list": []
  },
  "time": {
    "from": "now-6h",
    "to": "now"
  },
  "timepicker": {
    "hidden": true,
    "refresh_intervals": [
      "5s",
      "10s",
      "30s",
      "1m",
      "5m",
      "15m",
      "30m",
      "1h",
      "2h",
      "1d"
    ],
    "time_options": [
      "5m",
      "15m",
      "1h",
      "6h",
      "12h",
      "24h",
      "2d",
      "7d",
      "30d"
    ],
    "type": "timepicker"
  },
  "timezone": "browser",
  "title": "Home",
  "version": 0,
  "weekStart": ""
}

이 JSON은 Grafana 대시보드 설정 파일입니다. 구체적으로는 Grafana에서 “Home"이라는 이름의 기본 대시보드를 정의한 구성입니다. 아래에 주요 항목들을 설명드리겠습니다.


🔧 개요

  • title: "Home" – 대시보드의 이름
  • schemaVersion: 39 – Grafana에서 사용하는 JSON 스키마 버전
  • editable: false – 이 대시보드는 UI에서 수정할 수 없음
  • timezone: "browser" – 브라우저 시간대 기준으로 데이터 표시
  • refresh: "" – 자동 새로고침 비활성화

🧩 Panels (패널들)

panel은 대시보드의 시각화 구성 요소를 의미합니다.

  1. id: 1

    • type: "welcome" – 환영 패널 (보통 초기 설정에 표시됨)
  2. id: 123123

    • type: "gettingstarted" – 시작 안내용 패널
  3. id: 3

    • type: "dashlist" – 사용자 대시보드 목록 패널

    • options:

      • showStarred: true – 즐겨찾기한 대시보드 보여줌
      • showRecentlyViewed: true – 최근 본 대시보드 보여줌
  4. id: 4

    • type: "news" – Grafana 블로그에서 가져오는 최신 소식 패널
    • options.feedUrl: "https://grafana.com/blog/news.xml"

📊 데이터 소스

모든 패널은 Prometheus 데이터 소스를 사용하고 있습니다.

"datasource": {
  "type": "prometheus",
  "uid": "d594a822-806b-41e9-8c74-135eb41505a2"
}

🕒 시간 설정

  • from: "now-6h" – 6시간 전부터
  • to: "now" – 지금까지의 데이터 범위
  • timepicker – 사용자가 선택 가능한 시간 옵션과 자동 새로고침 간격 설정

📌 Annotation 설정

  • 기본 제공되는 “Annotations & Alerts” 설정이 포함되어 있음 (숨김 처리됨)

dashboard 내용 요약

물론입니다. 아래는 사용자가 나열한 Grafana Dashboard의 각 패널 항목들에 대한 상세 설명입니다. 이 항목들은 주로 JVM 기반 애플리케이션의 성능 모니터링, 시스템 리소스 사용량, DB 연결 상태, HTTP 요청 처리 현황, 그리고 로깅 수준별 통계를 추적하는 데 사용됩니다.


📊 Basic Statistics

1. Uptime

  • 애플리케이션이나 시스템이 현재까지 연속으로 실행된 시간입니다.
  • 장애 및 재시작 여부를 파악하는 데 유용합니다.

2. Heap Used

  • JVM Heap 메모리 중 현재 사용 중인 메모리 양.
  • 객체가 저장되는 주요 영역으로, GC가 가장 자주 일어나는 공간입니다.

3. Non-Heap Used

  • JVM Non-Heap 메모리 중 사용 중인 양.
  • 클래스 메타데이터, 코드 캐시 등 JVM 내부 구조가 저장됩니다.

4. Process Open Files

  • 현재 프로세스에서 열고 있는 파일 디스크립터 수.
  • 리소스 누수 여부나 설정 제한 확인에 유용합니다.

5. CPU Usages

  • 프로세스 또는 시스템 전체의 CPU 사용률.
  • 성능 병목 현상 진단 시 필수 정보입니다.

6. Load Average

  • 시스템의 평균 부하 (일반적으로 1, 5, 15분 간격).
  • CPU 및 I/O 병목을 파악할 수 있습니다.

🧠 JVM Statistics - Memory

7. G1 Eden Space (heap)

  • 새 객체가 생성되는 공간. GC가 자주 발생합니다.

8. G1 Old Gen (heap)

  • 장시간 살아남은 객체들이 저장되는 공간.
  • Full GC의 대상입니다.

9. G1 Survivor Space (heap)

  • Eden을 거쳐 살아남은 객체들이 일시 저장되는 공간입니다.

10. CodeHeap ’non-nmethods’ (non-heap)

  • JVM이 네이티브 메서드가 아닌 코드를 저장하는 공간입니다.

11. CodeHeap ‘non-profiled nmethods’ (non-heap)

  • 프로파일링되지 않은 네이티브 메서드 코드가 저장됩니다.

12. CodeHeap ‘profiled nmethods’ (non-heap)

  • 프로파일링된 네이티브 메서드 코드 저장 공간.

13. Compressed Class Space (non-heap)

  • 클래스 메타데이터가 저장되는 공간 (압축된 포맷).

14. Metaspace (non-heap)

  • 클래스 메타데이터가 저장되는 공간. PermGen의 대체 영역입니다.

15. Threads

  • 현재 JVM 내에서 실행 중인 스레드 수.
  • 병렬성, 동시성, 데드락 등을 분석할 수 있습니다.

16. Direct Buffers

  • Direct ByteBuffer가 사용하는 native 메모리 크기입니다.

17. Mapped Buffers

  • FileChannel.map() 등으로 매핑된 메모리 버퍼의 상태입니다.

18. Memory Allocate/Promote

  • Eden → Survivor → Old Gen으로 객체가 승격되는 메모리 흐름 통계.

♻️ JVM Statistics - GC

19. GC Count

  • Garbage Collection 발생 횟수.
  • Minor/Young GC, Major/Full GC 모두 포함 가능.

20. GC Stop the World Duration

  • GC로 인해 애플리케이션이 일시 정지된 총 시간.
  • 성능에 직접 영향을 주므로 매우 중요합니다.

🛢️ Database Connection Pool - HikariCP Statistics

21. Connections Size / Connection Timeout Count

  • 현재 풀 크기 및 타임아웃 발생 횟수.
  • 연결 부족 여부를 판단할 수 있습니다.

22. Connections

  • 전체 커넥션 수, 사용 중인 커넥션 수, 유휴 커넥션 수 등의 세부 정보.

23. Connection Creation Time

  • 새 DB 커넥션을 생성하는 데 걸린 시간.

24. Connection Usage Time

  • 개별 커넥션이 사용된 시간 (평균, 최대 등).

25. Connection Acquire Time

  • 커넥션 풀에서 커넥션을 얻는 데 걸리는 시간.

🌐 HTTP Statistics

26. Request Count

  • 수신된 HTTP 요청 수.
  • API 호출량, 트래픽을 판단하는 데 사용됩니다.

27. Response Time

  • HTTP 응답 시간 (평균, 최대, 최소 등).
  • 성능 지표 중 핵심입니다.

📜 Logback Statistics

28. INFO logs

  • 일반적인 정보성 로그 수.

29. ERROR logs

  • 시스템 오류 또는 예외 발생 시 로그된 수.

30. WARN logs

  • 잠재적 문제나 주의가 필요한 상황.

31. DEBUG logs

  • 디버깅 목적의 상세 로그.

32. TRACE logs

  • 가장 상세한 수준의 로깅. 모든 호출 흐름 추적 가능.