Arq-prometheus
Prometheus metrics for arq
⚠️ WARNING! This is a project in alpha phase ⚠️
Installation
pip install -U arq-prometheus
poetry add arq-prometheus
Description
The metrics exposed are the same as the health check.
| Metric name | Description |
|---|---|
arq_jobs_completed |
The number of jobs completed |
arq_jobs_failed |
The total number of errored jobs |
arq_jobs_retried |
The total number of retried jobs |
arq_ongoing_jobs |
The number of jobs in progress |
arq_queued_inprogress |
The number of jobs in progress |
When working with arq I found some limitations, it was specially hard to get access to
the worker in order to retrieve information like the queue_name or health_check_key.
The startup and shutdown functions only make available a ctx with the redis connection.
This means that if you provide a custom queue_name or health_check_key, you will
also have to provide them to ArqPrometheusMetrics.
Usage
# example_worker.py
from arq_prometheus import ArqPrometheusMetrics
async def startup(ctx):
arq_prometheus = ArqPrometheusMetrics(ctx, delay=delay)
ctx["arq_prometheus"] = await arq_prometheus.start()
async def shutdown(ctx):
await ctx["arq_prometheus"].stop()
class WorkerSettings:
on_startup = startup
on_shutdown = shutdown
function = [] # your arq jobs
... # other settings
Start your arq worker,
arq example_worker.WorkerSettings
Make request to localhost:8081 (or open in browser).
curl localhost:8081
Arguments
ctx: dict: arq contextqueue_name: str = default_queue_name: name of the arq queuehealth_check_key: Optional[str] = None: arq health keydelay: datetime.timedelta = datetime.timedelta(seconds=5): a datetime.timedeltaenable_webserver: bool = True: set to True if you want a web server exposing the metricsaddr: str = "0.0.0.0": webserver addressport: int = 8081: webserver portregistry: prom.CollectorRegistry = prom.REGISTRY: the prometheus registry, usually you do not have to override this
Release files for arq-prometheus 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arq_prometheus-0.3.0.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arq_prometheus-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.3 kB
Release files / arq_prometheus-0.3.0.tar.gz
| Download URL | arq_prometheus-0.3.0.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a4f21543150390170ffb484d9c959e92eb6977859fdf61d4afe8fbc0433954e
|
|
BLAKE2b-256 checksum How to use checksums |
ebf32a052bede18cfba7308bde19be21f9e4b002c8a97d2435127fb175d75450
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.2 CPython/3.11.3 Linux/5.15.0-1035-azure
|
Release files / arq_prometheus-0.3.0-py3-none-any.whl
| Download URL | arq_prometheus-0.3.0-py3-none-any.whl |
|---|---|
| Size | 9.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ea19b1fe9d547a757e410496bed34f03f26a2c6c259c6ece76145d331ece80e3
|
|
BLAKE2b-256 checksum How to use checksums |
00a9376d34a65805b62b0467c45cbac4f0978cf8ee4ef5a4d2ba638042c3dcfc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.2 CPython/3.11.3 Linux/5.15.0-1035-azure
|