[Twisted-Python] [ANN] prometheus_async: asyncio/Twisted-aware Python Prometheus instrumentation
![](https://secure.gravatar.com/avatar/174e7b0ff60963f821d0b9a4f1a3ef52.jpg?s=120&d=mm&r=g)
Dear fellow friends of asynchronous software, maybe some of you have already bumped into the Prometheus monitoring system <https://prometheus.io> and liked it like I do (in any case, I’d like to invite you to my PyCon US talk on that topic: <https://us.pycon.org/2016/schedule/presentation/1601/>!) And while it’s great that Python is a first class citizen due to the official Python client library <https://github.com/prometheus/client_python>, asyncio and Twisted sadly aren’t! That’s why I’ve just released prometheus_async: https://prometheus-async.readthedocs.io/ First and foremost it wraps the metrics from the official client (you don’t want *me* to do math!) and makes them work properly on coroutines and Deferreds (and makes them well-behaved decorators too but that’s a topic for another day…). Additionally, it adds a few goodies: - Metric-exposure via aiohttp that ist much more flexible than what comes with the stdlib-based official solution. - …that can also be started in a separate thread. That means you can use them in regular, *synchronous* Python 3 applications as well (I instrument all my Pyramid apps like that). - Integration with service discovery. Listen on port 0 and leave registration to Consul Agent (integration is pluggable, just implement two methods)! Sadly the goodies are asyncio-only so far. Partly because the official client has some Twisted Web support merged but not released yet. Contributions are very welcome! Cheers, Hynek
participants (1)
-
Hynek Schlawack