prometheus-metrics-core makes io.prometheus.metrics.tracer.initializer a mandatory OSGi import although the code supports its absence
Maintainer antworten meist innerhalb von 1 Tag
Ein zugehöriger Pull Request wurde bereits gemerged.
- #2528 von @kalayciburak — gemerged
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 78/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- java
- Bereich
- build-system
Rechercherichtung
Beginne in den Anweisungen für prometheus-metrics-core zum maven-bundle-plugin und prüfe das generierte OSGi-Manifest auf den Import von io.prometheus.metrics.tracer.initializer. Mache den Import optional, führe dann die OSGi-Tests oder micrometer-osgi-test-tests aus und verifiziere, dass das Bundle ohne prometheus-metrics-tracer-initializer aufgelöst wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
prometheus-metrics-core 1.9.0 ships Import-Package: io.prometheus.metrics.tracer.initializer;version="[1.9,2)" with no resolution:=optional, so an OSGi deployment that leaves out prometheus-metrics-tracer-initializer cannot resolve the bundle.
The code is written for that artifact to be absent. ExemplarSampler.sampleTraceContextLabels() calls SpanContextSupplier through its fully qualified name on purpose, and the comment says why:
// Using the qualified name so that Micrometer can exclude the dependency on
// prometheus-metrics-tracer-initializer
// as they provide their own implementation of SpanContextSupplier.
// If we had an import statement for SpanContextSupplier the dependency would be needed in any case.
The block that follows is guarded with catch (NoClassDefFoundError ignored).
Micrometer does exactly what that comment describes: micrometer-registry-prometheus excludes the artifact from prometheus-metrics-core. On the Maven side it works. In OSGi it does not resolve:
⇒ Bundle: micrometer-osgi-test-tests cannot be resolved
⇒ because Import-Package requirement for: io.micrometer.prometheusmetrics could not be provided
⇒ because Import-Package requirement for: io.prometheus.metrics.core.exemplars; version=[1.9.0,2.0.0)
⇒ because Import-Package requirement for: io.prometheus.metrics.tracer.initializer; version=[1.9.0,2.0.0)
Dropping prometheus-metrics-tracer-initializer onto the runtime makes it resolve and the tests pass, so that import is the only thing missing.
Marking it optional in the maven-bundle-plugin instructions for prometheus-metrics-core would line the manifest up with what the code already allows, the same way _exportcontents was added to prometheus-metrics-exposition-formats for #2395.
- Vorherrschende Sprache
- Java
- Sterne
- 2.3k
- Forks
- 833
- Ø Merge
- 1 T. 9 Std.
- Gemergte PRs (30 T.)
- 73
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus prometheus/client_java
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
prometheus/client_java#2416 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Switch Micrometer compatibility workflow to upstream once typed-descriptor path becomes defaultEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 86/100
prometheus/client_java#2182 ·
Maintainer antworten meist innerhalb von 1 Tag
-
OpenMetrics 2.0: option to keep _total and unit suffixes, so switching from OM1 doesn't rename seriesEvtl. vergeben @arnabnandy7 hat das vor 2 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 62/100
prometheus/client_java#2518 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Proposal: Prometheus HTTP API client module (prometheus-metrics-api-client)Evtl. wieder frei @arnabnandy7 hat das vor 83 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
prometheus/client_java#2306 · 10 Kommentare · 4 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
Improve Summary quantiles with DataSketchesEvtl. wieder frei @ADITYA-CODE-SOURCE hat das vor 157 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 32/100
prometheus/client_java#2084 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in prometheus/client_java
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Netcracker/qubership-integration-platform#1046 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
`check_java_version()` fails when Java path contains spaces (Windows / Git Bash, `C:\Program Files`)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Fix Math.ceilDiv wrong result for exact positive divisionsEvtl. vergeben @pamod-madubashana hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
scala-native/scala-native#5094 ·
Maintainer antworten meist innerhalb von 1 Tag
-
NullPointerException in blocking command completion callback when the command succeeds (3.52.0)Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 2 Tagen