거북이 developer

Spring Webflux - Monitoring Metrics 본문

Spring Framework

Spring Webflux - Monitoring Metrics

흥부가귀막혀 2022. 3. 14. 13:10

Monitoring Metrics

  • Spring Boot Application 의 Metric 을 수집하는 방법중의 하나로 Spring Actuator 를 사용할 수 있다.
  • Spring Actuator 의 dependency 를 추가한다.
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • management.endpoints.web.exposure.include  metrics 값을 추가하면 /actuator/metrics API 가 활성화 된다.
management:
  endpoints:
    web:
      exposure:
        include: ["metrics"]
  • HTTP GET method 요청으로 /actuator/metrics/{metric name} 형태로 요청하면 수집된 metric 에 대한 조회가 가능하다.
  • tag 별로 조회하고자 하면 HTTP GET method 요청으로 /actuator/metrics/{metric name}?tag=key:value 형태로 요청하면 된다.

TcpServer

  • Netty TcpServer 에 대한 metric
  • NettyServerCustomizer 를 통해 tcpServer.metrics(boolean); 함수를 호출하여 TcpServer 에 대한 metric 을 활성화해야 한다.

nametype설명

reactor.netty.tcp.server.data.received DistributionSummary TcpServer 에서 수신받은 data byte 수
reactor.netty.tcp.server.data.sent DistributionSummary TcpServer 에서 전송한 data byte 수
reactor.netty.tcp.server.errors Counter TcpServer Error 발생 횟수
reactor.netty.tcp.server.tls.handshake.time Timer TLS handshake 에 소요된 시간

HttpClient

  • Reactor Netty HttpClient 에 대한 metric
  • Reactor Netty HttpClient 생성시 HttpClient.metrics(boolean, Consumer) 함수를 호출하여 HttpClient 에 대한 metric 을 활성화해야 한다.

nametype설명

reactor.netty.http.client.data.received DistributionSummary TcpServer 에서 수신받은 data byte 수
reactor.netty.http.client.data.sent DistributionSummary TcpServer 에서 전송한 data byte 수
reactor.netty.http.client.errors Counter TcpServer Error 발생 횟수
reactor.netty.http.client.tls.handshake.time Timer TLS handshake 에 소요된 시간
reactor.netty.http.client.connect.time Timer TcpServer 에서 수신받은 data byte 수
reactor.netty.http.client.address.resolver Timer TcpServer 에서 전송한 data byte 수
reactor.netty.http.client.data.received.time Timer TcpServer Error 발생 횟수
reactor.netty.http.client.data.sent.time Timer TLS handshake 에 소요된 시간
reactor.netty.http.client.response.time Timer TLS handshake 에 소요된 시간

ConnectionProvider

  • Reactor Netty HttpClient 에서 Connection 관리를 담당하는 ConnectionProvider 에 대한 metric
  • Reactor Netty ConnectionProvider 를 Builder 를 통해 생성시 ConnectionProvider.Builder.metrics(boolean) 함수를 호출하여 ConnectionProvider 에 대한 metric 을 활성화해야 한다.

nametype설명

reactor.netty.connection.provider.total.connections Gauge TcpServer 에서 수신받은 data byte 수
reactor.netty.connection.provider.active.connections Gauge TcpServer 에서 전송한 data byte 수
reactor.netty.connection.provid er.idle.connections Gauge TcpServer Error 발생 횟수
reactor.netty.connection.provider.pending.connections Gauge TLS handshake 에 소요된 시간

'Spring Framework' 카테고리의 다른 글

Spring Webflux - Utils  (0) 2022.03.14
Spring Webflux - Test Code  (0) 2022.03.14
Spring Webflux - Exception Handle  (0) 2022.03.14
Spring Webflux - Server Configuration  (0) 2022.03.14
Spring Webflux - WebClient  (0) 2022.03.14
Comments