본문 바로가기

Spring

Spring cloud gateway netty httpclient pool 로그 모니터링

728x90
반응형

netty httpclient pool을 모니터링하는 방법 

 

 

implementation 'io.micrometer:micrometer-registry-logging'

gradle에 micrometer-registry-logging추가

 

logging.level.reactor.netty.resources.PooledConnectionProvider=TRACE
logging.level.reactor.netty.connection.provider=TRACE
logging.level.io.micrometer.core.instrument.logging=DEBUG

application.propertis에 위와 같이 설정

 

 

max-idle-time과 max-life-time설정

spring.cloud.gateway.httpclient.pool.type=FIXED
spring.cloud.gateway.httpclient.pool.max-connections=10
spring.cloud.gateway.httpclient.pool.max-idle-time=30s
spring.cloud.gateway.httpclient.pool.max-life-time=60s
spring.cloud.gateway.httpclient.pool.eviction-interval=60s

max idle time은 연결이 종료된 후 대기하는 유휴시간을 의미

max life time은 풀이 생성된 후 생성유지 시간이다.

eviction-interval은 시간마다 연결을 체크해서 idletime과 lifetime이 초과된 풀을 반납한다. 

 

위와 같은 형태로 active connections, idle connections, totalconnections을 확인할 수 있음.

 

1분마다 로그가 남는데 시간을 더 줄이고 싶으면 LoggingMeterRegistry를 생성해야 한다.

 

@Configuration
public class MetricsConfig {
    @Bean
    public LoggingMeterRegistry loggingMeterRegistry() {
    	LoggingMeterRegistry loggingMeterRegistry = new LoggingMeterRegistry(new LoggingRegistryConfig() {
        	@Override
            public String get(String key) {
            	return null;
            }
            
            @Override
            public Duration step() {
            	return Duration.ofSeconds(5);
            }
            
        }, Clock.SYSTEM);
        return loggingMeterRegistry;
    }
}

 

 

step에 설정된 시간만큼 로깅함(5초)

728x90
반응형