---
title: "Performance Monitoring"
description: "Track application performance across your full stack with distributed tracing, automated issue detection, and pre-built dashboards."
url: https://docs.sentry.io/product/sentry-basics/performance-monitoring/
---

# Performance Monitoring

Sentry goes beyond tracking page load metrics. By enabling [Tracing](https://docs.sentry.io/concepts/key-terms/tracing.md), Sentry automatically instruments the frameworks and libraries you use — capturing detailed performance data for every request across your entire application stack.

## [Getting Set Up](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#getting-set-up)

Enable tracing in your SDK by setting `tracesSampleRate`. For most frameworks (Next.js, Laravel, Rails, Django, Express, and others), Sentry auto-instruments common operations like HTTP requests, database queries, and template rendering out of the box.

For applications with both frontend and backend services, set up [distributed tracing](https://docs.sentry.io/concepts/key-terms/tracing/distributed-tracing.md) to follow requests across service boundaries. Learn more about [trace propagation](https://docs.sentry.io/platforms/javascript/tracing/distributed-tracing.md) for your platform.

## [Ways to Monitor Performance](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#ways-to-monitor-performance)

### [Pre-built Dashboards](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#pre-built-dashboards)

After turning on tracing, you'll automatically see [Sentry Dashboards](https://docs.sentry.io/product/dashboards/sentry-dashboards.md) that give you a high-level view of performance data for each layer of your stack:

* [**Frontend**](https://docs.sentry.io/product/dashboards/sentry-dashboards/frontend.md) — Core Web Vitals, transaction duration, error rates
* [**Backend**](https://docs.sentry.io/product/dashboards/sentry-dashboards/backend.md) — database queries, API calls, caches, queues, crons
* [**Mobile**](https://docs.sentry.io/product/dashboards/sentry-dashboards/mobile.md) — cold/warm app starts, TTID & TTFD, screen load times
* [**AI**](https://docs.sentry.io/ai/monitoring/agents.md) — LLM call latency, token usage, tool execution performance



### [Automated Performance Issues](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#automated-performance-issues)

Sentry automatically detects common performance problems and groups them into [performance issues](https://docs.sentry.io/product/issues/issue-details/performance-issues.md):

* N+1 queries and API calls
* Consecutive DB queries or HTTP requests that could be batched
* Database or file I/O on the main thread (blocking UI)
* [And more](https://docs.sentry.io/product/issues/issue-details/performance-issues.md)

These appear alongside error issues in your [Issues](https://docs.sentry.io/product/issues.md) feed, so you can triage and resolve them the same way.

### [Trace Explorer](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#trace-explorer)

The [Trace Explorer](https://docs.sentry.io/product/trace-explorer.md) lets you query all your span data by any attribute. Find the p95 duration of a specific endpoint, identify which user segments are experiencing slowdowns, or compare a time window against your baseline to isolate regressions.

You can also calculate [span metrics](https://docs.sentry.io/product/trace-explorer.md#span-metrics) — custom aggregations like p50, p95, and p99 durations grouped by any attribute — and use them to build [dashboards](https://docs.sentry.io/product/dashboards.md) and [alerts](https://docs.sentry.io/product/monitors-and-alerts/alerts.md).



### [Connected Context](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#connected-context)

Performance data in Sentry isn't siloed. Every trace connects to:

* **[Logs](https://docs.sentry.io/product/logs.md)** — see what your application logged during a slow request
* **[Session Replay](https://docs.sentry.io/product/session-replay.md)** — watch the user experience during a performance issue
* **[Profiling](https://docs.sentry.io/product/profiling.md)** — drill from a slow span into the exact functions consuming CPU time
* **[Seer](https://docs.sentry.io/product/ai-in-sentry/seer.md)** — get AI-powered root cause analysis for performance regressions

## [How It Works Under the Hood](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#how-it-works-under-the-hood)

Instead of capturing predefined metrics at fixed intervals, Sentry instruments the libraries you rely on, providing detailed telemetry for Web Vitals, file I/O, network requests, and more. Performance data is sent as [spans](https://docs.sentry.io/concepts/key-terms/tracing.md#whats-a-span) — the smallest unit of work in a [trace](https://docs.sentry.io/concepts/key-terms/tracing.md). Traces are assembled server-side and power all of Sentry's performance tools, so every high-level metric is backed by the raw tracing data you can drill into.

## [Next Steps](https://docs.sentry.io/product/sentry-basics/performance-monitoring.md#next-steps)

* **[Querying Traces guide](https://docs.sentry.io/guides/querying-traces.md)** — practical queries for finding slow pages and bottlenecks
* **[Adding Custom Spans guide](https://docs.sentry.io/guides/custom-spans.md)** — instrument your own code for visibility beyond auto-instrumentation
* **[Distributed Tracing tutorial](https://docs.sentry.io/product/sentry-basics/distributed-tracing.md)** — follow along with a sample React + Express app
