2016-03-28 54 views
2

Spring Boot'ın üzerine yazılmış bir java uygulamasına sahibim ve /metrics yönetim API'sı aracılığıyla oluşturulmuş metrikleri görebiliyorum. Ben bu answer önerdiği kod çalıştıSpring Boot metriklerini Stdout veya toplayıcıya yazdınız mı?

(here başvurulan olanları değil) üretilen (metrik öneki göre) olan ölçümleri filtrelemek ve Stdout'a yazdırmak VEYA 3. taraf toplayıcı seçilen ölçümleri göndermek istiyorum ancak, stdout'a yazılmış herhangi bir metrikle sonuçlanmadı. Bu benim Application.java sınıfa eklenen şudur:

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

Ben işlemek ve Stdout'a bunları yazmak veya bunları bir toplayıcı yayımlamak böylece önceden yapılandırılmış kadans üzerinde ölçümlerini kesmek için en iyi yolu nedir?

Teşekkürler.

+0

daha fazla bağlam görmek için basit bir örnek uygulama paylaşmaya sakıncası var:

Kendimizi geçici bir çözüm olarak böyle bir şey beyan etmek zorunda? Belki de sadece bir şey engellenir ... –

+0

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

cevap

1

Spring Boot: https://github.com/spring-projects/spring-boot/issues/5517'da bir hata olduğu anlaşılıyor.

@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

Teşekkür ederim @artem. Bence daha da uzandı, ama mesajı vermekten değil. Hata '2016-03-29 09: 27: 16.924 WARN 11264 --- [sor-scheduler-2] osbamexport.AbstractMetricExporter: MetricWriter'e yazılamadı: class org.springframework.messaging.MessageDeliveryException: Dispatcher'ın abonesi yok 'unknown.channel.name' kanalı için; nested exception org.springframework.integration.MessageDispatchingException: Dispatcher'ın abonesi yok. Hangisinin 'unknown.channel.name' olduğunu merak ediyorum? Ayrıca, yalnızca belirli bir ön ekin ile çıktı metriklerini inceler miyim? Teşekkürler. – pastafarian

+0

Uygulamanızı paylaşmalısınız. Bu net değil. Belki bir "metrikleriChannel" var, ama bunun için 'metricsHandler' fasulye yok ... –

+0

Teşekkürler. En sondaki projeye ittim. Ayrıca metricsHandler'ın ipucunu da takip edeceğim. – pastafarian