- Log Drain(日志导出)发送 Supabase 项目的平台日志,例如 Postgres、Auth、Storage 和 Edge Functions 日志。
- LogBrew JavaScript SDK 发送你自己的 Edge Function 代码采集到的日志和错误。
server 密钥。密钥类型见项目密钥类型。
通过 Log Drain 发送平台日志
Supabase 的 Pro、Team 和 Enterprise 套餐提供 Log Drain。Supabase 会对每个 Log Drain 及其发送的事件收费。添加 Log Drain 前,先查看 Supabase 的价格说明。1
打开 Log Drain 设置
在 Supabase 控制台中打开你的项目。依次进入 Project Settings 和 Log Drains。
2
添加 OpenTelemetry 目标
添加一个类型为 OpenTelemetry (OTLP) 的目标。设置以下值:
你也可以不用
x-logbrew-key,改用请求头 Authorization,值为 Bearer lbw_ingest_...。3
保存目标
保存目标。Supabase 开始向 LogBrew 发送日志。检查点:新的 Supabase 日志出现在 LogBrew 项目的日志中。如需用 CLI 读取,按照读回测试信号操作。
service.name 资源属性决定每条日志的服务。其他资源属性保留在日志元数据中。LogBrew 在存储日志前,会从 URL 和 authorization 等属性中移除凭据。完整的映射规则见 OpenTelemetry(OTLP)。
如果没有日志到达,检查端点、协议和请求头。接入密钥必须属于你要读取的 LogBrew 项目。
在 Edge Functions 中采集日志和错误
Supabase Edge Functions 运行在 Deno 上。使用 npm 上的@logbrew/node。此接入方式适用于 Deno 2.9、@logbrew/node 0.1.20 和 @logbrew/sdk 0.1.35。
1
把接入密钥保存为函数机密
使用 Supabase CLI。把占位符替换为你的密钥:
2
创建客户端,返回前先 flush
在请求处理函数外部创建一次客户端。在处理函数中采集信号。返回响应前调用 设置
flush(),因为函数在返回后可能会停止运行。captureRuntimeContext: false 和 runtime 上下文后,LogBrew 会把 Deno 显示为运行时。如果不设置,SDK 会报告 Deno 所模拟的 Node.js 版本。投递失败时,flush() 会抛出 SdkError,例如错误码为 network_failure。示例只把错误码写入函数日志,函数仍会返回响应。3
部署并调用函数
使用
supabase functions deploy checkout 部署函数。调用一次。检查点:你的 LogBrew 项目中出现 checkout request 日志。