prometheus / prometheus/client_python
Async context manager
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
Usecase:
c = Counter("errors_count")
@c.count_exceptions()
def foo(): # counter = 1
raise Exception()
@c.count_exceptions()
async def foo_async(): # counter still 1
await sleep(1)
raise Exception()
Quick search in project did nothing to me.
It would be cool if counter (and other objects) would handle this right out of the box, especially if we're talking about metrics for web world.
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 Counter-Implementierung und ihren count_exceptions()-Decorator nachzuverfolgen, und untersuche dann, wie sich das Beispiel für foo_async verhält. Definiere das unterstützte Verhalten für asynchrone Context-Manager oder Decorator und verifiziere, dass Ausnahmen aus dem asynchronen Beispiel den Zähler wie angefordert aktualisieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- observability-sre
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100