[17.0.0.3 and later]

Dropwizard メトリックのマイグレーション

MicroProfile Metrics API は、Dropwizard Metrics 3.2.3 に似ています。ほとんどの場合、Dropwizard メトリックで計測されるコードは、いくつかの小さな変更を加えるだけで MicroProfile メトリックを使用して実行できます。

MicroProfile メトリックの主な相違点

  • metrics-core および metrics-annotation からのコア・クラスのサブセットのみが使用可能です。
  • クラスは org.eclipse.microprofile.metrics および org.eclipse.microprofile.metrics.annotation の下にパッケージされます。
  • Counter、Histogram、Timer、Meter、および MetricRegistry は、インターフェースです。
  • CDI を使用して MetricRegistry およびメトリック・インスタンスを取得できます。
  • 単一の共有アプリケーション MetricRegistry。
  • メタデータを指定してメトリックと共に登録できます。
  • カスタム Clock および Reservoir を指定することはできません。

パッケージ名

Dropwizard の metrics-core パッケージおよび metrics-annotation パッケージからのクラスのサブセットが、MicroProfile メトリック・パッケージ org.eclipse.microprofile.metrics 内にあります。以下の例は、MicroProfile メトリックと共に機能するように Dropwizard メトリック・クラスのパッケージ名を更新する方法を示しています。
  • com.codahale.metricsorg.eclipse.microprofile.metrics になります
  • com.codahale.metrics.annotationorg.eclipse.microprofile.metrics.annotation になります

MetricRegistry の取得

MetricRegistry はインターフェースです。レジストリーのインスタンスを作成する代わりに、CDI を使用してアプリケーション MetricRegistry を注入できます。

以下は使用せず、
// Dropwizard snippet
MetricRegistry metrics = new MetricRegistry();
// or
MetricRegistry sharedMetrics = SharedMetricRegistries.getOrCreate(...);
代わりに以下を使用できます。
@Inject
MetricRegistry metrics;

Counter、Histogram、Timer、Meter インターフェース

Counter、Histogram、Timer、および Meter はインターフェースです。これらは、直接インスタンス化することはできず、レジストリーを使用するか CDI を使用して作成する必要があります。以下に例を示します。

Counter jobCount = metrics.counter("jobs");

//Example using annotation
@Inject
@Metric(name="jobs", absolute=true)
Counter jobCount;

トピックのタイプを示すアイコン 概念トピック

ファイル名: cwlp_mp_mig_dropwizard.html