将 Spring 引导指标写入 Stdout 或聚合器?

Write out Spring Boot metrics to Stdout or aggregator?

我有一个 java 应用程序写在 Spring 引导之上,我可以看到通过 /metrics 管理 API 生成的指标。我想过滤正在生成的指标(基于指标前缀)并打印到标准输出或将所选指标发送到第 3 方聚合器(不是引用的指标 here

我尝试了此 建议的代码,但没有将任何指标写入标准输出。这是我添加到 Application.java class:

@Bean
@ServiceActivator(inputChannel = "metricsChannel")
    public MessageHandler metricsHandler() {
        return System.out::println;
}

以预配置的节奏拦截指标的最佳方法是什么,以便我可以处理并将它们写入标准输出或将它们发布到聚合器?

谢谢。

看起来这是 Spring 引导中的错误:https://github.com/spring-projects/spring-boot/issues/5517

我们必须自己声明这样的东西作为解决方法:

@Bean
public MessageChannel metricsChannel() {
    return new DirectChannel();
}

@Bean
@ExportMetricWriter
public MessageChannelMetricWriter messageChannelMetricWriter() {
    return new MessageChannelMetricWriter(metricsChannel());
}

@Bean
@ServiceActivator(inputChannel = "metricsChannel")
public MessageHandler metricsHandler() {
    return System.out::println;
}