2016-06-17 1 views
1

私はいくつかのドメイン固有のカウンタを管理するために、Springブートメトリックhttp://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-metrics.html#production-ready-metricsを使用しています。スプリングブートメトリック値の読み方は?

私のクラスには@Autowired org.springframework.boot.actuate.metrics.CounterServiceがあり、ドメイン固有のイベント(リクエストを解析するさまざまな段階)に関するメトリックが増えています。

私のテストで(私のテストリクエストがすべての必要な段階を経たかどうかを確認するために)それらのメトリックを読んでいますが、CounterServiceにgetメソッドがありません。 CounterServiceのすべての実装には、メトリックを持つprivate ConcurrentMapがありますが、このデータ構造に到達する方法はありません。

私はスプリングブート1.3.5.RELEASEを使用しています。

編集: 私は統合テストに興味があります。可能であれば、どのコンポーネントも模擬したくありません。

現在、私は/ metricエンドポイントに対してREST呼び出しを使用していますが、返されたjsonを解析しますが、私はその方法が嫌いです。

答えて

1

1つの方法は、モックCounterServiceを使用して、期待されたメソッドがモックで呼び出されたことを確認することです。

さらに多くの統合テストが必要な場合は、MetricReaderを使用して、CounterServiceが書いたメトリックを読むことができます。 @AutowireMetricReaderまたはMetricRepository(後者はMetricReaderMetricWriterの組み合わせです)とfindOneを呼び出すことができます。

+0

ありがとうございます、MetricRepositoryは完璧に見えます!私はSpring Bootのドキュメントを見ましたが、別の使用例 - Redisと他のデータベースへのメトリクスのエクスポートについて説明しています。 MetricRepositoryは、私が持っている別の問題を解決すると思います。私は、メトリックをリセットするHTTPエンドポイント(内部またはテスト用のみ)を持っていたいと思います。それがテストを容易にします。私は現在、Jmeterテストでトラフィックを生成する前と後にメトリックを読み取ります。 –

関連する問題