skillfed

opentelemetry-instrumentation-starlette

OpenTelemetry Starlette Instrumentation

opentelemetry-instrumentation-starlette v0.65b0 6.0M downloads/30d#2,003 on PyPI1,086
Permissive license Apache-2.0 Active released

What it is and what it does

This package integrates Starlette web applications with OpenTelemetry's distributed tracing system. It automatically instruments HTTP requests handled by Starlette, capturing request/response details and propagating trace context across service boundaries. The instrumentation works both as a manual middleware attachment and through OpenTelemetry's auto-instrumentation discovery mechanism.

It depends on the core OpenTelemetry API and instrumentation framework, plus ASGI instrumentation (since Starlette is an ASGI framework) and semantic conventions for standardized span attributes. Use it when you need observability into Starlette application behavior—request latency, error rates, and distributed trace correlation—without writing tracing code directly into your handlers.

Use it for:

  • Trace HTTP requests in a Starlette microservice to correlate with traces from downstream services.
  • Monitor request latency and error rates in production Starlette applications via OpenTelemetry exporters.
  • Debug slow endpoints by examining detailed span data captured automatically by the instrumentation.
  • Propagate trace IDs across service boundaries in a distributed system using standard OpenTelemetry headers.
  • Enable observability in Starlette apps without modifying application code via auto-instrumentation.

Worth the install?

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

Adds automatic tracing and observability instrumentation to Starlette web applications, capturing HTTP request and response telemetry for OpenTelemetry.

Yes, if you are already using OpenTelemetry in your stack and need Starlette tracing. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. It is currently in beta (0.65b0), so expect the API to remain stable but verify compatibility with your specific Starlette and OpenTelemetry versions before production use.

Install

opentelemetry-instrumentation-starlette on PyPI

pip

pip install opentelemetry-instrumentation-starlette

uv

uv add opentelemetry-instrumentation-starlette

poetry

poetry add opentelemetry-instrumentation-starlette

Installing opentelemetry-instrumentation-starlette

Before you install

Low friction install with five OpenTelemetry runtime dependencies. Actively maintained with a recent release (29 days old) and continuous repository activity.

License in practice

Apache-2.0 permissive license allows use in most commercial and open-source projects without significant restrictions.

Quickstart

pip install opentelemetry-instrumentation-starlette

from opentelemetry.instrumentation.starlette import StarletteInstrumentor
from starlette.applications import Starlette

app = Starlette()
StarletteInstrumentor().instrument_app(app)

Requires Python 3.10 or later; requires a configured OpenTelemetry tracer provider to export spans.

Verify before relying

  • Whether auto-instrumentation via opentelemetry-instrumentation entry points works out of the box without manual configuration.
  • What telemetry attributes (span names, tags, status codes) are captured by default.
  • Compatibility with specific Starlette versions and whether there are known breaking changes.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 5 — opentelemetry-api, opentelemetry-instrumentation-asgi, opentelemetry-instrumentation, opentelemetry-semantic-conventions, opentelemetry-util-http
Maintenance actively maintained — 29 days since the last release
Last repo commit
First released
Downloads 5,954,626/month — #2,003 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: opentelemetry_instrumentation_starlette-0.65b0-py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

starlette tracing instrumentationopentelemetry starlettehttp request telemetrydistributed tracing starletteobservability instrumentationstarlette monitoringasgi tracing
observabilitydistributed-tracingasgi

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

opentelemetry-instrumentation-asgi

Provides ASGI middleware for OpenTelemetry that…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation-fastapi

Automatically instruments FastAPI applications…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation-aiohttp-server

Adds distributed tracing to aiohttp server…

permissive · top 5,000 on PyPI

opentelemetry-util-http

Provides ASGI and WSGI middleware and HTTP…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation-django

Adds distributed tracing to Django applications…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation-flask

Adds distributed tracing to Flask web…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation-elasticsearch

Adds distributed tracing to Elasticsearch…

permissive · top 5,000 on PyPI

opentelemetry-instrumentation-openai-agents-v2

Automatically captures telemetry data from…

permissive · top 5,000 on PyPI

opentelemetry-instrumentation-agno

Automatically instruments the Agno framework to…

permissive · top 5,000 on PyPI

starlette-testclient

Provides a drop-in replacement for Starlette's…

permissive · top 5,000 on PyPI