add basic metrics impl
All checks were successful
Deploy App / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 2m32s
All checks were successful
Deploy App / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 2m32s
This commit is contained in:
@ -3,6 +3,7 @@ package xyz.mcutils.backend.log;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.NonNull;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.MethodParameter;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
@ -12,6 +13,9 @@ import org.springframework.http.server.ServletServerHttpRequest;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
|
||||
import xyz.mcutils.backend.common.IPUtils;
|
||||
import xyz.mcutils.backend.service.MetricService;
|
||||
import xyz.mcutils.backend.service.metric.metrics.RequestsPerRouteMetric;
|
||||
import xyz.mcutils.backend.service.metric.metrics.TotalRequestsMetric;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@ -21,6 +25,10 @@ import java.util.Map.Entry;
|
||||
@ControllerAdvice
|
||||
@Slf4j(topic = "Req Transaction")
|
||||
public class TransactionLogger implements ResponseBodyAdvice<Object> {
|
||||
|
||||
@Autowired
|
||||
private MetricService metricService;
|
||||
|
||||
@Override
|
||||
public Object beforeBodyWrite(Object body, @NonNull MethodParameter returnType, @NonNull MediaType selectedContentType,
|
||||
@NonNull Class<? extends HttpMessageConverter<?>> selectedConverterType, @NonNull ServerHttpRequest rawRequest,
|
||||
@ -43,6 +51,10 @@ public class TransactionLogger implements ResponseBodyAdvice<Object> {
|
||||
request.getRequestURI(),
|
||||
params
|
||||
));
|
||||
|
||||
// Increment the metric
|
||||
((TotalRequestsMetric) metricService.getMetric(TotalRequestsMetric.class)).increment();
|
||||
((RequestsPerRouteMetric) metricService.getMetric(RequestsPerRouteMetric.class)).increment(request.getRequestURI());
|
||||
return body;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user