$npx skillfedfor your agent

timing-asgi

ASGI middleware to emit timing metrics with something like statsd

With conditionsPyPI MonitoringReleased Feb 2026628.1K downloads / moPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — timing_asgi-0.3.2-py3-none-any.whl
v0.3.2 · released 2026-02-17 · Python >=3.10

Yes, if you need automatic ASGI endpoint timing instrumentation and your license requirements can tolerate an unclear license status. The package is actively maintained, has no dependencies, and integrates cleanly with Starlette and other ASGI frameworks. Verify the license terms with the maintainer before using in a commercial or compliance-sensitive context.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later; only supports ASGI3 (ASGI2 support ended at version 0.1.2).
  • Low friction: zero runtime dependencies, pure Python wheel, and actively maintained with recent commits.
  • Requires Python 3.10 or later.

License · maintenance · safety

(unclear) — License status is unclear—no SPDX identifier or raw license text is available in the package metadata, so you cannot verify the terms before use.

last release 2026-02-17 (178 days) · last repo commit 2026-02-17 · 130 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 628,117 downloads/mo, #5,677 on PyPI

Verify before relying

pip install timing-asgi

from timing_asgi import TimingMiddleware, TimingClient
from timing_asgi.integrations import StarletteScopeToName

class PrintTimings(TimingClient):
    def timing(self, metric_name, timing, tags):
        print(metric_name, timing, tags)

app.add_middleware(
    TimingMiddleware,
    client=PrintTimings(),
    metric_namer=StarletteScopeToName(prefix="myapp", starlette_app=app)
)
  • Whether the package is licensed under an open-source or proprietary license—metadata does not declare one.
Same gist for agents: .md · .json

What it is and what it does

Timing-asgi is a middleware layer for ASGI applications that automatically captures timing data for each request as it passes through your application. It measures both wall-clock time and CPU time, then emits these metrics along with HTTP context (status code, method) to a pluggable client interface. The middleware was built at GRID for use with Starlette-based backend services and is designed to feed metrics into statsd-compatible monitoring systems like Datadog.

You integrate it by wrapping your ASGI app with the TimingMiddleware, providing a TimingClient implementation (which can print, send to Datadog, or route metrics anywhere else) and a metric namer that converts ASGI scope information into readable metric names. The middleware handles the instrumentation transparently; your application code remains unchanged.

Use it for

  • Emit per-endpoint wall-clock and CPU timing to Datadog or another statsd service for production monitoring.
  • Automatically track HTTP request latency by status code and method without modifying route handlers.
  • Build a custom metrics client to route timing data to your own monitoring or logging backend.
  • Profile ASGI application performance in development by printing timing metrics to stdout or a log file.
  • Measure CPU vs. wall-clock time to identify I/O-bound vs. compute-bound bottlenecks in endpoints.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need automatic ASGI endpoint timing instrumentation and your license requirements can tolerate an unclear license status.

The package is actively maintained, has no dependencies, and integrates cleanly with Starlette and other ASGI frameworks. Verify the license terms with the maintainer before using in a commercial or compliance-sensitive context.

Install

timing-asgi on PyPI

Before you install

Low friction: zero runtime dependencies, pure Python wheel, and actively maintained with recent commits. Requires Python 3.10 or later.

Requires Python 3.10 or later; only supports ASGI3 (ASGI2 support ended at version 0.1.2).

License in practice

License status is unclear—no SPDX identifier or raw license text is available in the package metadata, so you cannot verify the terms before use.

Quickstart

pip install timing-asgi

from timing_asgi import TimingMiddleware, TimingClient
from timing_asgi.integrations import StarletteScopeToName

class PrintTimings(TimingClient):
    def timing(self, metric_name, timing, tags):
        print(metric_name, timing, tags)

app.add_middleware(
    TimingMiddleware,
    client=PrintTimings(),
    metric_namer=StarletteScopeToName(prefix="myapp", starlette_app=app)
)

Verify before relying

  • Whether the package is licensed under an open-source or proprietary license—metadata does not declare one.

Package facts

LicenseNot declared unclear
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependenciesNone
MaintenanceActively maintained 178 days since the last release
Last repo commit
First released
Downloads628,117 / month, #5,677 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Evidence: timing_asgi-0.3.2-py3-none-any.whl

Tags

Capabilities
asgi middleware timing metricsautomatic endpoint instrumentationstatsd timing middlewareasgi performance monitoringrequest latency measurementasgi metrics emissiondatadog asgi integration
Topics
asgi-middlewaremetrics-instrumentationperformance-monitoring

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “asgi middleware timing metrics”

Give your agent the search over MCP, or paste the wish link into any chat.

More Monitoring packages

tqdm Worth it
PyPI · Libraries · released Jul 2026

Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.

copyleftpure Python · 3.8+
648.6Mdownloads / mo
opentelemetry-semantic-conventions Worth it
PyPI · Monitoring · released Jul 2026

Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.

Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.

Apache-2.0pure Python · 3.10+
542.9Mdownloads / mo
opentelemetry-sdk Worth it
PyPI · Monitoring · released Jul 2026

Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.

Apache-2.0pure Python · 3.10+
521.8Mdownloads / mo
opentelemetry-api With conditions
PyPI · Monitoring · released Jul 2026

Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.

Apache-2.0pure Python · 3.10+
463.8Mdownloads / mo
opentelemetry-exporter-otlp-proto-http Worth it
PyPI · Monitoring · released Jul 2026

Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.

Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.

Apache-2.0pure Python · 3.10+
409.9Mdownloads / mo
opentelemetry-instrumentation Worth it
PyPI · Monitoring · released Jul 2026

Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.

Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.

Apache-2.0pure Python · 3.10+
393.5Mdownloads / mo

See also opentelemetry-instrumentation-asgi · opentelemetry-util-http · asgi-correlation-id · asgi-lifespan · aiodogstatsd · judoscale · aioprometheus · brotli-asgi · aiohttp-asgi-connector · ipython-autotime