그라파나(Grafana)란?
시간이 지남에 따라 추이가 변하는 데이터를 메트릭(Metric)이라 부른다. CPU 사용률, 메모리 사용률, 트래픽 등이 메트릭(Metric)에 해당된다. 메트릭은 시간별로 데이터가 수집되기에 그 양이 많다. 그래서 외부에 메트릭을 저장하는 DB를 두는데, 대표적으로 프로메테우스(Prometheus)가 있다.
프로메테우스는 일정시간 간격으로 App에 접근하여 메트릭 데이터를 수집한다. 프로메테우스는 메트릭을 저장하는 기능에 특화되어 있지만 추이를 시각화하는데는 특화되어 있지 않다. 그래서 프로메테우스 DB에 원격으로 쿼리를 날려 데이터를 가져와 시각화하는 툴(Tool)이 필요한데, 그것이 그라파나(Grafana)이다.
SpringBoot와 Prometheus 연동은 이전 포스팅에서 다루어보았다.
이번 포스팅에서는 Grafana와 Prometheus를 연동해보겠다.
1. Grafana 설치하기 ( Grafana 버전 : grafana-9.5.2 )
위 링크에 가서 Grafana를 설치한다. ( MacOS를 기준 설명하겠다 )
압축을 풀고 터미널에서 bin폴더로 이동하여 Grafana 서버를 실행한다.
실행명령어 : ./grafana-server
Grafana 화면이 열리면 ID/Password 를 admin/admin으로 로그인한다.
해당 화면이 열리면 Grafana 서버가 정상동작중임을 의미한다.
2. Grafana - Prometheus 연동하기
네비게이션에서 You connections 탭을 클릭한다.
Add DataSources를 클릭하고 Prometheus를 선택한다.
URL에 프로메테우스 로컬서버 주소인 http://localhost:9090을 넣어준다.
저장을 눌러 위와 같은 화면이 나오면 정상 연동이 되었음을 의미한다.
3. 대시보드 만들기
네비게이션에서 DashBoards를 클릭한다.
New DashBoard 를 클릭한다.
Add visualization을 클릭한다.
그럼 위와 같은 화면이 나온다.
하단은 쿼리를 날리는 영역이다. 쿼리를 넣고 Run queries 버튼을 누르면 Prometheus에서 데이터를 가져와 시각화한다.
쿼리 : system_cpu_usage
( 전체 시스템의 CPU 사용량을 나타낸다. )
그럼 JVM 프로세스 CPU 사용량도 포함해보자.
쿼리 : process_cpu_usage
( JVM 프로세스의 CPU 사용량을 나타낸다. )
연동해놓은 SpringBoot 프로젝트가 깡통이라 그래프에 고도는 없지만 노란색선이 생성 되었다.
우측 상단 Apply를 누르면 대시보드에 방금 만든 판넬이 추가되었음을 알수 있다. 이런 방식으로 원하는 메트릭을 가져와 그 추이를 시각화할 수 있다.
4. 공유 대시보드 활용하기
Grafana는 다양한 사람이 자신의 대시보드를 공유할 수 있는 환경을 제공한다.
위 링크로 들어가 템플릿 하나를 선택한다. 우리는 Spring 프로젝트이니 검색창에 Spring이라 검색하여 나오는 템플릿을 사용한다. 그리고 템플릿의 ID를 복사한다.
좌측 네비게이션에서 대시보드를 클릭한다.
그러면 위 화면이 나오는데 NEW 버튼 누르고 Import를 클릭한다.
Import 화면이다. Load 버튼이 있는 란에 복사한 템플릿ID를 넣고 우측 Load 버튼을 누른다.
가장 하단에 프로메테우스로 설정하고 Import버튼을 누른다.
생성된 대시보드를 클릭한다.
그럼 Application을 운영하는데 필요한 기본적인 메트릭의 추이를 한눈에 확인할 수 있다. 여기서 필요한 부분은 추가하고 불필요한 부분은 제거하여 커스터마이징하면 된다.
참고자료