Grafana와 Prometheus로 Q&A 플랫폼 상태 모니터링 강화하기
Realtime monitoring에 강한 grafana 구축
사내에 Grafana 모니터링을 제공하는 서비스가 올라왔다! 사실 우리 Q&A 플랫폼을 모니터링 하는 grafana 가 하나 따로 있긴 했지만 우리의 workstation 에 올려져 있는 상태여서 얼른 조금 불안했었는데 이번 기회에 옮기면서 새롭게 정리를 해보려고 한다.
spring actuator
우선 우리 Q&A 플랫폼은 spring webframework 기반이다. 여기서 spring 은 grafana, prometheus 와 연결하기 쉽도록 spring 의 상황을 보여 줄 수 있는 package인 actuator 라는 package가 있다. 이를 pom.xml 에 추가해 주었다
1
2
3
4
5
6
7
8
9
10
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
</dependencies>
이렇게 설정한 다음 application.yml 파일에 그에대한 설정을 간단하게 해준다
1
2
3
4
5
6
7
endpoints:
web:
exposure:
include: "*"
endpoint:
prometheus:
enabled: true
그리고 난 다음 /actuator/prometheus
로 들어가보면 다양한 현재 spring 의 상태를 알 수 있다!
prometheus, grafana
프로메세우스는 이제 저 endpoint 로 주기적으로 요청을 보내고 정보를 저장하는 역할을 담당한다. 조회를 하고 그 정보를 저장한다 그리고 grafana 는 그 정보를 가지고 예쁘게 보여주게된다. 사내 서비스를 사용하는 것이라 이 2개의 서비스는 우리가 커스텀이 되지는 않았고 직접 띄우진 않았지만 예전에 띄웠을때 Grafana 는 대시보드를 직접 구성 할 수 있지만 이미 너무 잘 만들어져있는 똑똑한 사람들이 만들어 놓은 좋은 dashboard template 이 많아서 가져와서 아주 조금씩만 변경해서 사용했던 기억이있다! 자세한 내용은 https://grafana.com/grafana/dashboards/ 여기에 있다!
이메일링
grafana 는 이메일과도 연동을 시킬 수 있다! 메모리 사용량이 90 프로 이상이면 메일을 줘 이런게 가능한데 이게 정말 좋다… 사실 이전에 초창기에 heap memory leak 이 발생해서 주말 내내 죽었던적이 있는데 충격적이게 그날 출근해서 re deploy 까지 무려 2일이 넘게 아무도 알지 못하였다는 점이다… 이럴때를 대비해서 대시보드와 연계되어 있는 이메일링 서비스는 좀 중요한거 같다! 앞으로는 그런 일이 없을것이다!