prometheus / prometheus/client_java
Code Quality Improvement Plan
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 2.3k
- Fork
- 833
- Merge medio
- 2g 16h
- PR unite (30g)
- 86
Descrizione
This issue tracks code quality improvements for the Prometheus Java Client library. Work through these items incrementally.
Remaining Items
Add SpotBugs (Medium Priority)
- Add
spotbugs-maven-plugintopom.xml - Configure with appropriate rule set
- Note: Deferred due to Java 25 compatibility issues
Refactor Large Classes (Lower Priority)
-
prometheus-metrics-core/src/main/java/.../Histogram.java(978 lines) - consider extracting native histogram logic
Document Configuration Classes (Lower Priority)
-
PrometheusPropertiesLoader- add JavaDoc -
ExporterPropertiesand related classes - add JavaDoc -
ExporterOpenTelemetryProperties- add JavaDoc (noted in TODO)
Consolidate Servlet Exporter Duplication (Lower Priority)
- Extract common logic from
servlet-jakartaandservlet-javaxintoexporter-common
Add Mutation Testing (Lower Priority)
- Add Pitest (
pitest-maven) for critical modules - Start with
prometheus-metrics-coreandprometheus-metrics-model
Completed Items
- Add Missing Test Coverage for Exporter Modules — Added 55 tests across 4 modules: exporter-common (22), servlet-jakarta (14), servlet-javax (14), otel-agent-resources (5).
- Eliminate Dropwizard Module Duplication — Created
AbstractDropwizardExportsbase class with generics. Reduced both modules by ~30%. - Address Technical Debt (TODOs) — Completed all 6 TODO items: JavaDoc for ExporterOpenTelemetryProperties, Histogram reset interval tests, environment variable support in PrometheusPropertiesLoader, OpenTelemetry filter documentation, Summary exemplars documentation, SlidingWindow synchronization documentation.
- Improve Exception Handling — Replaced broad
catch (Exception e)with specific exception types in 6 locations. - Add Branch Coverage to JaCoCo — Added BRANCH counter check with 50% minimum threshold.
- Raise Minimum Coverage Thresholds — Raised 4 modules to consistent 60% line coverage.
- Narrow Checkstyle Suppressions — Replaced global Javadoc suppression with targeted rules for internal/example/benchmark/test packages.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Questo è un piano composto da più elementi, non una singola attività. Inizia selezionando un elemento non spuntato, quindi esamina il pom.xml, Histogram.java, le classi di configurazione o i moduli servlet indicati e considera la nota sulla compatibilità di SpotBugs con Java 25. È completato quando l'elemento selezionato dell'elenco di controllo è implementato e il suo ambito è stato verificato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- build-system, tooling
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100