diff --git a/CHANGELOG.md b/CHANGELOG.md index c3d1cd70..0085b56c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # Change Log --- -- [Bugfix: optimize ratelimit actuator](https://github.com/Tencent/spring-cloud-tencent/pull/420) \ No newline at end of file +- [Bugfix: optimize ratelimit actuator](https://github.com/Tencent/spring-cloud-tencent/pull/420) +- [Feature: add rate limit filter debug log](https://github.com/Tencent/spring-cloud-tencent/pull/437) diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilter.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilter.java index c9898a45..d78e267b 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilter.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckReactiveFilter.java @@ -114,6 +114,7 @@ public class QuotaCheckReactiveFilter implements WebFilter, Ordered { } // Unirate if (quotaResponse.getCode() == QuotaResultCode.QuotaResultOk && quotaResponse.getWaitMs() > 0) { + LOG.debug("The request of [{}] will waiting for {}ms.", path, quotaResponse.getWaitMs()); return Mono.delay(Duration.ofMillis(quotaResponse.getWaitMs())).flatMap(e -> chain.filter(exchange)); } } diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java index 60670e39..8497bdf4 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/main/java/com/tencent/cloud/polaris/ratelimit/filter/QuotaCheckServletFilter.java @@ -58,11 +58,13 @@ import static com.tencent.cloud.polaris.ratelimit.constant.RateLimitConstant.LAB @Order(RateLimitConstant.FILTER_ORDER) public class QuotaCheckServletFilter extends OncePerRequestFilter { + private static final Logger LOG = LoggerFactory.getLogger(QuotaCheckServletFilter.class); + /** - * Default Filter Registration Bean Name Defined. + * Default Filter Registration Bean Name Defined . */ public static final String QUOTA_FILTER_BEAN_NAME = "quotaFilterRegistrationBean"; - private static final Logger LOG = LoggerFactory.getLogger(QuotaCheckServletFilter.class); + private final LimitAPI limitAPI; private final PolarisRateLimiterLabelServletResolver labelResolver; @@ -97,8 +99,8 @@ public class QuotaCheckServletFilter extends OncePerRequestFilter { Map labels = getRequestLabels(request, localNamespace, localService); try { - QuotaResponse quotaResponse = QuotaCheckUtils.getQuota( - limitAPI, localNamespace, localService, 1, labels, request.getRequestURI()); + QuotaResponse quotaResponse = QuotaCheckUtils.getQuota(limitAPI, + localNamespace, localService, 1, labels, request.getRequestURI()); if (quotaResponse.getCode() == QuotaResultCode.QuotaResultLimited) { response.setStatus(polarisRateLimitProperties.getRejectHttpCode()); @@ -108,6 +110,7 @@ public class QuotaCheckServletFilter extends OncePerRequestFilter { } // Unirate if (quotaResponse.getCode() == QuotaResultCode.QuotaResultOk && quotaResponse.getWaitMs() > 0) { + LOG.debug("The request of [{}] will waiting for {}ms.", request.getRequestURI(), quotaResponse.getWaitMs()); Thread.sleep(quotaResponse.getWaitMs()); } @@ -147,8 +150,7 @@ public class QuotaCheckServletFilter extends OncePerRequestFilter { return labelResolver.resolve(request); } catch (Throwable e) { - LOG.error("resolve custom label failed. resolver = {}", - labelResolver.getClass().getName(), e); + LOG.error("resolve custom label failed. resolver = {}", labelResolver.getClass().getName(), e); } } return Collections.emptyMap();