Skip to content
Open
10 changes: 10 additions & 0 deletions config/_default/menus/main.en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4680,6 +4680,16 @@ menu:
parent: dbm_setup_postgres
identifier: dbm_postgres_supabase
weight: 307
- name: Supabase Cloud
url: database_monitoring/setup_postgres/supabase
parent: dbm_postgres_supabase
identifier: dbm_supabase_cloud
Comment on lines +4685 to +4686

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add Supabase to level-4 sidebar allowlist

These new entries are attached under dbm_postgres_supabase, which creates a fourth navigation level, but the left-nav renderer hides level-4 submenus with d-none unless the parent identifier is explicitly allowlisted (layouts/partials/nav/left-nav.html, around lines 69-72, currently only includes dbm_setup_postgres_rds for this DBM section). Because dbm_postgres_supabase is not in that allowlist, the new “Supabase Cloud”/“Supabase Self-Hosted” items will not appear in the sidebar even when Supabase is expanded, so users can’t discover them through primary docs navigation.

Useful? React with 👍 / 👎.

weight: 1000
- name: Supabase Self-Hosted
url: database_monitoring/setup_postgres/supabase/agent
parent: dbm_postgres_supabase
identifier: dbm_supabase_agent
weight: 2000
- name: Heroku
url: database_monitoring/setup_postgres/heroku
parent: dbm_setup_postgres
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
title: Setting Up Database Monitoring for Supabase Cloud
description: Install and configure Database Monitoring for Supabase with the Supabase Cloud integration.
further_reading:
- link: '/integrations/postgres/'
tag: 'Documentation'
text: 'Basic Postgres Integration'
- link: '/database_monitoring/setup_postgres/supabase/agent'
tag: 'Documentation'
text: 'Supabase Self-Hosted Setup (Agent Installation)'
---

Database Monitoring for Supabase Cloud provides visibility into your Supabase databases by exposing query performance metrics and query samples — without requiring a self-hosted Datadog Agent.

<div class="alert alert-info">For self-hosted Supabase deployments that require a Datadog Agent, see <a href="/database_monitoring/setup_postgres/supabase/agent">Supabase Self-Hosted Setup</a>.</div>

## Prerequisites

- A Supabase project with a Postgres database.
- Your Supabase **Project ID** (found in your Supabase project settings).
- Your Supabase **API key** (found in your Supabase project settings under **API**).
- A Supabase **Personal Access Token** with access to the Management API.

## Setup

{{< img src="database_monitoring/supabase_cloud_integration_tile.png" alt="Supabase Cloud integration tile configuration" style="width:80%;" >}}

1. Navigate to the [Supabase integration tile][1] in Datadog.
1. Click **Add Account**.
1. Enter your Supabase **Project ID** and **API Key**.
1. Select **Enable Database Monitoring for query performance optimizations**.
1. Enter your **Personal Access Token**.
1. Click **Save**.

Datadog connects to your Supabase project and begins collecting Database Monitoring telemetry. No Agent installation is required.

<div class="alert alert-info">Each Supabase project must be configured separately. Adding new projects to a connected Supabase account does not automatically enable Database Monitoring.</div>

## Data collected

After you enable Database Monitoring, Datadog collects the following telemetry from your Supabase Cloud database:

### Query performance metrics
Sourced from `pg_stat_statements`, collected every 5 seconds:
- Call count and rows processed
- Total and average execution time
- Shared and local buffer hit/read/dirty/write statistics
- Block I/O read and write time
- Temporary buffer read and write counts

### Query samples
Sourced from `pg_stat_activity`, collected every 5 seconds:
- Active and idle query snapshots
- Obfuscated query text and query signatures
- Wait event types and event names
- Session state and backend type
- Blocking PIDs
- Connection aggregates grouped by application, state, user, and database

### Database instance metadata
Collected every 5 seconds:
- PostgreSQL version
- Instance identifier and hostname
- Connection mode (direct or pooler)

## Validate

After setup, navigate to the [Database Monitoring][2] page in Datadog to see your Supabase database queries and performance metrics.

{{< img src="database_monitoring/supabase_cloud_product.png" alt="Database Monitoring overview for a Supabase Cloud instance" style="width:100%;" >}}

## Further reading

{{< partial name="whats-next/whats-next.html" >}}

