Auto-Instrumentation
Auto-instrumentation provides zero-code observability by automatically capturing traces, metrics, and logs from your application and its dependencies. This is the fastest way to get started with OpenTelemetry. If you want to verify your collector is working first, try the Hello World guide.
When to Use Auto-Instrumentation
| Use Case | Recommendation |
|---|---|
| Quick proof-of-concept | ✅ Auto-instrumentation |
| Standard HTTP/database operations | ✅ Auto-instrumentation |
| Business-specific metrics | ❌ Use custom instrumentation |
| Fine-grained span control | ❌ Use custom instrumentation |
| Legacy framework not supported | ❌ Use custom instrumentation |
Frameworks by Language
Python
| Framework | Guide | What's Instrumented |
|---|---|---|
| Django | Django | HTTP requests, ORM queries, middleware, templates, Celery tasks |
| Flask | Flask | HTTP requests, Jinja2 templates, SQLAlchemy |
| FastAPI | FastAPI | HTTP requests, async handlers, Pydantic validation |
| Celery | Celery | Task execution, retries, worker lifecycle |
| LangGraph | LangGraph | Agent pipelines, LLM calls, tool nodes, conditional routing, token/cost tracking |
| LlamaIndex | LlamaIndex | LLM calls, structured output, token/cost tracking, quality evaluation |
Node.js
| Framework | Guide | What's Instrumented |
|---|---|---|
| Express | Express | HTTP requests, middleware, routing |
| Fastify | Fastify | HTTP requests, hooks, plugins, PostgreSQL, BullMQ |
| Hono | Hono | HTTP requests, middleware, PostgreSQL, BullMQ |
| NestJS | NestJS | Controllers, services, guards, interceptors |
| Next.js | Next.js | SSR, API routes, middleware, React components |
| Node.js (generic) | Node.js | HTTP, filesystem, child processes |
| React | React | Client-side rendering, user interactions |
Java / JVM
| Framework | Guide | What's Instrumented |
|---|---|---|
| Spring Boot | Spring Boot | REST controllers, JPA, JDBC, messaging |
| Spring Boot (alt) | Alternatives | Micrometer, manual agent setup |
| Quarkus | Quarkus | REST endpoints, Hibernate, Kafka |
Ruby
| Framework | Guide | What's Instrumented |
|---|---|---|
| Rails 6+ (Ruby 3.1+) | Rails | Controllers, ActiveRecord, ActionCable, Sidekiq |
| Rails 5.x–6.1 (EOL Ruby) | Rails Legacy | Controllers, ActiveRecord (pinned SDK versions) |
Go
| Framework | Guide | What's Instrumented |
|---|---|---|
| Go (net/http) | Go | HTTP handlers, database/sql, gRPC |
Rust
| Framework | Guide | What's Instrumented |
|---|---|---|
| Actix Web | Actix Web | HTTP requests, middleware, database queries |
| Axum | Axum | Handlers, middleware, tower layers |
PHP
| Framework | Guide | What's Instrumented |
|---|---|---|
| Laravel | Laravel | HTTP requests, Eloquent, queues, caching |
| Slim 4 / Slim 3 | Slim | HTTP requests, MongoDB, metrics, log correlation |
.NET
| Framework | Guide | What's Instrumented |
|---|---|---|
| ASP.NET Core | .NET | HTTP requests, EF Core, HttpClient |
Elixir
| Framework | Guide | What's Instrumented |
|---|---|---|
| Phoenix | Phoenix | Controllers, Ecto, LiveView, PubSub |
Mobile / Cross-Platform
| Framework | Guide | What's Instrumented |
|---|---|---|
| Flutter | Flutter | HTTP requests, crash handling, app lifecycle, distributed tracing |
How Auto-Instrumentation Works

Next Steps
- Choose your framework from the tables above
- Follow the guide to add auto-instrumentation
- Add custom instrumentation for business-specific telemetry
Was this page helpful?