我目前正在以10秒的间隔将我的Spring Boot Webflux项目的执行器指标导出到DataDog。我想为我们的内部系统之一添加另一个导出器,该导出器不在受支持的后端列表中。从DataDogMeterRegistry
看实现,我想到了以下内容。
public interface ExternalConfig extends StepRegistryConfig {
ExternalConfig DEFAULT = k -> null;
@Override
default String prefix() {
return "vwexternal";
}
}
@Slf4j
public class ExternalMeterRegistry extends StepMeterRegistry {
public ExternalMeterRegistry() {
this(ExternalConfig.DEFAULT, Clock.SYSTEM);
}
public ExternalMeterRegistry(StepRegistryConfig config, Clock clock) {
super(config, clock);
}
@Override
protected void publish() {
log.info("HERE");
}
@Override
protected TimeUnit getBaseTimeUnit() {
return TimeUnit.MILLISECONDS;
}
}
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
Metrics.addRegistry(new ExternalMeterRegistry());
}
}
但是,由于没有打印日志,因此无法正常工作。
我的问题是如何为Spring Boot千分尺添加和实现另一个MeterRegistry?
答案 0 :(得分:2)
您需要start
发布。与LoggingMeterRegistry
在您的构造函数中,诸如:
start(new NamedThreadFactory("vw-metrics-publisher"))