遥测

指标监控


除了Supabase仪表板内置的报告和图表外,Supabase平台上托管的每个项目都提供了一个兼容Prometheus的指标端点,每分钟更新一次,可用于深入了解项目的运行状况和状态。

您可以使用此端点将数据导入到自己的监控和告警基础设施中(只要该系统能够抓取兼容Prometheus的端点),从而设置超出Supabase仪表板支持范围的自定义规则。

访问指标端点

您项目的指标端点可通过https://<project-ref>.supabase.co/customer/v1/privileged/metrics访问。端点访问通过HTTP基本认证进行保护:用户名为service_role,密码为通过Supabase仪表板获取的服务角色JWT。

1
> curl https://<project-ref>.supabase.co/customer/v1/privileged/metrics --user 'service_role:<service-role-jwt>'

Supabase Grafana仪表板

预配置的Supabase Grafana仪表板是仪表板数据库报告的高级版本,可可视化200多个数据库性能和健康指标。

Supabase Grafana

仓库的README文件中包含了使用docker部署该仓库的详细说明。

在生产环境中使用指标端点

要设置项目监控,您需要准备以下两个组件:

  1. 数据存储 - 用于长期存储来自Supabase项目的指标数据
  2. 仪表盘 - 用于可视化展示指定时间段内Supabase项目的状态

配置指标数据存储

Prometheus是较为知名的选择之一,本指南也将使用该工具作为示例。

您可以自行托管Prometheus,或选择托管服务来存储指标数据。提供Prometheus托管服务的主要供应商包括:

请根据您选择的部署方式参考相应指南

向Prometheus添加抓取任务

对于Prometheus,需要修改prometheus.yaml文件来添加Supabase任务,并设置metrics_pathschemebasic_authtargets参数。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
scrape_configs: - job_name: "MySupabaseJob" metrics_path: "/customer/v1/privileged/metrics" scheme: https basic_auth: username: "service_role" password: "<your service_role JWT>" static_configs: - targets: [ "<your Supabase Project ID>.supabase.co:443" ] labels: group: "MyGroupLabel"

仪表盘设置指南

在本指南中,我们将使用 Grafana 作为监控工具。

您可以选择自托管 Grafana,或者使用以下托管服务提供商提供的管理型Grafana:

请根据您选择的提供商指南完成Grafana的安装和运行。

添加数据源到Grafana

在左侧菜单中选择Data sources,然后点击Add new data source

选择Prometheus并输入您已配置的Prometheus实例连接信息。

Interval behavior部分,将scraping interval设置为60秒并测试数据源。验证通过后保存配置。

添加Supabase仪表盘

在左侧菜单中选择Dashboards,点击New,然后从下拉选项中选择Import

从我们的supabase-grafana仓库复制原始文件内容并粘贴(或直接上传文件)。

点击Load,仪表盘将从您Prometheus任务中指定的项目加载数据。

项目监控配置

您可以通过Prometheus或Grafana配置告警规则。supabase-grafana仓库提供了一系列示例告警可供参考配置。