skillfed

judoscale

Official Python package for the Judoscale autoscaler

judoscale v1.13.4 121.9K downloads/30d#11,966 on PyPI8
Permissive license MIT Active released

What it is and what it does

Judoscale is the official Python adapter for the Judoscale autoscaler service. It instruments web frameworks (Django, Flask, FastAPI, Starlette, Quart) and background job processors (Celery with Redis, Dramatiq with Redis, RQ) to measure request queue times and job queue latencies, then reports these metrics back to Judoscale for autoscaling decisions.

The package works by installing framework-specific middleware or integrations that hook into the request/job lifecycle. You install it with extras matching your stack (e.g., `judoscale[django]`, `judoscale[celery-redis]`), configure it minimally in your application settings, and it runs in the background collecting and reporting metrics. It depends only on requests for HTTP communication and supports Python 3.10+.

Use it for:

  • Monitor request queue latency in Django, Flask, or FastAPI applications deployed on Heroku or similar platforms using Judoscale.
  • Track Celery job queue depth and age with Redis broker to enable automatic worker scaling based on queue backlog.
  • Collect Dramatiq or RQ job queue metrics to feed into Judoscale's autoscaling engine for background task processing.
  • Instrument ASGI applications (FastAPI, Starlette, Quart) to capture request queue times without manual metric collection code.
  • Customize queue monitoring for Celery by specifying which queues to track and setting a maximum number of queues to report on.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Judoscale is a Python adapter that integrates with the Judoscale autoscaler to capture request queue time metrics from web frameworks and job queue time metrics from background job processors.

Yes, if you use Judoscale and run Django, Flask, FastAPI, Celery, Dramatiq, or RQ. The adapter is actively maintained, has no known vulnerabilities, and low install friction. Install only if you have a Judoscale subscription and are running one of the supported frameworks; it is not useful standalone.

Install

judoscale on PyPI

pip

pip install judoscale

uv

uv add judoscale

poetry

poetry add judoscale

Installing judoscale

Before you install

Low install friction with a single runtime dependency (requests). Active maintenance with a recent release (70 days ago) and ongoing repository activity.

License in practice

MIT license permits use, modification, and distribution with minimal restrictions—suitable for most commercial and open-source projects.

Quickstart

# For Django:
pip install 'judoscale[django]'
# In settings.py:
INSTALLED_APPS = ["judoscale.django", ...]

# For Flask:
pip install 'judoscale[flask]'
from judoscale.flask import Judoscale
app = Flask("MyApp")
judoscale = Judoscale(app)

# For Celery:
pip install 'judoscale[celery-redis]'
from judoscale.celery import judoscale_celery
judoscale_celery(celery_app)

Requires Python 3.10 or later. Celery integration requires Redis 6.0+ as the broker.

Verify before relying

  • Whether the package works with Python 3.12+ (classifiers list only 3.10 and 3.11)
  • Performance overhead of queue time metric collection in high-throughput applications
  • Compatibility with custom ASGI frameworks beyond FastAPI, Starlette, and Quart

Package facts

License MIT (permissive)
Python support supports the current Python release (<4.0,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — requests
Maintenance actively maintained — 70 days since the last release
Last repo commit
First released
Downloads 121,946/month — #11,966 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: judoscale-1.13.4-py3-none-any.whl

License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11

Tags

autoscaling metrics collectionrequest queue time monitoringjob queue latency trackingdjango flask fastapi scalingcelery dramatiq rq integrationheroku judoscale adapter
autoscalingqueue-metricsheroku-addon

More Monitoring packages

tqdm

Wraps any iterable to display a real-time…

copyleft · top 100 on PyPI

opentelemetry-semantic-conventions

Provides generated Python code for…

permissive · top 100 on PyPI

opentelemetry-sdk

Provides the reference implementation of the…

permissive · top 100 on PyPI

opentelemetry-api

Provides the abstract API and interfaces for…

permissive · top 100 on PyPI

opentelemetry-exporter-otlp-proto-http

Exports OpenTelemetry observability data to an…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation

Provides automatic instrumentation commands and…

permissive · top 1,000 on PyPI

django-rq

Django-RQ integrates RQ (Redis Queue) with…

permissive · top 5,000 on PyPI

django-dramatiq

Integrates Dramatiq, a distributed task queue,…

unclear · top 15,000 on PyPI

opentelemetry-instrumentation-asgi

Provides ASGI middleware for OpenTelemetry that…

permissive · top 1,000 on PyPI

timing-asgi

Timing-asgi is an ASGI middleware that…

unclear · top 15,000 on PyPI

honeybadger

Honeybadger captures uncaught exceptions in…

permissive · top 15,000 on PyPI

vercel-workers

Python SDK for publishing and consuming…

permissive · top 5,000 on PyPI

opentelemetry-util-http

Provides ASGI and WSGI middleware and HTTP…

permissive · top 1,000 on PyPI

rq

RQ is a Python library for queueing jobs and…

permissive · top 5,000 on PyPI

dramatiq

Dramatiq is a distributed task processing…

copyleft · top 5,000 on PyPI

sparkmeasure

SparkMeasure provides a Python API to collect…

permissive · top 5,000 on PyPI