[17.0.0.3 und höher]

Migration von Dropwizard Metrics

Die MicroProfile-Metrics-API ähnelt Dropwizard Metrics 3.2.3. In den meisten Fällen, kann mit Dropwizard Metrics instrumentierter Code mit MicroProfile Metrics mit geringfügigen Änderungen ausgeführt werden.

Wichtige Unterschiede in MicroProfile Metrics

  • Es ist nur eine Untergruppe der Kernklassen aus metrics-core und metrics-annotation verfügbar.
  • Klassen sind unter org.eclipse.microprofile.metrics und org.eclipse.microprofile.metrics.annotation gepackt.
  • Counter, Histogram, Timer, Meter und MetricRegistry sind Schnittstellen.
  • CDI kann verwendet werden, um die MetricRegistry und Metrikinstanzen abzurufen.
  • Es gibt eine einzige gemeinsam genutzte MetricRegistry für Anwendungen.
  • Metadaten können angegeben und mit der Metrik registriert werden.
  • Angepasste Systemzeiten und Reservoirs können nicht angegeben werden.

Paketnamen

Eine Untergruppe von Klassen aus den Dropwizardpaketen metrics-core und metrics-annotation finden Sie im MicroProfile-Metrics-Paket org.eclipse.microprofile.metrics. Das folgende Beispiel veranschaulicht, wie Sie den Paketnamen Ihrer Dropwizard-Metrics-Klassen aktualisieren können, um mit MicroProfile Metrics arbeiten zu können.
  • com.codahale.metrics wird zu org.eclipse.microprofile.metrics
  • com.codahale.metrics.annotation wird zu org.eclipse.microprofile.metrics.annotation

MetricRegistry abrufen

Die MetricRegistry ist eine Schnittstelle. Anstatt eine Instanz der Registry zu erstellen, können Sie die Anwendungs-MetricRegistry mithilfe von CDI einfügen.

Sie können anstelle
// eines Dropwizard-Snippets
MetricRegistry metrics = new MetricRegistry();
// oder
MetricRegistry sharedMetrics = SharedMetricRegistries.getOrCreate(...);
Folgendes verwenden:
@Inject
MetricRegistry metrics;

Schnittstellen: Counter, Histogram, Timer, Meter

Counter, Histogram, Timer und Meter sind Schnittstellen. Sie können nicht direkt instanziiert werden und müssen mithilfe der Registry oder mithilfe von CDI erstellt werden. Beispiel:

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

// Beispiel für die Verwendung einer Annotation
@Inject
@Metric(name="jobs", absolute=true)
Counter jobCount;

Symbol das den Typ des Artikels anzeigt. Konzeptartikel

Dateiname: cwlp_mp_mig_dropwizard.html