An asyncio-based client for sending metrics to StatsD with support of DogStatsD extension.
Library fully tested with statsd_exporter and supports gauge
, counter
, histogram
, distribution
and timing
types.
Just type:
$ pip install aiodogstatsd
...or if you're interested in integration with AIOHTTP
or Sanic
frameworks specify corresponding extras:
$ pip install aiodogstatsd[aiohttp,sanic]
You can simply initialize client to send any metric you want:
import asyncio
import aiodogstatsd
async def main():
client = aiodogstatsd.Client()
await client.connect()
client.increment("users.online")
await client.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
...or you can also use client as a context manager:
import asyncio
import aiodogstatsd
async def main():
async with aiodogstatsd.Client() as client:
client.increment("users.online")
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Look at examples/
to find more examples of library usage, e.g. integration with AIOHTTP
or Sanic
frameworks.
To work on the aiodogstatsd
codebase, you'll want to clone the project locally and install the required dependencies via poetry:
$ git clone git@github.com:Gr1N/aiodogstatsd.git
$ make install
To run tests and linters use command below:
$ make lint && make test
If you want to run only tests or linters you can explicitly specify which test environment you want to run, e.g.:
$ make lint-black
aiodogstatsd
is licensed under the MIT license. See the license file for details.