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

Spring Boot 3中Timer迁移至Observation API的实现咨询

迁移Timer.record至Micrometer Observation API

针对你提供的原有Timer.record代码,迁移到Observation API的步骤如下:

1. 替换依赖组件

原来的代码依赖MeterRegistry,迁移后改用ObservationRegistry——在Spring Boot 3中该Bean已自动配置,直接注入即可。

2. 重构Timer获取逻辑

将原来的getTimer方法替换为创建Observation的方法,对应原Timer的名称和标签:

// 原方法
Timer getTimer(String a) {
    return meterRegistry.timer("module", "runtime", a);
}

// 迁移后的方法
Observation getObservation(String a, ObservationRegistry observationRegistry) {
    // 对应原Timer的名称"module",标签"runtime"=a
    return Observation.createNotStarted("module", observationRegistry)
            .lowCardinalityKeyValue("runtime", a);
}

3. 记录已计算的耗时

原代码中timedd.record(timeElapsed)是记录已预计算好的时长,迁移后直接调用Observation的stop(Duration)方法传入耗时即可:

假设timeElapsed是Duration类型:

Observation observation = getObservation(a, observationRegistry);
observation.stop(timeElapsed);

如果timeElapsed是long类型的毫秒数,先转换为Duration:

observation.stop(Duration.ofMillis(timeElapsed));

说明

Observation API会自动将该观测转换为与原Timer一致的指标输出,指标名称仍为module,标签runtime对应传入的a值,记录的时长与原代码完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:46:08