티스토리 뷰
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
마찬가지로 Gateway와 Order 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에서 보면 직렬화되어 있어서 너무 불편했습니다. 조금이라도 편하게 보기 위해서, 이번에 확장프로그램을 설치했는데 꽤 괜찮은 거 같아 공유드립니다! 불편함이 없다면 굳이 안하셔두 됩니다!
# localhost:[User-Service Port]/actuator/metrics 로 접속 시 다음과 같은 화면이 출력됩니다.
해당 항목들은, 지표에 사용될 항목들입니다. 저희가 찾고자 하는건 /health_check메서드와 /welcome 메서드인데, 보이지 않네요. 왜냐면 해당 서비스를 아직 호출하지 않아서 입니다. 해당 메서드에 접근하기 위해서 먼저 회원등록 로그인 요청을 해줍니다.
#회원가입
#로그인
# /welcome 접속
#/health_check 접속
다시 Refresh 해보면 다음과 같이 위에 @Timed로 추가한 내용이 추가된 것을 확인 할 수 있습니다.
마지막으로 /prometheus로 접속하면 다음과 같이, 어디서 접근했는지, 어떤 method 었는지 등등 많은 정보들을 찾아볼 수 있습니다만... 뭔가 불친절하죠? 이쁘게 보는 방법은 다음 시간에 포스팅하겠습니다.
감사합니다.
-참고강의-
'웹 프로그래밍 > MSA 학개론' 카테고리의 다른 글
[MSA] 애플리케이션 배포 (0) | 2022.05.09 |
---|---|
[Docker] Docker 설치&환경 설정 그리고 Container 생성 (0) | 2022.05.04 |
[MSA] Spring Cloud Sleuth + Zipkin 을 이용한 MS의 분산 추적 (0) | 2022.05.04 |
[MSA] Zipkin 개요 & 설치방법 (0) | 2022.05.03 |
[MSA] Orders Microservice 고도화 - Order Kafka Producer TEST (0) | 2022.05.03 |
- Total
- Today
- Yesterday
- kafka
- ACTUATOR
- Gateway
- prometheus
- docker
- zipkin
- LoadBalancer
- UserService
- Logstash to ElasticSearch
- config
- git
- 오늘저녁 삼겹살
- Feign
- 미래의나에게동기부여
- 루틴기록
- Kafka Connect
- producer
- MariaDB
- Logstash 활용
- consumer
- 운동일기
- JWT
- MSA
- elasticSearch
- github
- 빅-오
- Spring + ELK
- springcloud
- rabbitmq
- 운동
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |