2016-03-28 2 views
2

Ich habe eine Java-Anwendung auf Spring Boot geschrieben und ich kann die Metriken durch die /metrics Management-API generiert sehen. Ich möchte die Metriken filtern, die generiert werden (auf metrischen Präfix basiert) und auf die Standardausgabe drucken oder die ausgewählten Metriken zu einem 3rd-Party-Aggregator (nicht die, die here verwiesen)Spring Boot Metriken auf Stdout oder Aggregator ausgeben?

Ich versuchte, die von diesem answer vorgeschlagen Code Es wurden jedoch keine Metriken in das stdout geschrieben. Das ist, was ich meine Application.java Klasse hinzugefügt:

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

Was ist der beste Weg, um die Metriken auf einer vorkonfigurierten Kadenz abzufangen, damit ich sie an stdout verarbeiten und schreiben oder sie zu einem Aggregator veröffentlichen?

Danke.

+0

Hätten Sie etwas dagegen eine einfache Beispielanwendung zu teilen mehr Kontext zu sehen? Vielleicht gibt es nur etwas deaktiviert ... –

+0

Sicher: https://github.com/khoubyari/spring-boot-metrics – pastafarian

Antwort

1

Sieht aus wie ein Bug im Spring Boot: https://github.com/spring-projects/spring-boot/issues/5517.

Wir haben so etwas wie dies uns als Abhilfe zu erklären:

@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; 
} 
+0

Danke @artem. Ich denke, es wurde weiter, aber nicht ganz die Nachricht ausgibt. Der Fehler ist: 2016-03-29 09: 27: 16.924 WARN 11264 --- [ask-scheduler-2] osbamexport.AbstractMetricExporter: Konnte nicht in MetricWriter schreiben: class org.springframework.messaging.MessageDeliveryException: Der Dispatcher hat keine Abonnenten für den Kanal 'unknown.channel.name'; verschachtelte Ausnahme ist org.springframework.integration.MessageDispatchingException: Dispatcher hat keine Abonnenten "... Ich frage mich, welche ist" unknown.channel.name "? Wo würde ich prüfen, ob nur Metriken mit einem bestimmten Präfix ausgegeben werden? Vielen Dank. – pastafarian

+0

Sie sollten Ihre Bewerbung teilen. Das ist nicht klar. Vielleicht haben Sie einen 'MetricChannel', aber keine' metricHandler' Bean für diesen ... –

+0

Danke. Ich habe das Neueste zum obigen Projekt gedrängt. Ich werde auch den 'metricsHandler'-Hinweis folgen. – pastafarian

Verwandte Themen