[17.0.0.3 and later]

Migración de métricas Dropwizard

La API de métricas de MicroProfile es similar a las métricas de Dropwizard 3.2.3. En la mayoría de los casos, el código que se instrumentaliza con métricas Dropwizard se puede ejecutar con métricas de MicroProfile con unos pequeños cambios.

Diferencias clave en métricas de MicroProfile

  • Solo está disponible un subconjunto de clases básicas de métrica básica y anotación de métricas.
  • Las clases se empaquetan en org.eclipse.microprofile.metrics y org.eclipse.microprofile.metrics.annotation.
  • Contador, Histograma, Temporizado, Medidor y MetricRegistry son interfaces.
  • CDI se puede utilizar para obtener las instancias de MetricRegistry y de métrica.
  • Un único MetricRegistry de aplicación compartido.
  • Los metadatos se pueden proporcionar y registrar con la métrica.
  • No se pueden proporcionar reservas ni un reloj personalizados.

Nombres de paquete

Se puede encontrar un subconjunto de los paquetes de métricas básicas y anotaciones de métrica de Dropwizard en el paquete MicroProfile org.eclipse.microprofile.metrics. El ejemplo siguiente ilustra cómo puede actualizar el nombre de paquete de las clases de métricas de Dropwizard para que funcionen con métricas de MicroProfile.
  • com.codahale.metrics se convierte en org.eclipse.microprofile.metrics
  • com.codahale.metrics.annotation se convierte en org.eclipse.microprofile.metrics.annotation

Obtener el MetricRegistry

MetricRegistry es una interfaz. En lugar de crear una instancia del registro, puede inyectar el MetricRegistry de aplicación utilizando CDI.

En lugar de utilizar
// Fragmento de código Dropwizard
MetricRegistry metrics = new MetricRegistry();
//
o bien
MetricRegistry sharedMetrics = SharedMetricRegistries.getOrCreate(...);
Puede utilizar
@Inject
MetricRegistry metrics;

Interfaces Contador, Histograma, Temporizador, Medidor

Contador, Histograma, Temporizador y Medidor son interfaces. No se pueden instancia directamente y se deben crear utilizando el registro o mediante CDI. Por ejemplo:

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

//Ejemplo de uso de anotación
@Inject
¡@Metric(name="jobs", absolute=true)
Counter jobCount;

Icono que indica el tipo de tema Tema de concepto

Nombre de archivo: cwlp_mp_mig_dropwizard.html