2 回答
TA贡献1784条经验 获得超8个赞
计算事件持续时间后使用 Timer.record 。
default void record(Duration duration)
当您想要传递 Sample 以确定发布指标的点时,您通常会使用 Timer.Sample,不一定在完全相同的位置。您还可以更精细地控制使用 Timer 对象发布的内容。这是一个两步过程。
在事件开始之前创建一个样本以返回一个样本对象
static Sample start(Clock clock) {..}
使用 Sample.stop 停止示例并在活动完成时推送指标
public long stop(Timer timer) {..}
例如来自TimedAspect的那个-
Timer.Sample sample = Timer.start(registry);
try {
return pjp.proceed();
} finally {
sample.stop(Timer.builder(timed.value())
.description(timed.description().isEmpty() ? null : timed.description())
.tags(timed.extraTags())
.tags(tagsBasedOnJoinpoint.apply(pjp))
.publishPercentileHistogram(timed.histogram())
.publishPercentiles(timed.percentiles().length == 0 ? null : timed.percentiles())
.register(registry));
}
TA贡献1818条经验 获得超11个赞
主要区别是添加了手动停止录制的选项
您还可以将开始状态存储在稍后可以停止的示例实例中。该示例根据注册表的时钟记录开始时间。启动样本后,执行要计时的代码,并通过调用样本的stop(Timer) 完成操作。
添加回答
举报