mirror of
https://github.com/supabase/supabase.git
synced 2026-10-11 04:15:04 +03:00
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>
465 lines
30 KiB
Plaintext
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>
|