본문 바로가기

프로젝트/팀 개발일지

[개발일지/Quostomize] 24.12.03 - Grafana 및 Prometheus 적용하기

 ✏️12.3(화) 한 일

1. Grafana 및 Prometheous 개념 정리

📌 세 줄 요약

  • 프로메테우스: 모니터링할 메트릭을 수집하고 저장하는 데 초점이 맞춰진 툴(데이터 수집, 검색, 설정 등)
  • 그라파나: 프로메테우스나 다른 데이터 소스에서 가져온 데이터를 시각화하여 대시보드로 만들어주는 틀
  • 함께 사용: 두 툴은 주로 함께 사용되며, 프로메테우스가 데이터를 수집하고 그라파나가 이를 직관적으로 보여주는 역할을 합니다.
  • ℹ️추가 내용은 [모니터링] Prometheus & Grafana 개념 정리(w. Spring Boot Actuator)을 참고해 주세요!

 

2. Grafana 및 Prometheous Local 환경에서 적용

🔎 프로메테우스 및 그라파나 적용은 모두 위대한 백엔드 팀장님의 정리본을 보고 수월하게 진행할 수 있었습니다.
이 자리를 빌려 다시금 감사 인사를 드립니다. 🙇🏻🙇🏻‍♂️🙇🏻‍♀️

📌프로메테우스 설치 및 설정

  • 설정
    • micrometer-registry-prometheus 라이브러리 추가: Spring Boot Actuator에 /actuator/prometheus 엔드포인트 자동 생성합니다.
  • 수집 설정
    • prometheus.yml 수정: job_name, metrics_path, scrape_interval, targets 설정 → 애플리케이션 메트릭의 주기적 수집을 설정합니다.
    • 수집 주기 기본값은 1m를 권장합니다. (수집 주기가 너무 짧으면 애플리케이션 성능에 영향을 줄 수 있기 때문)
  • 연동 확인
    • 프로메테우스: /actuator/prometheus 호출로 메트릭 수집 정상 작동을 확인합니다.
    • Targets: Status → Targets에서 UP 상태 표시를 확인합니다.
  • 결과
    • 메트릭이 프로메테우스 포맷으로 변환됨을 확인할 수 있습니다.
      • 예시: jvm.info → jvm_info, logback.events → logback_events_total

 

      •  

📌 그라파나 설치 및 연동

  • 설치 및 실행
    • Grafana 공식 사이트에서 윈도우용 설치하였습니다.
    • 압축 해제 후 bin 폴더에서 grafana-server.exe를 실행하였습니다.
    • 브러우저에서 http://localhost;3000으로 접속한 뒤, 로그인하였습니다. (ID: admin, PW: admin)
  • 그라파나와 프로메테우스 연동
    • 데이터 소스 추가
      • 왼쪽 하단 설정 메뉴 > Data Sources > Add data source
      • Prometheus 선택하였습니다.
    • 프로메테우스 설정
      • URL: http://localhost:9000
      • Save & test로 연결 확인하였습니다.

✏️ 12.3(화) 발생한 이슈

📌 그라파나 대시보드 설정 문제

🔎 마감을 준수하기 위해 '직접 설정' 대신 '기존 대시보드 활용, 환경에 맞게 패널 설정'을 수정하였습니다.
  • 이유
    • 대시보드를 직접 설정하는 것은 의미 있는 작업이지만 대시보드의 구조, 데이터 시각화 원리, 데이터 소스 구성 등을 깊이 이해하기 위해서는 3일 이상의 그룹 스터디가 필요할 것으로 예상되었습니다.
    • 그러나 모니터링에 주어진 시간은 2시간에 불과했기 때문에, 이미 만들어진 대시보드를 활용하여 신속하고 효율적으로 모니터링 환경을 구축하였습니다.
  • 설정
    • 스프링 부트 시스템 모니터 대시보드
      • 대시보드 가져오기
        • Grafana Dashboards 접속 >  ID: 11378 (JustAI System Monitor) 복사
        • Grafana 접속 후, Dashboards > New > Import 선택 > ID: 11378 입력 후 Load 클릭 > Prometheus 데이터소스 선택 후 Import 클릭합니다.
      • 수정 작업
        • 대시보드 수정 모드 활성화: Dashboard settings > Make editable.
        • Jetty 통계 → Tomcat 통계로 변경
          • Title 수정: "Jetty Statistics" → "Tomcat Statistics".
          • 패널 설정 변경:
            • jetty_threads_config_max → tomcat_threads_config_max_threads.
            • jetty_threads_current → tomcat_threads_current_threads.
            • jetty_threads_busy → tomcat_threads_busy_threads.
            • 제거: jetty_threads_idle, jetty_threads_jobs.
    • 마이크로미터 대시보드
      • 대시보드 추가
        • JVM Micrometer Dashboard 접속 > ID: 4701 복사
        • Grafana에서 Dashboards > Import 메뉴로 ID 입력 후 불러옵니다.

⏰ 내일 목표

✅ 혜택 변경 API 연결 문제 해결

  • 다른 팀원이 일주일 넘게 시도했으나 혜택 변경 API 연결이 되지 않고 있었습니다.
  • 하위 카테고리 Null issue가 있다고 하여, 이를 해결하기 위해 백엔드 API 개발자인 제가 맡아서 처리해 보기로 했습니다.
  • 문제 해결을 위해 백엔드 API쪽 문제가 맞는지 다시금 점검하고, 필요하다면 수정 후 연결할 예정입니다.

👀 프로젝트가 궁금하다면

반응형