[17.0.0.3 and later]

Migration depuis Dropwizard metrics

L'API MicroProfile metrics est similaire à Dropwizard metrics 3.2.3. Dans la plupart des cas, le code qui est instrumenté avec Dropwizard metrics peut s'exécuter avec MicroProfile metrics avec quelques petites variations.

Principales différences dans MicroProfile Metrics

  • Seul un sous-ensemble de classes de base de metrics-core et metrics-annotation est disponible.
  • Les classes sont packagées sous org.eclipse.microprofile.metrics et org.eclipse.microprofile.metrics.annotation.
  • Counter, Histogram, Timer, Meter et MetricRegistry sont des interfaces.
  • CDI peut être utilisé pour obtenir les instances metric et MetricRegistry.
  • Une seule application partagée MetricRegistry.
  • Les métadonnées peuvent être fournies et enregistrées avec la métrique.
  • Les horloges et réservoirs personnalisés ne peuvent pas être fournis.

Noms de packages

Un sous-ensemble de classes des packages Dropwizard metrics-core et metrics-annotation est disponible dans le package MicroProfile metrics org.eclipse.microprofile.metrics. L'exemple suivant illustre comment vous pouvez mettre à jour le nom de package de vos classes Dropwizard metrics pour travailler avec MicroProfile metrics.
  • com.codahale.metrics devient org.eclipse.microprofile.metrics
  • com.codahale.metrics.annotation devient org.eclipse.microprofile.metrics.annotation

Obtention de MetricRegistry

MetricRegistry est une interface. Au lieu de créer une instance du registre, vous pouvez injecter l'application MetricRegistry à l'aide d'une CDI.

Au lieu d'utiliser
// Dropwizard snippet
MetricRegistry metrics = new MetricRegistry();
// or
MetricRegistry sharedMetrics = SharedMetricRegistries.getOrCreate(...);
vous pouvez utiliser
@Inject
MetricRegistry metrics;

Interfaces Counter, Histogram, Timer, Meter

Counter, Histogram, Timer et Meter sont des interfaces. Elles ne peuvent pas être directement instanciées et doivent être créées à l'aide du registre ou via une CDI. Par exemple :

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

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

Icône indiquant le type de rubrique Rubrique de concept

Nom du fichier : cwlp_mp_mig_dropwizard.html