2017-05-06 4 views
6

Je souhaite utiliser Spring Boot MetricsWriter pour écrire/exporter des données de mon application Spring Boot vers une source de données de mon choix (disons Jmx/Graphite). Je peux utiliser JmxReporter/GraphiteReporter, mais je suppose que l'abstraction de Spring de Writer/Exporter peut jouer un rôle essentiel en termes de changements de sources de données plus tard.Exporter les métriques d'actionneur Spring Boot en utilisant Dropwizard sur Jmx ou Graphite

Mon point de terminaison REST est annotées avec annotations Dropwizard

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

Ma classe de configuration ressemble à ceci:

@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); 
    } 
} 

Je ne vois pas de mesures pour l'invocation de point final à recueillir dans JMX dans mon jconsole. Qu'est-ce que je rate?

Répondre

2

La seule pièce manquante dans ce cas semble être d'ajouter un org.springframework.boot.actuate.endpoint.MetricsEndpointMetricReader à votre configuration Spring, comme par exemple:

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