指标监控
除了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多个数据库性能和健康指标。
仓库的README文件中包含了使用docker部署该仓库的详细说明。
在生产环境中使用指标端点
要设置项目监控,您需要准备以下两个组件:
- 数据存储 - 用于长期存储来自Supabase项目的指标数据
- 仪表盘 - 用于可视化展示指定时间段内Supabase项目的状态
配置指标数据存储
Prometheus是较为知名的选择之一,本指南也将使用该工具作为示例。
您可以自行托管Prometheus,或选择托管服务来存储指标数据。提供Prometheus托管服务的主要供应商包括:
请根据您选择的部署方式参考相应指南
向Prometheus添加抓取任务
对于Prometheus,需要修改prometheus.yaml
文件来添加Supabase任务,并设置metrics_path
、scheme
、basic_auth
和targets
参数。例如:
12345678910111213scrape_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
仓库提供了一系列示例告警可供参考配置。
Grafana Cloud提供了非官方的Supabase指标采集集成。具体配置方法请参考其 文档, 但请注意该集成功能不完整,且不受Supabase官方支持。