Grafana
그라파나는 수집한 메트릭을 시각화해주는 오픈소스 라이브러리이다.
이전 글에서 스프링부트 액추에이터가 제공하는 메트릭을 프로메테우스로 수집하고 각종 연산을 할 수 있었다.
프로메테우스에서도 간단한 시각화를 지원하지만 여러 지표들을 시각화하기에는 불편함이 많다.
그라파나는 데이터 시각화에 초점을 둔 라이브러리라고 할 수 있다.
아래 사진은 스프링 액추에이터, 프로메테우스, 그라파나를 이용한 모니터링 과정의 대략적인 흐름이다.
액추에이터가 메트릭을 제공하고 프로메테우스는 마이크로미터 구현체가 변환한 데이터를 수집하고 그라파나로 시각화한다.
사용 기술
- Spring Boot 3.2.4 / gradle-kotlin
- Java 17
- Spring Boot Actuator, Prometheus, Grafana
써보기
프로메테우스를 설치 과정은 이전 글을 참고한다.
이번 글에서는 프로메테우스 서버까지 띄운 상태라고 생각하고 그라파나를 사용해볼 것이다.
보안 설정도 해야하겠지만 우선은 써보는데에 목적을 갖고 가장 간단한 방식으로 구현하려 한다.
순서는 아래와 같다.
- 로컬에 그라파나 설치
- 로컬에서 그라파나 접속
- 그라파나 Data Sources 설정
- 그라파나 대시보드 생성
- 결과 확인
1. 로컬에 그라파나 설치
원하는 버전을 설치해도 되지만 본인은 그라파나 최신 버전을 설치하였다.
압축 파일을 압축 해제하고 bin 폴더의 grafana-server.exe 파일을 실행한다.
2. 로컬에서 그라파나 접속
그라파나의 기본 포트번호는 3000번이다.
localhost:3000으로 접속하면 아래와 같은 화면이 나온다.
ID: admin / PW: admin 으로 접속한다.
접속하면 비밀번호를 변경하라고 나오는데 스킵해도 된다.
3. 그라파나 Data Sources 설정
3-1. Data Sources 페이지로 이동
아래처럼 좌상단의 햄버거 버튼을 누르고 Connections 탭의 Data Sources 설정에 들어간다.
처음 접속하면 Data Sources가 아무것도 없을테니 아래처럼 Add data source 버튼을 눌러서 추가해준다.
3-2. Data Source 추가
우리는 프로메테우스를 시각화할 예정이므로 프로메테우스를 선택한다.
이름은 원하는대로 설정해도 되고 프로메테우스 서버 URL을 아래처럼 http://localhost:9090으로 설정해주자.
이전 글에서도 언급했지만 프로메테우스 서버의 기본 포트번호는 9090이다.
프로메테우스 서버가 잘 떠있다면 아래처럼 Save & test 버튼 클릭 시 성공했다는 팝업창이 뜰것이다.
4. 그라파나 대시보드 생성
그라파나에서는 잘 만들어둔 대시보드를 공유한다.
우선은 만들어진 공유 대시보드를 사용해보자.
4-1. 공유 대시보드 검색
위 링크에 들어가면 아래처럼 검색창이 나온다.
여기에 spring을 치면 인기순으로 나오는 공유 대시보드가 나온다.
이런 식으로 잘 만들어진 공유 대시보드를 이용할 수 있으니 하나만 예시로 적용해보겠다.
첫번째에 있는 마이크로미터에서 제공하는 JVM 시각화 대시보드를 이용해보자.
4-2. 공유 대시보드 ID 복사
아래 사진처럼 공유 대시보드의 ID를 복사한다.
4-3. 대시보드 생성
우리는 공유 대시보드를 이용할 것이므로 import dashboard 버튼을 클릭한다.
복사해둔 공유 대시보드 ID를 입력하고 Load 버튼을 누른다.
Data Source를 우리가 추가한 프로메테우스로 선택해주고 Import 버튼을 클릭한다.
5. 결과 확인
Import 버튼을 누르면 바로 생성한 대시보드로 이동한다.
아래 사진처럼 공유 대시보드의 템플릿으로 잘 생성되었다.
Data Source는 우리가 설정한 프로메테우스 서버를 이용하므로 우리 애플리케이션의 상태를 확인할 수 있다.
대시보드 탭으로 이동하면 생성된 대시보드를 확인할 수 있다.
'백엔드 > 연습' 카테고리의 다른 글
서비스 장애 알림 1: Grafana와 Discord 연동 (0) | 2024.06.15 |
---|---|
Grafana로 애플리케이션 상태 확인해보기 (0) | 2024.06.08 |
Prometheus를 이용하여 메트릭 수집 (0) | 2024.06.06 |
Spring Boot Actuator 써보기 (0) | 2024.06.05 |
EasyRandom 라이브러리 사용해보기 (0) | 2024.05.23 |