티스토리 뷰

Micrometer를 짧게 설명을 드리면, Application에 모니터링을 하기위한 도구로, 필요한 각종 자료를 수집하는 용도입니다. 네트워크 트래픽이나,사용자의 요청의 횟수,메서드 진입 횟수 등등 말그대로 MS를 모니터링 하기 위한 도구 입니다.

 


#User-Service

늘 그렇듯 Dependency부터 추가하려 합니다. 아래와 같은 Dependency를 추가해주세요.

<dependency>
   <groupId>io.micrometer</groupId>
   <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

다음으로는 Application.yml 파일을 수정하려 합니다. 

management 부분에 가장 하단에 prometheus를 추가해줍니다.

management:
   endpoints:
      web:
         exposure:
            include: refresh,health,beans,busrefresh,info,metrics,prometheus

다음으로는 Controller를 수정해줍니다.

해당 Annotation/health_check/welcome에 등록해줍니다. @Timed는, 이벤트의 사용 빈도를 측정해줍니다. 또한 시계열로 이벤트의 시간과 호출빈도등을 제공해주는 Annotation입니다.

@Timed(value="users.status", longTask = true)

 

#완성 코드

@GetMapping("/health_check")
@Timed(value="users.status", longTask = true)
public String status(){
    return String.format("It's Working in User Service"
                + ",port(local.server.port)=" + env.getProperty("local.server.port")
                + ",port(server.port)=" + env.getProperty("server.port")
                + ",token secret =" + env.getProperty("token.secret")
                + ",token expiration time=" + env.getProperty("token.expiration_time")
    );

}
@GetMapping("/welcome")
@Timed(value="users.welcome", longTask = true)
public String welcome(){
    return env.getProperty("greeting.message");
}

#Gateway Service & Order Service

마찬가지로 GatewayOrder Service에도 동일한 작업을 해줍니다.

#pom.xml

<dependency>
   <groupId>io.micrometer</groupId>
   <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

#Order-Service는 Actuator도 추가

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

#application.yml

management:
   endpoints:
      web:
         exposure:
            include: refresh, health, beans, httptrace,busrefresh,info,metrics,prometheus

 


#Service

실행해야할 Service가 조금 많습니다. 그리고 Actuator를 사용함에 따라서 RabbitMQ도 사용해야 하니... 조금 복잡하네요.

🚀 RabbitMQ

🚀 ZIPKIN

🚀 Config - Service

🚀 Eureka - Server

🚀 Order,User,Gateway Service


# http://localhost:8761 접속

접속 후, user-service에 접속해줍니다.

기본적으로 actuator에 접속 되어 있습니다. 해당 Url에서 아까 추가한 metrics를 입력해줍니다.


그전에 Json형태가 WEB에서 보면 직렬화되어 있어서 너무 불편했습니다. 조금이라도 편하게 보기 위해서, 이번에 확장프로그램을 설치했는데 꽤 괜찮은 거 같아 공유드립니다! 불편함이 없다면 굳이 안하셔두 됩니다!

 

JSON Viewer

The most beautiful and customizable JSON/JSONP highlighter that your eyes have ever seen. Open source at https://goo.gl/fmphc7

chrome.google.com


# localhost:[User-Service Port]/actuator/metrics 로 접속 시 다음과 같은 화면이 출력됩니다.

해당 항목들은, 지표에 사용될 항목들입니다. 저희가 찾고자 하는건 /health_check메서드와 /welcome 메서드인데, 보이지 않네요. 왜냐면 해당 서비스를 아직 호출하지 않아서 입니다. 해당 메서드에 접근하기 위해서 먼저 회원등록 로그인 요청을 해줍니다.

#회원가입

#로그인 

# /welcome 접속

원래 값이 있어야 하는데 실수로 greeting항목을 지워서 아무것도 출력안되는게 정상

#/health_check 접속

다시 Refresh 해보면 다음과 같이 위에 @Timed로 추가한 내용이 추가된 것을 확인 할 수 있습니다.

마지막으로 /prometheus로 접속하면 다음과 같이, 어디서 접근했는지, 어떤 method 었는지 등등 많은 정보들을 찾아볼 수 있습니다만... 뭔가 불친절하죠? 이쁘게 보는 방법은 다음 시간에 포스팅하겠습니다.

 

감사합니다.

-참고강의-

 

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의

Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해

www.inflearn.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함