2016-10-28 5 views
1

Ich versucheSpringboot MetricRepository

org.springframework.boot.actuate.metrics.repository.MetricRepository 

zu verwenden Metriken auszuspucken mit

private final MetricRepository repository; 

@Autowired 
public MetricExporterService(MetricRepository repository) { 
    this.repository = repository; 
} 

aber da ich verwende Java 1.8 ich

Parameter 0 of constructor in com.example.actuator.MetricExporterService required a bean of type 'org.springframework.boot.actuate.metrics.repository.MetricRepository' that could not be found. 
    - Bean method 'actuatorMetricRepository' not loaded because @ConditionalOnJava (older than 1.8) found 1.8 

Gibt es eine Möglichkeit von Dieses Verhalten überschreiben?

Antwort

4

Mit Java 8, sollten Sie lieber verwenden CounterService, GaugeService und BufferMetricReader:

@Autowired 
private BufferMetricReader metricReader; 

@Autowired 
private CounterService counterService; 

@Autowired 
private GaugeService gaugeService; 

... 

counterService.increment("metric1"); 
gaugeService.submit("metric2", 10d); 
metricReader.findAll(); 

Spring Documentation:

Die Standardimplementierung von GaugeService und Counter bereitgestellt von Spring-Boot hängt von der Version von Java, das Sie verwenden. Mit Java 8 (oder besser) schaltet die Implementierung auf eine leistungsfähige Version Version für schnelle Schreibvorgänge, unterstützt durch atomare In-Memory-Puffer, statt durch die unveränderliche, aber relativ teure Metrik Typ (Zähler sind etwa 5-mal schneller und misst etwa doppelt so schnell wie die Repository-basierten Implementierungen).

...

[Anmerkung] Der alte MetricRepository und seine InMemoryMetricRepository Implementierung werden nicht standardmäßig verwendet, wenn Sie auf Java 8 sind oder wenn Sie verwenden Dropwizard Metriken.

...

Um Ihre eigenen Metriken injizieren einen Counterservice und/oder GaugeService in Ihrem Bean aufzunehmen. Der CounterService macht Inkrement-, Dekrement- und Reset-Methoden verfügbar; Der GaugeService stellt eine Übermittlungsmethode bereit.