Skip to main content

Arq-prometheus

Build status PyPI Package latest release PyPI Package download count (per month) Supported versions Codecov

Prometheus metrics for arq

⚠️ WARNING! This is a project in alpha phase ⚠️

Installation

Pip

pip install -U arq-prometheus

Poetry

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 context
  • queue_name: str = default_queue_name: name of the arq queue
  • health_check_key: Optional[str] = None: arq health key
  • delay: datetime.timedelta = datetime.timedelta(seconds=5): a datetime.timedelta
  • enable_webserver: bool = True: set to True if you want a web server exposing the metrics
  • addr: str = "0.0.0.0": webserver address
  • port: int = 8081: webserver port
  • registry: 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)

Source distribution for arq-prometheus 0.3.0
File Size Uploaded
arq_prometheus-0.3.0.tar.gz 8.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arq-prometheus 0.3.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page