prometheus / prometheus/client_java

Issue when using @Timed annotation with prometheus-metrics-instrumentation-dropwizard

Offen
#1,321 6 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
2.3k
Forks
833
Ø Merge
2 T. 16 Std.
Gemergte PRs (30 T.)
86

Beschreibung

@Timed annotation, which can be annotated on the methods generates dropwizard metrics with .total as a suffix.

This is not compatible with prometheus-metrics-instrumentation-dropwizard to export dropwizard metrics.

Since the io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports class has a method fromSnapshotAndCount which sanitizes the metric name withPrometheusNaming.sanitizeMetricName(dropwizardName).

As a result it causes duplicate metric name exception when prometheus endpoint is invoked.

Original reference here:
https://github.com/dropwizard/dropwizard/issues/10030 #

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports, insbesondere mit fromSnapshotAndCount und dessen Aufruf von sanitizeMetricName. Reproduziere die Ausnahme für doppelte Metriknamen, indem du Metriken aus einer mit @Timed annotierten Methode exportierst und den Prometheus-Endpunkt aufrufst. Als abgeschlossen gilt die Aufgabe, wenn Dropwizard-Metriken mit dem Suffix .total ohne Fehler aufgrund doppelter Namen exportiert werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, prometheus
Bereich
observability
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
50/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.