--- id: timing-asgi version: "0.3.2" license: unclear license_treatment: unclear maintenance: active --- # timing-asgi — ASGI middleware to emit timing metrics with something like statsd License: unclear · Maintenance: active · Downloads: 628.1K/mo ## 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 above — verify before relying. Timing-asgi is an ASGI middleware that automatically measures and emits endpoint timing metrics (wall-clock and CPU time) with HTTP context tags, designed for integration with statsd-based monitoring services. 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 pip install timing-asgi uv add timing-asgi poetry add timing-asgi ## Installing timing-asgi Before you install: Low friction: zero runtime dependencies, pure Python wheel, and actively maintained with recent commits. Requires Python 3.10 or later. 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) ) Requires Python 3.10 or later; only supports ASGI3 (ASGI2 support ended at version 0.1.2). Verify before relying: - Whether the package is licensed under an open-source or proprietary license—metadata does not declare one. ## Package facts - License: not declared (unclear) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 628.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags asgi middleware timing metrics, automatic endpoint instrumentation, statsd timing middleware, asgi performance monitoring, request latency measurement, asgi metrics emission, datadog asgi integration, asgi-middleware, metrics-instrumentation, performance-monitoring [View on SkillFed](https://skillfed.io/packages/timing-asgi) · [View on PyPI](https://pypi.org/project/timing-asgi/)