Java 如何将spring引导指标持久化为日志?
我正在运行一个SpringBoot应用程序,它测量标准和自定义指标。现在,我希望这些指标在elasticsearch中得到保留,以便进一步检查。我有一个正常工作的ELK堆栈,所以对我来说最明显的解决方案是将度量值持久化到日志文件中,并让filebeat收集它 我发现了一个,可以实现这一点,但它使用的是Java 如何将spring引导指标持久化为日志?,java,logging,spring-boot,java-8,Java,Logging,Spring Boot,Java 8,我正在运行一个SpringBoot应用程序,它测量标准和自定义指标。现在,我希望这些指标在elasticsearch中得到保留,以便进一步检查。我有一个正常工作的ELK堆栈,所以对我来说最明显的解决方案是将度量值持久化到日志文件中,并让filebeat收集它 我发现了一个,可以实现这一点,但它使用的是MetricRepository,java 8不再支持它 这是没有帮助的。所有显示的示例都使用一些专有格式或写入数据库 任何人都可以提供一种将度量持久化为日志文件的方法吗?听起来你只需要编写一个Me
MetricRepository
,java 8不再支持它
这是没有帮助的。所有显示的示例都使用一些专有格式或写入数据库
任何人都可以提供一种将度量持久化为日志文件的方法吗?听起来你只需要编写一个
MetricWriter
实现,并用@ExportMetricWriter
标记bean就可以了。只需写入日志即可实现这三种方法
比如:
@Component
@ExportMetricWriter
public class MyMetricWriter implements MetricWriter, Closeable {
private static final Log logger = LogFactory.getLog(MyMetricWriter.class);
@Override
public void increment(Delta<?> delta) {
// record increment to log
}
@Override
public void set(Metric<?> value) {
// record set metric to log
}
@Override
public void reset(String name) {
// Not implemented
}
@Override
public void close() {
/// ...
}
}
@组件
@ExportMetricWriter
公共类MyMetricWriter实现MetricWriter,Closeable{
私有静态最终日志记录器=LogFactory.getLog(MyMetricWriter.class);
@凌驾
公共空间增量(增量){
//记录日志的增量
}
@凌驾
公共无效集(度量值){
//要记录的记录集度量
}
@凌驾
公共无效重置(字符串名称){
//未实施
}
@凌驾
公众假期结束(){
/// ...
}
}
文档中提到了一些其他内容,您可以参考它们的实现以获得灵感 您链接的文档的前两行解释了您需要做什么。我还想知道你是从哪里知道
MetricRepository
已经被弃用了,它仍然没有出现在SpringBoot1.5.2中,也没有出现在SpringBoot2.0.0中。此外,如果您使用Elastic,尽管它需要一个附加的库,但是已经有了一个用于此的库。“如果您使用的是Java 8或Dropwizard metrics,则默认情况下不使用旧的MetricRepository及其InMemoryMetricRepository实现。”-如.ExportMetricWriter中第一个信息框中所述,未找到MetricWriter,并且MetricWriter未实现扩展,因此无法使用此解决方案。有更新吗?我使用的是SpringBoot2