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 指标过滤器。
* 顺序说明(与方案 §2.1 的差异):方案原文写 +12(RequireAppSignFilter 之后), * 但 +11 的 401 短路发生在 chain.doFilter 之前,+12 根本不会执行—— * 「401 验签失败也能统计」这一目标就落空了。故取 +10(与 AppAuthFilter 同级、 * 先于 +11 闸门):401 请求全量可统计;appKey 在 AppAuth 先执行时取权威 attr, * 同序竞争落后时降级 header(签名场景两者取值一致,无实际偏差)。 */ @Configuration public class LoadTestMetricsConfig { @Bean public FilterRegistrationBean oapiMetricsFilter(OapiMetricsCollector collector) { FilterRegistrationBean bean = new FilterRegistrationBean<>(); bean.setFilter(new OapiMetricsFilter(collector)); bean.addUrlPatterns("/oapi/*"); bean.setOrder(Ordered.HIGHEST_PRECEDENCE + 10); bean.setName("oapiMetricsFilter"); return bean; } }