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 |
| Litestar | Litestar | HTTP requests, asyncpg, SQLAlchemy, httpx, msgspec validation |
| Celery | Celery | Task execution, retries, worker lifecycle |
| LangChain | LangChain | Agent runs, LLM calls, tool execution, RAG retrieval, token/cost tracking |
| LangGraph | LangGraph | Agent pipelines, LLM calls, tool nodes, conditional routing, token/cost tracking |
| LlamaIndex | LlamaIndex | LLM calls, structured output, token/cost tracking, quality evaluation |
| Pydantic AI | Pydantic AI | Agent runs, LLM calls, tool execution, token usage, prompt versions |
| Pydantic AI on Temporal | Pydantic AI on Temporal | Durable agent workflows, replay-safe spans, signal and update links, case metrics |
| Strands Agents | Strands Agents | Agent runs, LLM calls, tool execution, agents as tools, trace-correlated logs |
| Google ADK | Google ADK | Agent runs, LLM calls, tool execution, agents as tools, inference events |
| Microsoft Agent Framework | Microsoft Agent Framework | Agent runs, LLM calls, tool execution, agents as tools, message events |
| OpenAI Agents SDK | OpenAI Agents SDK | Workflows, agent runs, LLM calls, tool execution, agents as tools |
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 |
| Elysia (Bun) | Elysia | HTTP requests, middleware, structured logging |
| tRPC | tRPC | Procedures, Prisma queries, PostgreSQL |
| NestJS | NestJS | Controllers, services, guards, interceptors |
| Next.js | Next.js | SSR, route handlers, outbound fetch — direct OTLP to Scout, no collector |
| Next.js (full-stack) | Next.js Full-Stack | Browser + server traces, error boundaries, Web Vitals, OTLP proxy route |
| Next.js (collector) | Next.js Collector | SSR, API routes, middleware, React components — exports to your collector |
| Node.js (generic) | Node.js | HTTP, filesystem, child processes |
| Vercel AI SDK | Vercel AI SDK | LLM calls, AI pipelines, token/cost tracking |
| Mastra | Mastra | Agent runs, LLM calls, tool calls through the OTel bridge |
Frontend / Browser
| Framework | Guide | What's Instrumented |
|---|---|---|
| Angular | Angular | Browser traces, Core Web Vitals metrics, error logs (zoneless) |
| React | React | Routes, clicks, fetch/XHR, Core Web Vitals, error logs |
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 |
| Micronaut | Micronaut | HTTP endpoints, Hibernate JPA, logs |
| Ktor (Kotlin) | Ktor | HTTP routing, Exposed ORM, logs |
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 |
| Go stdlib + Postgres | Go stdlib + Postgres | net/http server + client, pgx queries, slog logs |
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 |
| Symfony | Symfony | HTTP requests, Doctrine ORM, HTTP client, logs |
| WordPress | WordPress | HTTP requests, WP lifecycle, template selection, mysqli queries |
.NET
| Framework | Guide | What's Instrumented |
|---|---|---|
| ASP.NET Core | .NET | HTTP requests, EF Core, HttpClient |
| .NET Aspire | .NET Aspire | Multi-service tracing, HTTP, EF Core |
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?