[17.0.0.3 and later]

Dropwizard 指标迁移

“MicroProfile 指标”API 类似于 Dropwizard Metrics 3.2.3。在大多数情况下,使用 Dropwizard 指标检测的代码只需进行少量更改即可与 MicroProfile 指标一起运行。

MicroProfile Metrics 中的关键差异

  • 只有来自 metrics-core 和 metrics-annotation 的核心类子集可用。
  • 类打包在 org.eclipse.microprofile.metricsorg.eclipse.microprofile.metrics.annotation 下。
  • Counter、Histogram、Timer、Meter 和 MetricRegistry 是接口。
  • CDI 可用于获取 MetricRegistry 和指标实例。
  • 单个共享应用程序 MetricRegistry。
  • 可以随指标一起提供和注册元数据。
  • 无法提供定制时钟和池。

包名称

可以在 MicroProfile 指标包 org.eclipse.microprofile.metrics 中找到来自 Dropwizard metrics-core 和 metrics-annotation 包的类子集。以下示例说明可以如何更新 Dropwizard 指标类的包名称以便与 MicroProfile 指标配合工作。
  • 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();
// 或
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