prometheus / prometheus/client_java
Escaping API inconsistencies
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
If I understand correctly, this is approximately how I should produce an output:
expositionFormats.findWriter(accept)
.write(System.out, registry.scrape(), EscapingScheme.fromAcceptHeader(accept));
The problem with this is that the API forces me to pass the accept header twice, so theoretically I can do this:
expositionFormats.findWriter(acceptHeaderOne)
.write(System.out, registry.scrape(), EscapingScheme.fromAcceptHeader(acceptHeaderTwo));
Which can lead to inconsistencies, it is easy to misuse the API.
I'm wondering if something like this would make sense:
expositionFormats.findWriter(accept).write(System.out, registry.scrape());
and the writer would have the EscapingScheme.
The writer still can be cached but it would be a little more than today.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, die expositionFormats.findWriter API, die write-Methode des Writers und die Verwendungen von EscapingScheme.fromAcceptHeader im Java-Client nachzuverfolgen. Vergleiche, wie gecachte Writer behandelt werden, und bestimme, wie die API vermeiden kann, zwei potenziell unterschiedliche Header zu akzeptieren; als erledigt gilt die Aufgabe, wenn die vorgeschlagene Verwendung konsistent ist, ohne das Writer-Caching zu verlieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- api
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100