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.
https://jongmin92.github.io/2019/12/03/Spring/micrometer/
https://jongmin92.github.io/2019/12/04/Spring/prometheus/
'소프트웨어-이야기 > 인프라' 카테고리의 다른 글
kodekloud: devops 온라인 실습 툴 (0) | 2024.02.18 |
---|---|
HTTP KeepAlive와 Spring Tomcat과 Netty ConnectionPool의 관계 (0) | 2023.10.14 |
개발자를 위한 최소한의 DNS 지식 (2): 쿠버네티스 응용편 (0) | 2023.09.14 |
[Kubernetes] readiness/liveness probe (0) | 2023.09.09 |
개발자를 위한 최소한의 네트워크 지식 (0) | 2022.08.26 |