![[17.0.0.3 and later]](../ng_v17003plus.gif)
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.metrics は org.eclipse.microprofile.metrics になります
- com.codahale.metrics.annotation は org.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;