You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot 3.2.x中设置management.metrics.web.server.request.autotime.enabled为false?

Spring Boot 3.x 禁用Web请求自动计时(替代弃用的management.metrics.web.server.request.autotime.enabled)

为什么要在ObservationRegistry层面操作

Spring Boot 3.x把Web请求自动计时的逻辑从旧的Micrometer Metrics模块,整合到了全新的Observation观测体系里。原来的autotime.enabled配置是旧版Metrics的专属开关,现在得通过Observation的规则来控制是否生成请求耗时指标。

非侵入式关闭方案(无需修改业务代码)

不需要新增业务监控代码,只需要添加一个轻量的配置类,通过自定义ObservationRegistry的规则来禁用自动计时:

import io.micrometer.observation.ObservationRegistry;
import io.micrometer.observation.aop.ObservedAspect;
import org.springframework.boot.actuate.autoconfigure.observation.ObservationRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DisableRequestAutoTimeConfig {

    @Bean
    public ObservationRegistryCustomizer<ObservationRegistry> disableWebRequestAutoTiming() {
        return registry -> registry.observationConfig()
                .observationFilter((context, handler) -> {
                    // 拦截Web请求的观测任务,直接跳过执行
                    return !"http.server.requests".equals(context.getName());
                });
    }

    // 若项目中用到@Observed注解,需确保这个Bean存在(不影响单纯禁用自动计时的场景)
    @Bean
    public ObservedAspect observedAspect(ObservationRegistry registry) {
        return new ObservedAspect(registry);
    }
}

如果你更倾向于用配置属性尝试(注意:该属性支持取决于具体Spring Boot小版本),可以在application.properties/application.yml中添加:

management.observation.http.server.requests.enabled=false

但上面的配置类方案是更通用、可靠的,完全是非侵入式,只需要把这个类放到Spring能扫描到的包下就行。

原理简单说明

ObservationRegistryCustomizer是Spring提供的用于自定义Observation配置的扩展点,我们添加的observationFilter会拦截所有观测任务。当匹配到Web请求对应的观测名称http.server.requests时,返回false就会跳过该观测的执行,和原来设置autotime.enabled=false的效果完全一致。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:12:38