[1]: https://app.datadoghq.com/integrations/supabase-cloud
[2]: https://app.datadoghq.com/databases
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Setting Up Database Monitoring for Supabase
description: Install and configure Database Monitoring for Supabase.
title: Setting Up Database Monitoring for Supabase Self-Hosted
description: Install and configure Database Monitoring for Supabase with the Datadog Agent.
further_reading:
- link: '/integrations/postgres/'
tag: 'Documentation'
Expand Down
7 changes: 7 additions & 0 deletions layouts/partials/dbm/dbm-setup-postgres.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,13 @@
</div>
</a>
</div>
<div class="col">
<a class="card h-100" href="/database_monitoring/setup_postgres/supabase">
<div class="card-body text-center py-2 px-1">
{{ partial "img.html" (dict "root" . "src" "integrations_logos/supabase.png" "class" "img-fluid" "alt" "Supabase" "width" "175") }}
</div>
</a>
</div>
</div>

</div>
Expand Down
2 changes: 1 addition & 1 deletion layouts/partials/nav/left-nav.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
{{ if .HasChildren }}
<ul class="list-unstyled sub-menu {{ if not (in (slice "automatic_instrumentation" "custom_instrumentation" "dyninst" "single_step_apm" "auto_dd_libraries" "observability_pipelines_reference_processing_language" "observability_pipelines_vector_configuration" "cloud_cost_container_cost_allocation" "cloud_cost_saas_cost_integrations" "csm_setup_enterprise" "csm_setup_pro" "csm_setup_cloud_workload_security" "cspm_frameworks_benchmarks" "cspm_findings_explorer" "cws_workload_security_rules" "otel_integrations" "otel_collector_configuration" "rum_dashboards"
"rum_browser_setup" "rum_browser" "rum_session_replay_browser" "rum_session_replay_mobile" "rum_mobile_android" "rum_mobile_ios" "rum_mobile_flutter" "rum_mobile_kotlin" "rum_mobile_react_native" "rum_mobile_roku" "rum_mobile_unity" "rum_correlate_with_other_telemetry_profiling" "pa_session_replay_mobile" "pa_session_replay_browser" "cloudcraft_api_aws_accounts" "cloudcraft_api_azure_accounts" "cloudcraft_api_blueprints" "cloudcraft_api_budgets" "cloudcraft_api_users" "appsec_enabling_single_step" "appsec_enabling_tracing_libraries" "synthetics_platform_dashboards" "synthetics_private_location" "synthetics_results_explorer" "ndm_netflow" "dashboards_ddsql_editor_reference" "application_security_software_composition_analysis_setup"
"application_security_code_security_setup" "tracing_proxies" "appsec_threats_management_setup" "observability_pipelines_log_volume_control" "observability_pipelines_dual_ship_logs" "observability_pipelines_archive_logs" "observability_pipelines_split_logs" "observability_pipelines_sensitive_data_redaction" "observability_pipelines_log_enrichment" "observability_pipelines_install_the_worker" "csm_setup_agentless_scanning" "observability_pipelines_generate_metrics" "log_explorer_calculated_fields" "test_impact_analysis_setup" "dbm_setup_postgres_rds" "sca_setup_runtime" "ndm_setup" "otel-setup-collector-exporter" "otel-setup-intake-endpoint" "otel_guides_migration" "otel-api-dd-sdk" "otel-setup-agent" "ide_plugins_idea" "agent_configuration_proxy"
"application_security_code_security_setup" "tracing_proxies" "appsec_threats_management_setup" "observability_pipelines_log_volume_control" "observability_pipelines_dual_ship_logs" "observability_pipelines_archive_logs" "observability_pipelines_split_logs" "observability_pipelines_sensitive_data_redaction" "observability_pipelines_log_enrichment" "observability_pipelines_install_the_worker" "csm_setup_agentless_scanning" "observability_pipelines_generate_metrics" "log_explorer_calculated_fields" "test_impact_analysis_setup" "dbm_setup_postgres_rds" "dbm_postgres_supabase" "sca_setup_runtime" "ndm_setup" "otel-setup-collector-exporter" "otel-setup-intake-endpoint" "otel_guides_migration" "otel-api-dd-sdk" "otel-setup-agent" "ide_plugins_idea" "agent_configuration_proxy"
"software_catalog_set_up" "software_catalog_entity_model" "asm_serverless" "otel-setup-ddot" "otel-setup-other" "cloud_siem_custom_detection_rules" "llm_obs_managed_evaluations" "llm_obs_external_evaluations" "cnm_analytics" "cloud_siem_open_cybersecurity_schema_framework" "infrastructure_livecontainers_explorer" "otel-dd-sdk-parent" "llm_obs_custom_llm_as_a_judge_evaluations" "ndm_profiles" "synthetics_notifications_template_variables" "dev_tool_int_mcp_server") .Identifier) }}d-none{{ end }}">

{{/* LEVEL 4 */}}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/integrations_logos/supabase.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading