2016-03-28 2 views
2

私はSpringアプリケーションの上に書かれたJavaアプリケーションを持っており、/metrics管理APIを通してメトリックが生成されているのがわかります。私は、このanswerによって提案されたコードを試してみましたSpringブートメトリックをStdoutまたはアグリゲータに書き出しますか?

(ないものはhereを参照)(メトリックプレフィックスに基づいて)生成されている指標をフィルタリングし、標準出力に印刷したり、サードパーティのアグリゲータに選択したメトリックを送信したいですstdoutに書き込まれたメトリックは発生しませんでした。これは私が私のApplication.javaクラスに追加するものです。

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

私が処理し、標準出力に書き込むか、それらをアグリゲータに公開することができますので、事前に設定ケイデンスにメトリックを傍受するための最良の方法は何ですか?

ありがとうございました。

+0

あなたはより多くのコンテキストを参照するには、簡単なサンプルアプリケーションを共有するために気にしませんか?おそらく無効なものがあります... –

+0

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

答えて

1

これはSpring Bootのバグのようです:https://github.com/spring-projects/spring-boot/issues/5517

私たちは、回避策として、このような何か自分自身を宣言する必要があります。

@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

ありがとうございます@artem。私はそれがさらにあるが、メッセージを出力していないと思う。エラーは '2016-03-29 09:27:16.924です。WARN 11264 --- [ask-scheduler-2] osbamexport.AbstractMetricExporter:MetricWriterに書き込めませんでした:class org.springframework.messaging.MessageDeliveryException:Dispatcherにサブスクライバがありませんチャンネル 'unknown.channel.name'の場合。入れ子にされた例外はorg.springframework.integration.MessageDispatchingExceptionです:Dispatcherにはサブスクライバがありません '...どれが' unknown.channel.name'ですか?また、与えられたプレフィックスを持つ出力メトリックだけを調べるのはどこですか?ありがとう。 – pastafarian

+0

あなたのアプリケーションを共有する必要があります。それははっきりしない。たぶんあなたは 'metricsChannel'を持っていますが、そのための' metricsHandler' Beanはありません。 –

+0

ありがとう。私は上記のプロジェクトに最新のものを押し込んだ。私は 'metricsHandler'ヒントにも続きます。 – pastafarian

関連する問題