JayH5 / aiodogstatsd

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

Home Page:https://pypi.org/project/aiodogstatsd/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Installation

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]

Usage

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.

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.

About

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

https://pypi.org/project/aiodogstatsd/

License:MIT License


Languages

Language:Python 89.5%Language:Jsonnet 6.6%Language:Makefile 3.9%