Aioprometheus summary with quantiles over configurable sliding time window
Project description
aioprometheus-summary
Aioprometheus summary with quantiles over configurable sliding time window
Installation
pip install aioprometheus-summary==0.1.0
This package can be found on PyPI.
Collecting
Basic usage
from aioprometheus_summary import Summary
s = Summary("request_latency_seconds", "Description of summary")
s.observe({}, 4.7)
With labels
from aioprometheus_summary import Summary
s = Summary("request_latency_seconds", "Description of summary")
s.observe({"method": "GET", "endpoint": "/profile"}, 1.2)
s.observe({"method": "POST", "endpoint": "/login"}, 3.4)
With custom quantiles and precisions
By default, metrics are observed for next quantile-precision pairs
((0.50, 0.05), (0.90, 0.01), (0.99, 0.001))
but you can provide your own value when creating the metric.
from aioprometheus_summary import Summary
s = Summary(
"request_latency_seconds", "Description of summary",
invariants=((0.50, 0.05), (0.75, 0.02), (0.90, 0.01), (0.95, 0.005), (0.99, 0.001)),
)
s.observe({}, 4.7)
With custom time window settings
Typically, you don't want to have a Summary representing the entire runtime of the application, but you want to look at a reasonable time interval. Summary metrics implement a configurable sliding time window.
The default is a time window of 10 minutes and 5 age buckets, i.e. the time window is 10 minutes wide, and we slide it forward every 2 minutes, but you can configure this values for your own purposes.
from aioprometheus_summary import Summary
s = Summary(
"request_latency_seconds", "Description of summary",
# time window 5 minutes wide with 10 age buckets (sliding every 30 seconds)
max_age_seconds=5 * 60,
age_buckets=10,
)
s.observe({}, 4.7)
Querying
Suppose we have a metric:
from aioprometheus_summary import Summary
s = Summary("request_latency_seconds", "Description of summary")
To show request latency by method
, endpoint
and quntile
use next query:
max by (method, endpoint, quantile) (request_latency_seconds)
To only 99-th quantile:
max by (method, endpoint) (request_latency_seconds{quantile="0.99")
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 aioprometheus-summary-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 575cf926ba01dd3e20608edb0ed38cbf5ea0f471639ae6fa43002e8b527e762a |
|
MD5 | 71df3c96916f426af1289ef176734cc5 |
|
BLAKE2b-256 | 57da1f1ca9808ee65efe65a4d8d2f20f5b58fcdfaf1910a6e4d2e4fc517fe533 |
Hashes for aioprometheus_summary-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d85478817f27c020d238436713b5607bedaf8fe843611184dd33b158ceb25c68 |
|
MD5 | e91317f56c19b5b14b7623f63e0bf2de |
|
BLAKE2b-256 | 396bd1e032aeddeb5b395fa4ae102712cae3066a0542656839f9ba00f4b9083e |