【问题标题】:Export Spring Boot Actuator Metrics using Dropwizard to Jmx or Graphite使用 Dropwizard 将 Spring Boot Actuator Metrics 导出到 Jmx 或 Graphite
【发布时间】:2017-05-06 12:48:29
【问题描述】:

我想使用 Spring Boot MetricsWriter 将数据从我的 Spring Boot 应用程序写入/导出到我选择的数据源(比如 - Jmx/Graphite)。我可以使用JmxReporter/GraphiteReporter,但我想Spring对Writer/Exporter的抽象可以在以后数据源更改方面发挥至关重要的作用。

我的 REST 端点使用 Dropwizard 注释进行了注释

@Timed(absolute=true, name="invokeEndpoint")
public ResponseEntity<Object> callSomeApi() {
   ...
}

我的配置类如下所示:

@Configuration
public class SpringBootMetrics {

    @Bean
    @ExportMetricReader
    public MetricReader metricReader() {
        return new MetricRegistryMetricReader(metricRegistry());
    }   

    public MetricRegistry metricRegistry() {
        final MetricRegistry metricRegistry = new MetricRegistry();
        return metricRegistry;
    }

    @Bean
    @ExportMetricWriter
    MetricWriter metricWriter(MBeanExporter exporter) {
        return new JmxMetricWriter(exporter);
    }
}

我没有看到通过我的 jconsole 在 Jmx 中收集端点调用的任何指标。我错过了什么?

【问题讨论】:

    标签: spring-boot dropwizard metrics spring-boot-actuator


    【解决方案1】:

    在这种情况下,唯一缺少的部分似乎是将org.springframework.boot.actuate.endpoint.MetricsEndpointMetricReader 添加到您的 Spring 配置中,例如:

       @Bean
       MetricsEndpointMetricReader metricsEndpointMetricReader(MetricsEndpoint metricsEndpoint) {
          return new MetricsEndpointMetricReader(metricsEndpoint);
       }
    

    【讨论】: