37 lines
1.7 KiB
Java
37 lines
1.7 KiB
Java
package com.yunhai.userbase.loadtestmetrics;
|
|
|
|
/* =============================================================================
|
|
* [LOADTEST-METRICS] 临时埋点 —— 《压测与oapi埋点统计方案.md》阶段一
|
|
* 压测结束后整体移除:删除 loadtestmetrics 包 + 回退 pom.xml/application.yml
|
|
* 中 [LOADTEST-METRICS] 标记段 + DROP TABLE oapi_metrics。
|
|
* 移除步骤详见仓库根《埋点移除清单.md》。
|
|
* ============================================================================= */
|
|
|
|
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.core.Ordered;
|
|
|
|
/**
|
|
* [LOADTEST-METRICS] 埋点装配:注册 oapi 指标过滤器。<br>
|
|
* <b>顺序说明(与方案 §2.1 的差异)</b>:方案原文写 +12(RequireAppSignFilter 之后),
|
|
* 但 +11 的 401 短路发生在 chain.doFilter 之前,+12 根本不会执行——
|
|
* 「401 验签失败也能统计」这一目标就落空了。故取 +10(与 AppAuthFilter 同级、
|
|
* 先于 +11 闸门):401 请求全量可统计;appKey 在 AppAuth 先执行时取权威 attr,
|
|
* 同序竞争落后时降级 header(签名场景两者取值一致,无实际偏差)。
|
|
*/
|
|
@Configuration
|
|
public class LoadTestMetricsConfig {
|
|
|
|
@Bean
|
|
public FilterRegistrationBean<OapiMetricsFilter> oapiMetricsFilter(OapiMetricsCollector collector) {
|
|
FilterRegistrationBean<OapiMetricsFilter> bean = new FilterRegistrationBean<>();
|
|
bean.setFilter(new OapiMetricsFilter(collector));
|
|
bean.addUrlPatterns("/oapi/*");
|
|
bean.setOrder(Ordered.HIGHEST_PRECEDENCE + 10);
|
|
bean.setName("oapiMetricsFilter");
|
|
return bean;
|
|
}
|
|
|
|
}
|