본문 바로가기

소프트웨어-이야기/인프라

개발자를 위한 최소한의 모니터링 지식: spring actuator + prometheus + grafana

prometheus이란?

prometheus은 시스템 모니터링 시스템이다. prometheus은 시스템의 매트릭을 주기적으로 수집한다. 그래서 시스템에 문제가 발생했을 때, 이를 인지하고 디버깅할 수 있는 기준이 되는 지표를 제공해준다. 

prometheus를 사용하는 기본 아키텍처는 다음과 같다. 

spring actuator이란?

spring actuator은 실행중인 애플리케이션의 내부 매트릭을 api으로 제공하는 역할을 담당한다.

prometheus에서 spring의 매트릭을 수집할 수 있게 하려면, 두 개의 의존성을 추가해야한다. 

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'io.micrometer:micrometer-registry-prometheus'
}

 

spring 애플리케이션에 매트릭 수집을 위한 endpoint를 추가하고, 이를 프로메테우스가 수집하는 과정에 대한 흐름은 다음과 같다. 

 

/actuator/prometheus 를 호출하면, 위와 같은 형태의 텍스트가 출력된다. prometheus은 각 로우 데이터를 수집하고, 이 데이터는 prometheus 대시보드 화면에서 조회할 수 있다. 

 

grafana이란?

시계열 매트릭을 시각화하는 데에 최적화된 대시보드다. 

데이터소스 설정을 통해 prometheus, elasticsearch 등등의 데이터를 시각화할 수 있다. 그리고 알럿 기능을 통해 이상현상이 감지되는 경우, 슬랙/이메일 등으로 알럿을 보내는 기능도 제공한다.

 

참고

https://incheol-jung.gitbook.io/docs/study/srping-in-action-5th/chap-16.

 

CHAP 16. 스프링 부트 액추에이터 사용하기 - Incheol's TECH BLOG

"handler": "ResourceHttpRequestHandler [locations=[class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/], ServletContext resource [/], class path resource []], resolvers=[o

incheol-jung.gitbook.io

https://jongmin92.github.io/2019/12/03/Spring/micrometer/

 

Micrometer

Micrometer란?micrometer.io에서는 Micrometer에 대해서 다음과 같이 소개하고 있다. Micrometer provides a simple facade over the instrumentation clients for the most popular monitoring systems, allowing you to instrument y

jongmin92.github.io

https://jongmin92.github.io/2019/12/04/Spring/prometheus/

 

SpringBoot Application의 monitoring 시스템 구축하기

Spring Boot를 사용하고 있는 애플리케이션에서 이전에 살펴본 Micrometer를 이용해서 metric을 생성하고 Prometheus를 이용해 수집, 그리고 Grafana로 시각화하는 시스템을 만들어보자.

jongmin92.github.io