Files
supabase/apps/docs/content/guides/telemetry/reports.mdx
4e2405aaad docs: add CDN caching warning for SSR auth middleware (#43575)
When a session token is refreshed server-side, `@supabase/ssr` writes
the updated JWT via Set-Cookie. If a CDN caches that response and serves
it to another user, that user will be signed in as the wrong person.

Adds documentation covering this in two places:
- creating-a-client.mdx: brief mention with a link to the full
explanation
- advanced-guide.mdx: expands the existing CDN FAQ with an explanation
of the risk and Cache-Control: private, no-store examples for Next.js
and Nuxt

Related: https://github.com/supabase/supabase-js/issues/1682

---------

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-11 09:17:33 +02:00

465 lines
30 KiB
Plaintext

---
id: 'reports'
title: 'Reports'
description: 'Built-in observability for your Supabase project'
---
{/* last LW we added that same report to every report page (pre-filtered) so, API Gateway report filtered by Auth will show the same data as going to Auth Report in the API Gateway section */}
Supabase Reports provide comprehensive observability for your project through dedicated monitoring dashboards for servers:
- Database
- Auth
- Storage
- Realtime
- API systems
Each report offers self-debugging tools to gain actionable insights for optimizing performance and troubleshooting issues.
<Admonition type="note">
Reports are only available for projects hosted on the Supabase Cloud platform and are not available for self-hosted instances.
</Admonition>
## Using reports
You can filter reports by time range to focus on a specific period. Higher-tier plans provide access to longer time ranges.
| Time Range | Free | Pro | Team | Enterprise |
| --------------- | ---- | --- | ---- | ---------- |
| Last 10 minutes | ✅ | ✅ | ✅ | ✅ |
| Last 30 minutes | ✅ | ✅ | ✅ | ✅ |
| Last 60 minutes | ✅ | ✅ | ✅ | ✅ |
| Last 3 hours | ✅ | ✅ | ✅ | ✅ |
| Last 24 hours | ✅ | ✅ | ✅ | ✅ |
| Last 7 days | ❌ | ✅ | ✅ | ✅ |
| Last 14 days | ❌ | ❌ | ✅ | ✅ |
| Last 28 days | ❌ | ❌ | ✅ | ✅ |
---
<$Show if="billing:all">
## API gateway
The API Gateway report analyzes performance and traffic patterns managed by your project's API layer.
| Chart | Description | Key Insights |
| --------------- | ----------------------------------------- | ---------------------------------------------------------------------- |
| Total Requests | Overall API request volume | Traffic patterns and growth trends, including top routes |
| Response Errors | Error rates with 4XX and 5XX status codes | API reliability and user experience issues, including top routes |
| Response Speed | Average API response times | Performance bottlenecks and optimization targets, including top routes |
| Network Traffic | Request and response egress usage | Data transfer patterns and cost implications |
## Auth
The Auth reports focus on user authentication patterns and behaviors within your Supabase project.
| Chart | Description | Key Insights |
| ------------------------ | --------------------------------------------- | ----------------------------------------------- |
| Active Users | Count of unique users performing auth actions | User engagement and retention patterns |
| Sign In Attempts by Type | Breakdown of authentication methods used | Password vs OAuth vs magic link preferences |
| Sign Ups | Total new user registrations | Growth trends and onboarding funnel performance |
| API Gateway Auth Errors | Error rates grouped by status code | Authentication friction and security issues |
| Password Reset Requests | Volume of password recovery attempts | User experience pain points |
### Auth API Gateway
The Auth API Gateway reports focus on API requests related to authentication and user management.
| Chart | Description | Key Insights |
| --------------- | --------------------------------------------- | ---------------------------------------------------------------------------- |
| Total Requests | Count of unique users performing auth actions | User engagement and retention patterns, including top routes |
| Response Errors | Error rates with 4XX and 5XX status codes | API reliability and user experience issues, including top routes |
| Response speed | Average response time for auth requests | Performance bottlenecks and optimization opportunities, including top routes |
| Network Traffic | Ingress and egress usage | Data transfer costs and CDN effectiveness |
## Database
The Database report provides a comprehensive view into your Postgres instance's health and performance characteristics. These charts help you identify performance bottlenecks and resource constraints at a glance.
The following charts are available for Free and Pro plans:
| Chart | Available Plans | Description | Key Insights |
| ---------------------------- | --------------- | -------------------------------------------- | -------------------------------------------------------------- |
| Memory usage | Free, Pro | RAM usage percentage by the database | Memory pressure and resource utilization |
| CPU usage | Free, Pro | Average CPU usage percentage | CPU-intensive query identification |
| Disk IOPS | Free, Pro | Read/write operations per second with limits | IO bottleneck detection and workload analysis |
| Database connections | Free, Pro | Number of pooler connections to the database | Connection pool monitoring |
| Dedicated Pooler connections | All | Client connections to PgBouncer | Dedicated pooler connection monitoring |
| Shared Pooler connections | All | Client connections to the shared pooler | Shared pooler usage patterns |
| Shared Pooler connections | All | Client connections to the shared pooler | Shared pooler usage patterns |
| Disk usage | Free, Pro | Disk space consumption breakdown | Storage capacity planning |
| Database size | Free, Pro | Total database size and growth trends | Space consumption monitoring, including list of largest tables |
{/* supa-mdx-lint-disable-next-line Rule001HeadingCase */}
### Advanced Telemetry
{/* TODO: This is confusing and feels contradictory */}
The following charts provide a more advanced and detailed view of your database performance and are available only for Team, Enterprise, and Platform plans.
### Memory usage
<Image
alt="Memory usage chart"
src={{
dark: '/docs/img/database/reports/memory-usage-chart-dark.png',
light: '/docs/img/database/reports/memory-usage-chart-light.png',
}}
width={2148}
height={650}
/>
| Component | Description |
| ------------------- | ------------------------------------------------------ |
| **Used** | RAM actively used by Postgres and the operating system |
| **Cache + buffers** | Memory used for page cache and OS buffers |
| **Free** | Available unallocated memory |
How it helps debug issues:
| Issue | Description |
| ------------------------------ | ------------------------------------------------ |
| Memory pressure detection | Identify when free memory is consistently low |
| Cache effectiveness monitoring | Monitor cache performance for query optimization |
| Memory leak detection | Detect inefficient memory usage patterns |
Actions you can take:
| Action | Description |
| --------------------------------------------------------------------------- | ---------------------------------------------- |
| [Upgrade compute size](/docs/guides/platform/compute-and-disk#compute-size) | Increase available memory resources |
| [Optimize queries](/docs/content/guides/database/query-optimization) | Reduce memory consumption of expensive queries |
| [Tune Postgres configuration](https://pgtune.leopard.in.ua) | Improve memory management settings |
| Implement application caching | Add query result caching to reduce memory load |
### CPU usage
<Image
alt="CPU usage chart"
src={{
dark: '/docs/img/database/reports/cpu-usage-chart-dark.png',
light: '/docs/img/database/reports/cpu-usage-chart-light.png',
}}
width={2152}
height={654}
/>
| Category | Description |
| ---------- | ------------------------------------------------ |
| **System** | CPU time for kernel operations |
| **User** | CPU time for database queries and user processes |
| **IOWait** | CPU time waiting for disk/network IO |
| **IRQs** | CPU time handling interrupts |
| **Other** | CPU time for miscellaneous tasks |
How it helps debug issues:
| Issue | Description |
| ---------------------------------- | -------------------------------------------------- |
| CPU-intensive query identification | Identify expensive queries when User CPU is high |
| IO bottleneck detection | Detect disk/network issues when IOWait is elevated |
| System overhead monitoring | Monitor resource contention and kernel overhead |
Actions you can take:
| Action | Description |
| ---------------------------------------------------------------------------------- | ----------------------------------------------- |
| [Optimize CPU-intensive queries](/docs/content/guides/database/query-optimization) | Target queries causing high User CPU usage |
| Address IO bottlenecks | Resolve disk/network issues when IOWait is high |
| [Upgrade compute size](/docs/guides/platform/compute-and-disk) | Increase available CPU capacity |
| [Implement proper indexing](/docs/guides/database/postgres/indexes) | Use query optimization techniques |
### Disk input/output operations per second (IOPS)
<Image
alt="Disk IOPS chart"
src={{
dark: '/docs/img/database/reports/disk-iops-chart-dark.png',
light: '/docs/img/database/reports/disk-iops-chart-light.png',
}}
width={2146}
height={650}
/>
This chart displays read and write IOPS with a reference line showing your compute size's maximum IOPS capacity.
How it helps debug issues:
| Issue | Description |
| --------------------------------- | ---------------------------------------------------------------- |
| Disk IO bottleneck identification | Identify when disk IO becomes a performance constraint |
| Workload pattern analysis | Distinguish between read-heavy vs write-heavy operations |
| Performance correlation | Spot disk activity spikes that correlate with performance issues |
Actions you can take:
| Action | Description |
| -------------------------------------------------------------- | --------------------------------------------------------- |
| [Optimize indexing](/docs/guides/database/postgres/indexes) | Reduce high read IOPS through better query indexing |
| Consider [read replicas](/docs/guides/platform/read-replicas) | Distribute read-heavy workloads across multiple instances |
| Batch write operations | Reduce write IOPS by grouping database writes |
| [Upgrade compute size](/docs/guides/platform/compute-and-disk) | Increase IOPS limits with larger compute instances |
### Disk throughput
Available on Team and Enterprise plans.
This chart displays read and write throughput (bytes per second) with a reference line showing your compute size's maximum disk throughput.
How it helps debug issues:
| Issue | Description |
| ------------------------------------ | ------------------------------------------------------- |
| Throughput bottleneck identification | Spot when disk bandwidth is saturated |
| Workload pattern analysis | Differentiate read-heavy vs write-heavy bandwidth usage |
| Performance correlation | Correlate spikes with query performance changes |
Actions you can take:
| Action | Description |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------- |
| [Optimize disk-intensive queries](/docs/content/guides/database/query-optimization) | Reduce queries that perform excessive reads/writes |
| Tune caching and batching | Minimize repeated disk access and improve throughput headroom |
| [Upgrade compute size](/docs/guides/platform/compute-and-disk) | Increase throughput limits for sustained workloads |
| Review database design | Optimize schema and query patterns for efficiency |
| [Add strategic indexes](http://localhost:3001/docs/guides/database/postgres/indexes) | Reduce sequential scans with appropriate indexing |
### Disk size
<Image
alt="Disk Size chart"
width={2148}
height={654}
src={{
dark: '/docs/img/database/reports/disk-size-chart-dark.png',
light: '/docs/img/database/reports/disk-size-chart-light.png',
}}
/>
| Component | Description |
| ------------ | --------------------------------------------------------- |
| **Database** | Space used by your actual database data (tables, indexes) |
| **WAL** | Space used by Write-Ahead Logging |
| **System** | Reserved space for system operations |
How it helps debug issues:
| Issue | Description |
| ----------------------------- | ------------------------------------------- |
| Space consumption monitoring | Track disk usage trends over time |
| Growth pattern identification | Identify rapid growth requiring attention |
| Capacity planning | Plan upgrades before hitting storage limits |
Actions you can take:
| Action | Description |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| Run [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html) operations | Reclaim dead tuple space and optimize storage |
| Analyze large tables | Use CLI commands like `table-sizes` to identify optimization targets |
| Implement data archival | Archive historical data to reduce active storage needs |
| [Upgrade disk size](/docs/guides/platform/database-size) | Increase storage capacity when approaching limits |
### Query Performance
Links to the [Query Performance Advisory page](/docs/guides/platform/performance#examine-query-performance) in the dashboard, which provides a detailed analysis of slow database queries
### Database connections
<Image
alt="Database connections chart"
src={{
dark: '/docs/img/database/reports/db-connections-chart-dark.png',
light: '/docs/img/database/reports/db-connections-chart-light.png',
}}
width={2066}
height={608}
/>
| Connection Type | Description |
| --------------- | ------------------------------------------------ |
| **Postgres** | Direct connections from your application |
| **PostgREST** | Connections from the PostgREST API layer |
| **Reserved** | Administrative connections for Supabase services |
| **Auth** | Connections from Supabase Auth service |
| **Storage** | Connections from Supabase Storage service |
| **Other roles** | Miscellaneous database connections |
How it helps debug issues:
| Issue | Description |
| ------------------------------- | ----------------------------------------------------------- |
| Connection pool exhaustion | Identify when approaching maximum connection limits |
| Connection leak detection | Spot applications not properly closing connections |
| Service distribution monitoring | Monitor connection usage across different Supabase services |
Actions you can take:
| Action | Description |
| ------------------------------------------------------------------------------------------ | --------------------------------------------------------------- |
| [Upgrade compute size](/docs/guides/platform/compute-and-disk#compute-size) | Increase maximum connection limits |
| Implement [connection pooling](/docs/guides/database/connecting-to-postgres#shared-pooler) | Optimize connection management for high direct connection usage |
| Review application code | Ensure proper connection handling and cleanup |
{/* supa-mdx-lint-disable-next-line Rule001HeadingCase */}
### Dedicated Pooler (PgBouncer) Client Connections
Available on Team and Enterprise plans.
This chart displays the number of PgBouncer connections over time.
How it helps debug issues:
| Issue | Description |
| ------------------------------- | ----------------------------------------------------------- |
| Connection pool exhaustion | Identify when approaching maximum connection limits |
| Connection leak detection | Spot applications not properly closing connections |
| Service distribution monitoring | Monitor connection usage across different Supabase services |
Actions you can take:
| Action | Description |
| ------------------------------------------------------------------------------------------ | --------------------------------------------------------------- |
| [Upgrade compute size](/docs/guides/platform/compute-and-disk#compute-size) | Increase maximum connection limits |
| Implement [connection pooling](/docs/guides/database/connecting-to-postgres#shared-pooler) | Optimize connection management for high direct connection usage |
| Review application code | Ensure proper connection handling and cleanup |
{/* supa-mdx-lint-disable-next-line Rule001HeadingCase */}
### Shared Pooler (Supavisor) Client Connections
Available on Team and Enterprise plans.
This chart displays the number of Supavisor connections over time.
How it helps debug issues:
| Issue | Description |
| ------------------------------- | ----------------------------------------------------------- |
| Connection pool exhaustion | Identify when approaching maximum connection limits |
| Connection leak detection | Spot applications not properly closing connections |
| Service distribution monitoring | Monitor connection usage across different Supabase services |
Actions you can take:
| Action | Description |
| ------------------------------------------------------------------------------------------ | --------------------------------------------------------------- |
| [Upgrade compute size](/docs/guides/platform/compute-and-disk#compute-size) | Increase maximum connection limits |
| Implement [connection pooling](/docs/guides/database/connecting-to-postgres#shared-pooler) | Optimize connection management for high direct connection usage |
| Review application code | Ensure proper connection handling and cleanup |
### Disk Usage
### Database size
<Image
alt="Disk Size chart"
zoomable
src={{
dark: '/docs/img/database/reports/disk-size-chart-dark.png',
light: '/docs/img/database/reports/disk-size-chart-light.png',
}}
width={2148}
height={654}
/>
| Component | Description |
| ------------ | --------------------------------------------------------- |
| **Database** | Space used by your actual database data (tables, indexes) |
| **WAL** | Space used by Write-Ahead Logging |
| **System** | Reserved space for system operations |
How it helps debug issues:
| Issue | Description |
| ----------------------------- | ------------------------------------------- |
| Space consumption monitoring | Track disk usage trends over time |
| Growth pattern identification | Identify rapid growth requiring attention |
| Capacity planning | Plan upgrades before hitting storage limits |
Actions you can take:
| Action | Description |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| Run [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html) operations | Reclaim dead tuple space and optimize storage |
| Analyze large tables | Use CLI commands like `table-sizes` to identify optimization targets |
| Implement data archival | Archive historical data to reduce active storage needs |
| [Upgrade disk size](/docs/guides/platform/database-size) | Increase storage capacity when approaching limits |
## Edge Functions
The Edge Functions report provides insights into serverless function performance, execution patterns, and regional distribution across Supabase's global edge network.
| Chart | Description | Key Insights |
| ------------------------------------ | ----------------------------------------- | ---------------------------------------------- |
| Total Edge Function Invocations | Function response codes and error rates | Function reliability and error patterns |
| Edge Function Execution Status Codes | Function response codes and error rates | Function reliability and error patterns |
| Edge Function Execution Time | Average function duration and performance | Performance optimization opportunities |
| Edge Function Invocations by Region | Geographic distribution of function calls | Global usage patterns and latency optimization |
## PostgREST
The PostgREST report provides insights into RESTful API performance, request patterns, and response characteristics.
| Chart | Description | Key Insights |
| --------------- | -------------------------------------------- | ---------------------------------------------------------------------------- |
| Total Requests | HTTP requests to PostgREST endpoints | API usage alongside WebSocket activity |
| Response Errors | Error rates with 4XX and 5XX status codes | API reliability and user experience issues, including top routes |
| Response Speed | Average response time for PostgREST requests | Performance bottlenecks and optimization opportunities, including top routes |
| Network Traffic | Ingress and egress usage | Data transfer costs and CDN effectiveness |
## Realtime
The Realtime report tracks WebSocket connections, channel activity, and real-time event patterns in your Supabase project.
| Chart | Description | Key Insights |
| ---------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------- |
| Connected Clients | Active WebSocket connections over time | Concurrent user activity and connection stability |
| Broadcast Events | Broadcast events over time | Real-time feature usage patterns |
| Presence Events | Presence events over time | Real-time feature usage patterns |
| Postgres Changes Events | Postgres Changes events over time | Real-time feature usage patterns |
| Rate of Channel Joins | Frequency of new channel subscriptions | User engagement with real-time features |
| Message Payload Size | Median size of message payloads sent | Payload size that is being transmitted |
| Broadcast From Database Replication Lag | Median latency between database commit and broadcast when using broadcast from database | Latency to Broadcast from the database |
| Read/Write Private Channel Subscription RLS Execution Time | Median time to authorize private channels | `realtime.messages` RLS policies performance |
| Total Requests | HTTP requests to Realtime endpoints | API usage alongside WebSocket activity |
| Response Speed | Performance of Realtime API endpoints | Infrastructure optimization opportunities |
### Realtime API Gateway
The Realtime API Gateway reports focus on API requests related to Realtime functionality.
| Chart | Description | Key Insights |
| --------------- | ------------------------------------- | --------------------------------------------------------------- |
| Total Requests | HTTP requests to Realtime endpoints | API usage alongside WebSocket activity, including top routes |
| Response Errors | HTTP requests to Realtime endpoints | API usage alongside WebSocket activity, including top routes |
| Response Speed | Performance of Realtime API endpoints | Infrastructure optimization opportunities, including top routes |
## Storage
The Storage report provides visibility into how your Supabase Storage is being utilized, including request patterns, performance characteristics, and caching effectiveness.
| Chart | Description | Key Insights |
| --------------- | ------------------------------------------ | ---------------------------------------------------------------------------- |
| Total Requests | Overall request volume to Storage | Traffic patterns and usage trends, including top routes |
| Response Speed | Average response time for storage requests | Performance bottlenecks and optimization opportunities, including top routes |
| Network Traffic | Ingress and egress usage | Data transfer costs and CDN effectiveness |
| Request Caching | Cache hit rates and miss patterns | CDN performance and cost optimization, including top routes |
</$Show>