<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
의존성을 먼저 추가해준다.
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
bootstrap.yml
파일을 생성하여 내용을 입력해준다.
management:
endpoints:
web:
exposure:
include: refresh, health, beans, httptrace
application.yml
에 config 사용을 위한 설정을 추가해준다. 이번에 httpstrace 옵션을 추가해보자
@SpringBootApplication
public class GatewayApplication {
...
@Bean
public HttpTraceRepository httpTraceRepository(){
return new InMemoryHttpTraceRepository();
}
}
httpstrace를 사용하기 위해 application 파일에 HttpTraceRepository를 반환하는 bean을 등록해줘야한다.
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/order-service/actuator/**
- Method=GET,POST
filters:
- RemoveRequestHeader=Cookie
- RewritePath=/user-service(?<segment>.*), /$\{segment}
application.yml
에 gateway로 actuator를 사용할 수 있도록 다음과 같이 설정해준다.
서버 실행후 health로 정상적으로 체크할 수 있다.
그리고 우리가 추가한 httptrace의 경우 다음과 같이 gateway를 통해 요청한 uri들의 로그를 확인할 수 있다.
{
"traces": [
{
"timestamp": "2022-03-08T21:04:58.756202Z",
"principal": null,
"session": null,
"request": {
"method": "GET",
"uri": "http://localhost:8000/user-service/actuator/health",
"headers": {
"Accept": [
"*/*"
],
"Cache-Control": [
"no-cache"
],
"User-Agent": [
"PostmanRuntime/7.29.0"
],
"Connection": [
"keep-alive"
],
"Postman-Token": [
"2a4de739-a121-48e3-be3e-1a5f9164868b"
],
"Host": [
"localhost:8000"
],
"Accept-Encoding": [
"gzip, deflate, br"
]
},
"remoteAddress": null
},
"response": {
"status": 200,
"headers": {
"transfer-encoding": [
"chunked"
],
"Cache-Control": [
"no-cache, no-store, max-age=0, must-revalidate"
],
"X-Content-Type-Options": [
"nosniff"
],
"Pragma": [
"no-cache"
],
"Expires": [
"0"
],
"X-XSS-Protection": [
"1; mode=block"
],
"Date": [
"Tue, 08 Mar 2022 21:04:58 GMT"
],
"Content-Type": [
"application/vnd.spring-boot.actuator.v3+json"
]
}
},
"timeTaken": 14
},
...
]
}