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.
aiodogstatsd
client by default uses 9125 port. It's a default port for statsd_exporter and it's different from 8125 which is used by default in StatsD and DataDog. Initialize the client with the proper port you need if it's different from 9125.
Just type:
$ pip install aiodogstatsd
Just simply use client as a context manager and send any metric you want:
import asyncio
import aiodogstatsd
async def main():
async with aiodogstatsd.Client() as client:
client.increment("users.online")
asyncio.run(main())
Please follow documentation or look at examples/
directory to find more examples of library usage, e.g. integration with AIOHTTP
or Starlette
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.