2017-04-10 4 views
0

私は標準およびカスタムメトリックを測定するスプリングブートアプリケーションを実行しています。今私は、これらの測定基準をさらなる調査のためにelasticsearchに残しておきたい。私は機能しているELKスタックを用意していますので、明らかな解決策は、ログファイルに測定値を保存して、ファイルビートがそれを収集できるようにすることでした。spring-bootメトリックをログとして保持する方法は?

私はこれを達成している可能性がexampleを、発見したが、それはもはや

official documentationのJava 8でサポートされて役に立たないですMetricRepositoryを、使用していました。示されたすべての例は、独自の形式を使用しているか、データベースに書き込んでいます。

メトリックをログファイルとして保存する方法は誰でも提供できますか?

+0

あなたが何をする必要があるのか​​を説明するためにリンクしたドキュメントの最初の2行。 'MetricRepository'が廃止され、まだSpring Boot 1.5.2にも、Spring Boot 2.0.0にもなっていないという考えをどこで得たのでしょうか?また、Elasticを使用している場合、追加のライブラリが必要ですが、既に[エクスポータ](https://github.com/elastic/elasticsearch-metrics-reporter-java)があります。 –

+0

"古いMetricRepositoryとそのInMemoryMetricRepository実装は、Java 8を使用している場合、またはDropwizardメトリックを使用している場合、デフォルトでは使用されません。 - [documentation]の最初の情報ボックス(https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-metrics.html#production-ready-metric-リポジトリ)。 –

答えて

1

あなたはMetricWriterの実装を書いて、豆に@ExportMetricWriterとマークする必要があります。ケーキの一片でなければなりません。ログに書き込むだけで3つの方法を実装すれば、それだけです。ドキュメントはあなたがインスピレーションのためにその実装を参照することができますいくつかの他の人が言及した

@Component 
@ExportMetricWriter 
public class MyMetricWriter implements MetricWriter, Closeable { 

    private static final Log logger = LogFactory.getLog(MyMetricWriter.class); 


@Override 
public void increment(Delta<?> delta) { 
    // record increment to log 
} 

@Override 
public void set(Metric<?> value) { 
    // record set metric to log 
} 

@Override 
public void reset(String name) { 
    // Not implemented 
} 

@Override 
public void close() { 
    /// ... 
    } 
} 

:よう

何か。

関連する問題