prometheus / prometheus/client_python
Multiprocess mode support for 'remove'
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 4.4k
- Forks
- 876
- Ø Merge
- 8 T. 4 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
In multiprocess mode calling 'remove' on a metric/label doesn't actually remove it from the metrics output.
Also, because of the disconnect between the Metric classes's remove and MultiProcessValue, the following snippet will use more memory every iteration as the MultiProcessValue.values list keeps adding copies.
import os
os.environ['PROMETHEUS_MULTIPROC_DIR'] = '/tmp'
from prometheus_client import Counter
c = Counter('a', 'a', ['a'])
while True:
c.labels('hi').inc()
c.remove('hi')
Perhaps 'remove' should be disabled in multiprocess mode, or at least something added to the multiprocess documentation?
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 bereitgestellte Schleife im Multiprozessmodus zu reproduzieren, und untersuche anschließend das remove-Verhalten der Metric-Klassen zusammen mit MultiProcessValue und der Multiprozess-Dokumentation. Bestimme, wie sich das Entfernen auf ausgegebene Metriken und die wachsende values-Liste auswirken sollte; abgeschlossen bedeutet, dass das gewählte Verhalten implementiert und durch einen Regressionstest abgedeckt ist oder dass die Einschränkung eindeutig dokumentiert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- observability-sre
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100