我正在使用自定义计时器,通过千分尺测量大量的磁场。理想情况下,我不希望为此特定仪表报告的指标在配置的步长间隔之间计数为零。这不是关键,但希望降低每x秒发送到NR的噪声。
我已经在NewRelicMeterRegistry上创建了一个扩展,该扩展覆盖了publish()
方法,以在默认行为之前添加功能。
public class FilteringNewRelicMeterRegistry extends NewRelicMeterRegistry {
public FilteringNewRelicMeterRegistry(NewRelicConfig config, Clock clock) {
super(config, clock);
}
/**
* Remove field metrics that have not been used since the last publish.
*/
@Override
protected void publish() {
getMeters().stream()
.filter(filterByMeterId(...)))
.filter(meter -> ((Timer) meter).count() == 0)
.forEach(this::remove);
super.publish();
}
}
但是对我来说,我无法弄清楚如何让自动配置优先于默认NewRelicMeterRegistry
来实现此实现。>>
如何获得弹簧启动或千分尺来纪念我的实现,并将其用作应用程序上下文中的指定bean,以实现自动装配?
此外,如果有一种开箱即用的方法可以通过千分尺抽象或实用程序来覆盖此行为,那真是太棒了!请告诉我。我尝试使用MeterRegistryCustomizer
,但似乎没有我所需要的。
[我想避免通过@Scheduled
使用Spring的调度功能,希望在“发布时”这样做。
我正在使用自定义计时器,通过千分尺测量大量的磁场。理想情况下,我不希望为此特定仪表报告的指标在配置的步长间隔之间计数为零。...
如果您不想使用默认自动配置,请禁用此默认设置