Chuyển đến nội dung chính
Bạn có thể gửi 2 loại dữ liệu Supabase đến LogBrew:
  • Log drain gửi log nền tảng của dự án Supabase, chẳng hạn log của Postgres, Auth, Storage và Edge Functions.
  • SDK JavaScript của LogBrew gửi log và lỗi mà mã Edge Function của chính bạn ghi nhận.
Bạn có thể dùng một cách hoặc cả hai. Cả hai đều cần khóa gửi dữ liệu của dự án. Tạo một khóa server riêng cho mỗi cách dùng. Các loại khóa có trong Các loại khóa dự án.

Gửi log nền tảng bằng log drain

Log drain của Supabase có trong các gói Pro, Team và Enterprise của Supabase. Supabase tính phí cho mỗi drain và cho các sự kiện mà drain gửi đi. Xem bảng giá của Supabase trước khi thêm drain.
1

Mở phần cài đặt log drain

Trong bảng điều khiển Supabase, mở dự án của bạn. Vào Project Settings, rồi vào Log Drains.
2

Thêm đích OpenTelemetry

Thêm một đích có loại OpenTelemetry (OTLP). Đặt các giá trị sau:Thay cho x-logbrew-key, bạn có thể dùng header Authorization với giá trị Bearer lbw_ingest_....
3

Lưu đích

Lưu đích. Supabase bắt đầu gửi log đến LogBrew.Điểm kiểm tra: log mới của Supabase hiện trong phần log của dự án LogBrew. Để đọc các log này từ CLI, làm theo Đọc lại sự kiện thử.
LogBrew đọc drain dưới dạng log OTLP. Thuộc tính resource service.name xác định dịch vụ của từng log. Các thuộc tính resource khác được giữ trong metadata của log. LogBrew xóa thông tin xác thực khỏi URL và khỏi các thuộc tính như authorization trước khi lưu log. Cách ánh xạ đầy đủ có trong OpenTelemetry (OTLP). Nếu không có log nào đến, kiểm tra endpoint, giao thức và header. Khóa gửi dữ liệu phải thuộc dự án LogBrew mà bạn đọc.

Ghi nhận log và lỗi trong Edge Functions

Supabase Edge Functions chạy trên Deno. Dùng @logbrew/node từ npm. Cách thiết lập này hoạt động với Deno 2.9, @logbrew/node 0.1.20 và @logbrew/sdk 0.1.35.
1

Lưu khóa gửi dữ liệu làm thông tin bí mật của hàm

Dùng Supabase CLI. Thay giá trị giữ chỗ bằng khóa của bạn:
2

Tạo client và flush trước khi trả về

Tạo client một lần, bên ngoài request handler. Ghi nhận sự kiện trong handler. Gọi flush() trước khi trả về phản hồi, vì hàm có thể dừng sau khi trả về.
captureRuntimeContext: false và ngữ cảnh runtime giúp LogBrew hiển thị Deno là runtime. Nếu không có hai thiết lập này, SDK báo phiên bản Node.js mà Deno giả lập.Nếu gửi thất bại, flush() ném ra SdkError, ví dụ với mã network_failure. Ví dụ này chỉ ghi mã lỗi vào log của hàm, và hàm vẫn trả về phản hồi.
3

Triển khai và gọi hàm

Triển khai hàm bằng supabase functions deploy checkout. Gọi hàm một lần.Điểm kiểm tra: log checkout request hiện trong dự án LogBrew của bạn.
Không đưa thông tin xác thực, body của yêu cầu hoặc dữ liệu khách hàng vào metadata của sự kiện.