使用 Dropwizard 将 Spring 引导执行器指标导出到 Jmx 或 Graphite

Export Spring Boot Actuator Metrics using Dropwizard to Jmx or Graphite

我想使用 Spring 引导 MetricsWriter 到 write/export 从我的 Spring 引导应用程序到我选择的数据源的数据(比如 - Jmx/Graphite).我可以用JmxReporter/GraphiteReporter,但是我猜Spring对Writer/Exporter的抽象在后面的数据源变化方面可以起到至关重要的作用.

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

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

我的配置 class 如下所示:

@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 中收集端点调用的任何指标。我错过了什么?

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

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