본문 바로가기

Spring/Springboot

[Springboot] 마이크로미터

 

 

1. 모니터링의 필요성

  • 서비스를 운영할 때는 애플리케이션에 CPU, 메모리, 커넥션 사용, 고객 요청수 같은 수 많은 지표들을 확인하는 것이 필요함
  • 어디에 어떤 문제가 발생했는지 사전에 대응할 수 있고, 문제 발생 시 원인을 빠르게 파악해서 대처할 수 있음

 

 

 

2. 마이크로미터(Micrometer) 라이브러리

  • 세상에는 다양한 모니터링 툴이 존재하는데, 각 툴마다 정보를 전달하는 방법이 다 다름, 그래서 이 것을 표준 측정하도록 돕는게 마이크로미터 라이브러리

-> 애플리케이션 메트릭 파사드라고 불리는데, 애플리케이션의 메트릭(측정 지표)을 마이크로미터가 정한 표준 방법으로 모아서 제공해줌

 

  • 마이크로미터 추상체를 사용하고 예를들어 JMX구현체, 프로메테우스 구현체 등 구현체를 선택하면됨

-> 마이크로미터가 추상화를 통해서 구현체를 쉽게 변경할 수 있게 한 것 

  • 보통 스프링이 이런 추상화를 직접 만들어서 제공하지만 마이크로미터라는 이미 잘 만들어진 추상화가 있기 때문에 스프링은 이것을 활용함

-> 스프링부트 액츄에이터는 마이크로미터를 기본으로 내장해서 사용(로그를 추상화하는 SLF4J와 같은 개념)

 

  • 개발자는 마이크로미터가 정한 표준 방법으로 메트릭을 전달하면 되고, 사용하는 모니터링 툴에 맞는 구현체를 선택하면 됨! 이후에 모니터링 툴이 변경되어도 해당 구현체만 변경하면 됨

 

 

 

cf) metric

대시보드에 특정 수치들을 그래프로 보여주는 일종의 시각화

CPU사용량, 시간당 데이터 처리량, 분당 네트워크 속도 등의 데이터들을 시각화해서 보여주는 툴

 

 

3. 마이크로미터가 지원하닌 모니터링 툴

AppOptics, Atlas, CloudWatch, Datadog, Dynatrace, Elastic, Ganglia, Graphite, Humio, Influx, Instana, JMX, KairosDB, New Relic, Prometheus, SignalFx, Stackdriver, StatsD, Wavefront