Module for keeping metrics about your application in Redis. The goal is to have an easy way to measure an application, and then expose these metrics through a HTTP API, either to process it in some web ui, or expose it to Prometheus.
Project description
Aka Stats
Aka (赤 - red in japanese) Stats.
Unified module for keeping stats in Redis.
The goal is to have an easy way to measure an application, and then expose these metrics through a HTTP API, either to process it in some web ui, or expose it to Prometheus.
from aka_stats import Stats, timer
with Stats() as stats:
t = timer()
...
stats("task_done", next(t).stat)
Or for asynchronouse code:
from aka_stats import Stats, timer
async def process_device(device_id: str):
async with Stats() as stat:
t = timer()
...
stats("task_done", next(t).stat, extra_labels={"device_id": device_id})
Installation
And add this package to your project:
poetry add aka-stats
Usage Guide
Check out the usage guide here: Usage.md
Prometheus formatters
Information how to write a formatter is here: PrometheusFormatter.md
Optional Standalone HTTP API
Check out this guide here: Included HTTP API
Pytest plugin
This module is also a pytest plugin, providing a fixture mock_stats
which collects stats instead of writing them
to Redis.
def test_something(mock_stats):
do_something()
assert mock_stats[0] == (1612550961, "test", 1, None)
And the module with function:
def do_something():
with Stats() as stats:
stat("test", 1)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aka_stats-21.2.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1985937a8f14d700a6fce28d5cea799f001b9b853718bfdcc192f772ae1fb597 |
|
MD5 | 2a7a05281d73a4e583d643d13da18e43 |
|
BLAKE2b-256 | 26e20c1e77620fb7ceae7effad7f054f9defc90b99b3dca976be49f07fd7f1ca |