- ログドレインは、Supabase プロジェクトのプラットフォームのログを送信します。たとえば、Postgres、Auth、Storage、Edge Functions のログです。
- LogBrew JavaScript SDK は、自分で書いた Edge Function のコードが取得したログとエラーを送信します。
server キーを作成します。キーの種類については、プロジェクトキーの種類を参照してください。
ログドレインでプラットフォームのログを送信する
Supabase のログドレインは、Supabase の Pro、Team、Enterprise プランで利用できます。Supabase は、ドレインごとの料金と、ドレインが送信するイベントの料金を請求します。ドレインを追加する前に、Supabase の料金を確認してください。1
ログドレインの設定を開く
Supabase のダッシュボードでプロジェクトを開きます。Project Settings に移動し、Log Drains を開きます。
2
OpenTelemetry の送信先を追加する
種類が OpenTelemetry (OTLP) の送信先を追加します。次の値を設定します。
x-logbrew-key の代わりに、値が Bearer lbw_ingest_... の Authorization ヘッダーも使えます。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
クライアントを作成し、レスポンスを返す前にフラッシュする
クライアントは、リクエストハンドラーの外で1回だけ作成します。イベントはハンドラーの中で取得します。レスポンスを返す前に
flush() を呼び出します。関数はレスポンスを返した後に停止することがあるためです。captureRuntimeContext: false と runtime コンテキストを指定すると、LogBrew はランタイムとして Deno を表示します。指定しない場合、SDK は Deno がエミュレートする Node.js のバージョンを報告します。送信に失敗すると、flush() は SdkError をスローします。たとえば、エラーコードは network_failure です。この例では、関数のログにエラーコードだけを書き込みます。関数はそのままレスポンスを返します。3
関数をデプロイして呼び出す
supabase functions deploy checkout で関数をデプロイします。関数を1回呼び出します。確認ポイント:LogBrew プロジェクトに checkout request のログが表示されます。