왜 모니터링이 필요한가?
서비스를 운영자에게 필요한 것은 단순 기능을 잘 만드는 것이 아니다.
장애는 필수적으로 오기 마련이다. 따라서, 언제든 발생할 수 있는 장애를 빠르게 감지하고 대응할 수 있는 체계가 필수이다.
앞으로 배울 마이크로미터-프로메테우스-그라파나를 잘 이해하면 문제가 생겨도 빠르게 대응할 수 있다.
✅ 서비스 운영시 필요한 지표
- CPU
- 메모리
- 커넥션 사용
- 고객 요청 수
- etc
✅ 위의 지표를 가지고 모니터링 했을 때 효과
- 어떤 문제가 발생했는지 사전 대응 가능
- 문제 발생 시 원인을 빠르게 파악 가능
✅ 대표적인 모니터링 툴
1. 그라파나 대시보드
2. 핀 포인트
네이버에서 만든 모니터링 툴로 이게 진짜 좋다고 한다.
분산추적이 가능해서 MSA환경에서 특히나 좋다고 한다.
그래도 지금 배우기에는 너무 시간이 없다..
기존 방식의 문제 - 추상화 없을 때
✅ 기본 상식
모니터링 툴을 이용하려면 각각의 모니터링 툴에 맞도록 만들어서 지표 정보들을 보내주어야 한다.
즉, 아래처럼 애플리케이션 내부에서 해당 모니터링 방식에 맞춰 코드 작성 必
💢 돌발상황 - 모니터링 툴 변경
결합도 문제
- 모니터링 툴이 변경되면 변경된 툴에 맞게 개발한 애플리케이션을 수정해야한다.
- 즉, 모니터링 툴 때문에 코드까지 변경해야 하는 문제가 있었다.
모니터링 툴이 굉장히 많은데 그러면 어떻게 해결할까??
💡문제 해결 : 이러한 문제를 해결해 주는 것이 바로 “마이크로미터”라는 라이브러리이다.
마이크로미터
스프링에서 여러 개념들을 배우다보면 스프링이 어떻게 추상화라는 것을 시켰는지 배웠을 것이다.
이것도 마찬가지로, 다양한 모니터링 도구에 대한 추상화를 제공한다.
개발자의 역할
- micrometer의 표준 측정 방식에 맞춰 지표들을 전달만 하면 된다.
- 어떤 모니터링 툴을 사용할지 설정
이점
- 코드 수정 없이 모니터링 도구 변경 가능
- Spring Actuator와 자연스럽게 통합 가능
https://docs.spring.io/spring-boot/reference/actuator/metrics.html#actuator.metrics
'백엔드 > 스프링' 카테고리의 다른 글
Caused by: org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of … Use setObject() with an explicit Types value to specify the type to use. (0) | 2025.05.02 |
---|---|
Actuator + 마이크로미터 : 메트릭 확인하기 (0) | 2025.05.02 |
프로메테우스, 그라파나, 애플리케이션 - 도커로 설치 및 연동 (1) | 2025.05.01 |
Spring Batch : 서로 다른 Step 끼리 데이터 공유하기 (0) | 2025.04.27 |
@JobScoe, @StepScope 사용 (0) | 2025.04.23 |