Micrometer 및 Prometheus 설정 구현

날아올라돼지야·2024년 8월 30일
0

이번 강의에서는 Micrometer를 사용하여 마이크로서비스의 메트릭을 Prometheus와 연동하는 방법을 살펴보겠습니다. Micrometer와 Prometheus를 사용하여 애플리케이션의 메트릭을 수집하고 중앙 집중화하여 모니터링할 수 있습니다.

1. 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 파일에 동일한 종속성을 추가합니다.

2. application.yml 파일 수정

메트릭을 태그를 설정하여 Prometheus가 메트릭을 그룹화할 수 있도록 application.yml 파일을 수정합니다.

application.yml 파일 수정:

각 마이크로서비스의 application.yml 파일에 다음과 같은 설정을 추가합니다.

management:
  metrics:
    tags:
      application: ${spring.application.name}

이 설정은 Micrometer와 Prometheus에게 해당 마이크로서비스의 메트릭을 특정 애플리케이션 이름으로 그룹화하도록 지시합니다. 예를 들어, accounts 마이크로서비스의 경우, 모든 메트릭은 accounts라는 이름 아래에 그룹화됩니다.

이제 모든 마이크로서비스(accounts, loans, cards 등)에 동일한 설정을 추가합니다.

3. 마이크로서비스 실행

모든 설정이 완료되었으므로, 각 마이크로서비스를 순차적으로 실행합니다.

마이크로서비스 실행 순서:

  1. Config Server (config-server):

    • ConfigServerApplication 클래스를 실행합니다.
  2. Eureka Server (eureka-server):

    • EurekaServerApplication 클래스를 실행합니다.
  3. Accounts, Loans, Cards Microservice:

    • AccountsApplication, LoansApplication, CardsApplication 클래스를 실행합니다.
  4. Gateway Server (gateway-server):

    • GatewayserverApplication 클래스를 실행합니다.

4. Actuator 및 Prometheus 엔드포인트 확인

각 마이크로서비스의 Actuator 엔드포인트를 브라우저에서 확인하여 Micrometer가 메트릭스를 노출하는 방식을 이해합니다.

Actuator 메트릭 엔드포인트 확인:

브라우저에서 각 마이크로서비스의 메트릭 엔드포인트를 확인합니다. 예를 들어, accounts 마이크로서비스의 경우:

  • 메트릭 전체 보기:
    • URL: http://localhost:8080/actuator/metrics
  • 특정 메트릭 확인:
    • URL: http://localhost:8080/actuator/metrics/system.cpu.usage

이와 같이 다른 마이크로서비스(loans, cards 등)에서도 Actuator 엔드포인트를 확인할 수 있습니다.

Prometheus 엔드포인트 확인:

Prometheus가 메트릭을 수집할 수 있도록 Micrometer가 /actuator/prometheus 엔드포인트에서 메트릭스를 노출합니다. 예를 들어:

  • Prometheus 메트릭 엔드포인트:
    • URL: http://localhost:8080/actuator/prometheus

이 엔드포인트를 통해 Prometheus가 주기적으로 메트릭을 수집할 수 있습니다.

5. 모든 마이크로서비스에서 엔드포인트 확인

마지막으로, 모든 마이크로서비스에서 /actuator/prometheus 엔드포인트가 올바르게 동작하는지 확인합니다. 각 마이크로서비스가 올바르게 메트릭을 노출하고 있음을 확인하면, Prometheus가 해당 메트릭을 수집할 수 있습니다.

결론

이번 강의에서는 Micrometer 및 Prometheus 설정을 통해 마이크로서비스의 메트릭을 수집하고 중앙 집중화하는 방법을 살펴보았습니다. 다음 강의에서는 Prometheus와 Grafana를 통합하여 대시보드를 생성하고 메트릭을 시각화하는 방법을 다루겠습니다.

profile
무슨 생각하며 사니

0개의 댓글