An asyncio statsd client for Python >= 3.4. The underlying protocol is written in cython, which we can all admit is pretty cool.
It automatically batches multiple metrics in single UDP packets, with a configurable target packet size of 512 bytes. The flush interval defaults to 0.5 seconds, but can also be configured.
pip install aiostatsdimport asyncio
from aiostatsd.client import StatsdClient
async def go():
client = StatsdClient("127.0.0.1", 8015)
asyncio.ensure_future(client.run())
with client.timer("something", rate=0.1):
await asyncio.sleep(0.5)
client.incr("x")
client.decr("y", 5)
client.send_gauge("queue_depth", 50)
await client.stop()
if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(go())MIT