모니터링 툴의 중요성 - 마이크로미터(Micrometer)의 역할
서비스를 운영할 때, 애플리케이션의 CPU, 메모리, 커넥션 사용량 등 다양한 지표를 모니터링하는 것은 필수적입니다. 이러한 지표를 통해 문제 발생 시 사전 대응이 가능하며, 실제 문제가 발생했을 때도 원인을 신속하게 파악하고 대처할 수 있습니다. 예를 들어, 메모리 사용량이 가득 찼다면, 메모리 문제와 관련된 부분을 빠르게 찾아 대응할 수 있습니다.
Micrometer란? - 의존성 문제 해결
수많은 모니터링 툴이 존재하며, 시스템의 다양한 정보를 툴에 전달하여 사용합니다. 예를 들어, CPU, JVM, 커넥션 정보 등을 JMX 툴에 전달한다고 가정해 보겠습니다. 이 경우, 각각의 정보를 JMX 모니터링 툴이 정한 포맷에 맞추어 측정하고 전달해야 합니다.
만약 사용하는 모니터링 툴을 변경하게 된다면, 기존에 측정했던 코드를 모두 새로운 툴에 맞게 수정해야 하는 문제가 발생합니다. 이런 의존성 문제를 해결하기 위해 많은 시간과 노력이 소모될 수 있습니다.
이러한 문제를 해결하는 것이 바로 마이크로미터(Micrometer)라는 라이브러리입니다. 마이크로미터는 의존성 문제(결합도)를 추상화를 통해 해결하여, 다양한 모니터링 툴에 대한 유연성을 제공합니다.
metric이란?
메트릭이란 다양한 지표를 그래프나 차트 형태로 시각화하여 사용자가 데이터를 쉽게 이해 도와주는 작업이라고도 할 수 있고, 단순히 다양한 지표를 지칭하는 용어로도 사용됩니다.
다양한 메트릭
스프링은 Actuator를 통해 다양한 메트릭을 제공합니다. http://localhost:8080/actuator/metrics 주소에서 다양한 메트릭을 확인할 수 있습니다. 그리고 기본적으로 톰캣 관련 메트릭은 세션 관련 정보만 표시되지만, 아래 옵션을 활성화하면 더 다양한 정보를 확인할 수 있습니다.
application.yml
server:
tomcat:
mbeanregistry:
enabled: true
해당 옵션을 활성화하면 톰캣의 최대 쓰레드, 사용 쓰레드 수를 포함한 다양한 메트릭을 확인할 수 있다.
http://localhost:8080/actuator/metrics 엔드포인트는 다양한 메트릭 정보를 제공합니다. 그리고 Tag를 기반으로 정보를 필터링해서 확인할 수 있습니다. 예를 들어, 다음 URL을 통해 힙 메모리, 힙이 아닌 메모리로 분류해서 사용량을 태그(tag)로 구분하여 확인할 수 있습니다.
- 힙 메모리 사용량: http://localhost:8080/actuator/metrics/jvm.memory.used?tag=area:heap
- 비힙 메모리 사용량: http://localhost:8080/actuator/metrics/jvm.memory.used?tag=area:nonheap
'Spring' 카테고리의 다른 글
[Spring + Prometheus + Grafana] 간단한 커스텀 메트릭 구현 #2 - @Counted, @Timed, MeterBinder (4) | 2024.10.20 |
---|---|
[Actuator + Prometheus + Grafana] 모니터링 간단한 구현 #1 (0) | 2024.10.20 |
[Spring Boot] 액추에이터(Actuator) 문제 및 해결 방법 (2) | 2024.10.16 |
[Spring Boot] 액추에이터(Actuator) 정리 (1) | 2024.10.16 |
[Spring Boot] spring.jpa.open-in-view is enabled by default 경고 메시지 (1) | 2024.10.15 |