이번 강의에서는 Micrometer를 사용하여 마이크로서비스의 메트릭을 Prometheus와 연동하는 방법을 살펴보겠습니다. Micrometer와 Prometheus를 사용하여 애플리케이션의 메트릭을 수집하고 중앙 집중화하여 모니터링할 수 있습니다.
먼저, 각 마이크로서비스의 pom.xml
파일에 Micrometer 및 Prometheus와 관련된 종속성을 추가합니다.
pom.xml
파일 수정:먼저, pom.xml
파일에서 Spring Boot Actuator 종속성 바로 뒤에 Micrometer 및 Prometheus 종속성을 추가합니다.
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
이 종속성을 추가하면, Micrometer가 Actuator에서 노출한 메트릭을 Prometheus가 이해할 수 있는 형식으로 자동으로 변환합니다.
이제 이 종속성을 모든 마이크로서비스에 추가해야 합니다. accounts
, loans
, cards
등 각 마이크로서비스의 pom.xml
파일에 동일한 종속성을 추가합니다.
메트릭을 태그를 설정하여 Prometheus가 메트릭을 그룹화할 수 있도록 application.yml
파일을 수정합니다.
application.yml
파일 수정:각 마이크로서비스의 application.yml
파일에 다음과 같은 설정을 추가합니다.
management:
metrics:
tags:
application: ${spring.application.name}
이 설정은 Micrometer와 Prometheus에게 해당 마이크로서비스의 메트릭을 특정 애플리케이션 이름으로 그룹화하도록 지시합니다. 예를 들어, accounts
마이크로서비스의 경우, 모든 메트릭은 accounts
라는 이름 아래에 그룹화됩니다.
이제 모든 마이크로서비스(accounts
, loans
, cards
등)에 동일한 설정을 추가합니다.
모든 설정이 완료되었으므로, 각 마이크로서비스를 순차적으로 실행합니다.
Config Server (config-server
):
ConfigServerApplication
클래스를 실행합니다.Eureka Server (eureka-server
):
EurekaServerApplication
클래스를 실행합니다.Accounts, Loans, Cards Microservice:
AccountsApplication
, LoansApplication
, CardsApplication
클래스를 실행합니다.Gateway Server (gateway-server
):
GatewayserverApplication
클래스를 실행합니다.각 마이크로서비스의 Actuator 엔드포인트를 브라우저에서 확인하여 Micrometer가 메트릭스를 노출하는 방식을 이해합니다.
브라우저에서 각 마이크로서비스의 메트릭 엔드포인트를 확인합니다. 예를 들어, accounts
마이크로서비스의 경우:
http://localhost:8080/actuator/metrics
http://localhost:8080/actuator/metrics/system.cpu.usage
이와 같이 다른 마이크로서비스(loans
, cards
등)에서도 Actuator 엔드포인트를 확인할 수 있습니다.
Prometheus가 메트릭을 수집할 수 있도록 Micrometer가 /actuator/prometheus
엔드포인트에서 메트릭스를 노출합니다. 예를 들어:
http://localhost:8080/actuator/prometheus
이 엔드포인트를 통해 Prometheus가 주기적으로 메트릭을 수집할 수 있습니다.
마지막으로, 모든 마이크로서비스에서 /actuator/prometheus
엔드포인트가 올바르게 동작하는지 확인합니다. 각 마이크로서비스가 올바르게 메트릭을 노출하고 있음을 확인하면, Prometheus가 해당 메트릭을 수집할 수 있습니다.
이번 강의에서는 Micrometer 및 Prometheus 설정을 통해 마이크로서비스의 메트릭을 수집하고 중앙 집중화하는 방법을 살펴보았습니다. 다음 강의에서는 Prometheus와 Grafana를 통합하여 대시보드를 생성하고 메트릭을 시각화하는 방법을 다루겠습니다.