{"library":"starlette-prometheus","title":"Starlette Prometheus Integration","type":"library","description":"Starlette-prometheus is a Python library that provides seamless Prometheus integration for Starlette applications. It includes a middleware to automatically expose key metrics such as total requests, request duration, and concurrent requests. The library is currently at version 0.10.0, released on September 3, 2024, with a development cadence that includes periodic updates and feature enhancements.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install starlette-prometheus uvicorn"],"cli":null},"imports":["from starlette_prometheus import PrometheusMiddleware","from starlette_prometheus import metrics","from starlette.applications import Starlette"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/PeRDy/starlette-prometheus","docs":null,"changelog":null,"pypi":"https://pypi.org/project/starlette-prometheus/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import uvicorn\nfrom starlette.applications import Starlette\nfrom starlette.responses import PlainTextResponse\nfrom starlette_prometheus import PrometheusMiddleware, metrics\n\napp = Starlette()\napp.add_middleware(PrometheusMiddleware, app_name='my_starlette_app', prefix='starlette_app_prefix')\napp.add_route('/metrics', metrics)\n\n@app.route('/')\nasync def homepage(request):\n    return PlainTextResponse('Hello, world!')\n\n@app.route('/items/{item_id}')\nasync def read_item(request):\n    item_id = request.path_params['item_id']\n    return PlainTextResponse(f'Item: {item_id}')\n\nif __name__ == '__main__':\n    # Run with: uvicorn quickstart:app --port 8000\n    uvicorn.run(app, host='0.0.0.0', port=8000)\n","lang":"python","description":"This quickstart demonstrates how to integrate `starlette-prometheus` into a basic Starlette application. It sets up `PrometheusMiddleware` to automatically collect HTTP request metrics and exposes them at the `/metrics` endpoint. Run this file using `uvicorn quickstart:app --port 8000` and then access `http://localhost:8000/metrics` to see the collected metrics.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.10.0","pypi_latest":"0.10.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.3,"avg_import_s":0.43,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.38,"mem_mb":10,"disk_size":"23.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0.3,"mem_mb":10,"disk_size":"24M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.49,"mem_mb":11.3,"disk_size":"25.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.44,"mem_mb":11.3,"disk_size":"26M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.67,"mem_mb":13.5,"disk_size":"17.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.69,"mem_mb":13.5,"disk_size":"18M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.38,"mem_mb":9.8,"disk_size":"16.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.39,"mem_mb":9.8,"disk_size":"17M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.31,"mem_mb":10.1,"disk_size":"22.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"starlette-prometheus","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.27,"mem_mb":10.1,"disk_size":"23M"}]}}