/aiodogstatsd

An asyncio-based client for sending metrics to StatsD with support of DogStatsD extension

Primary LanguagePythonMIT LicenseMIT

aiodogstatsd

Build Status codecov PyPI PyPI - Downloads GitHub

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.

Installation

Just type:

$ pip install aiodogstatsd

At a glance

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.

Contributing

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

License

aiodogstatsd is licensed under the MIT license. See the license file for details.