我正在使用启用了自动配置的 Spring Boot (@EnableAutoConfiguration) 并尝试将我的 Spring MVC 指标发送到 Librato。现在只有我自己创建的指标到达 Librato,但自动配置的指标(CPU、文件描述符等)没有发送给我的记者。
例如,如果我访问一个指标端点,我可以看到那里生成的信息http://localhost:8081/actuator/metrics/system.cpu.count
我的代码基于ConsoleReporter 的这篇文章。所以我有这个:
public static MeterRegistry libratoRegistry() {
MetricRegistry dropwizardRegistry = new MetricRegistry();
String libratoApiAccount = "xx";
String libratoApiKey = "yy";
String libratoPrefix = "zz";
LibratoReporter reporter = Librato
.reporter(dropwizardRegistry, libratoApiAccount, libratoApiKey)
.setPrefix(libratoPrefix)
.build();
reporter.start(60, TimeUnit.SECONDS);
DropwizardConfig dropwizardConfig = new DropwizardConfig() {
@Override
public String prefix() {
return "myprefix";
}
@Override
public String get(String key) {
return null;
}
};
return new DropwizardMeterRegistry(dropwizardConfig, dropwizardRegistry, HierarchicalNameMapper.DEFAULT, Clock.SYSTEM) {
@Override
protected Double nullGaugeValue() {
return null;
}
};
}
在我的主要功能中,我添加了Metrics.addRegistry(SpringReporter.libratoRegistry());
对于我在 build.gradle 中使用的 Librato 库compile("com.librato.metrics:metrics-librato:5.1.2")
。文档在这里。我之前使用过这个库没有任何问题。
如果我在 这篇文章中使用 ConsoleReporter,会发生同样的事情,只有我自己创建的指标会打印到控制台。
关于我做错了什么有什么想法吗?或者我错过了什么?
此外,我启用了调试模式以查看控制台中打印的“条件评估报告”,但不确定在其中查找什么。