Bỏ qua tới nội dung
Mục lục

Chuyển từ Sentry sang Belvador

Thay SDK Sentry đang có bằng gói Belvador tương ứng mà không gửi lỗi trùng hai lần.

Bản Markdown
Trong bài này

Belvador dùng cùng giao thức với Sentry, nên chuyển một ứng dụng sang chủ yếu là đổi gói và DSN. Quy tắc quan trọng nhất: chỉ một SDK được báo lỗi — chạy cả hai thì mọi lỗi về hai lần.

Chọn gói thay thế#

Đang dùngThay bằngHướng dẫn
@sentry/browser@belvador/browserTrình duyệt
@sentry/react@belvador/reactReact
@sentry/tanstackstart-react, hoặc Sentry tự nối trong TanStack Start@belvador/tanstack-startTanStack Start
@sentry/cloudflare@belvador/cloudflareCloudflare Workers
@sentry/nodegiữ nguyên, đổi DSN và thêm hàm lọcNode.js
sentry-sdk (Python)giữ nguyên, đổi DSN và thêm hàm lọcPython
SDK Sentry khácgiữ nguyên và đổi DSN — Belvador chưa kiểm chứng—

Các bước cho ứng dụng JavaScript#

  1. Tạo project trong Belvador và sao chép DSN.

  2. Cài gói Belvador, khoá ở phiên bản 0.6.1.

  3. Thay import. Các hàm thường dùng giữ nguyên tên:

TypeScript
// Trướcimport * as Sentry from "@sentry/react";Sentry.captureException(error);// Sauimport { captureException } from "@belvador/react";captureException(error);
  1. Thay Sentry.init bằng init của Belvador (hoặc withBelvador trên Workers), theo phần cài đặt trong hướng dẫn. Xoá lời gọi Sentry.init cũ — init của Belvador không chiếm quyền một client đang chạy.

  2. Gỡ mọi gói SDK @sentry/* khỏi package.json (giữ @sentry/cli nếu CI dùng cho source map). Gói của Belvador đã mang theo engine được khoá phiên bản; không cần cài @sentry/* bên cạnh.

  3. Cập nhật CSP: thay địa chỉ nhận lỗi của Sentry bằng https://ingest.belvador.dev trong connect-src.

  4. Trỏ CI về Belvador cho source map: giữ sentry-cli, đổi SENTRY_URL và token — xem Source map.

  5. Triển khai và kiểm: chạy phép kiểm kết nối cho từng môi trường và xác nhận tab Kết nối báo Đã xác minh. Lỗi gắn thẻ chạy được với mọi SDK Sentry, nên bạn có thể kiểm trước khi đổi gói. Sau đó xác nhận một lỗi thật chỉ hiện một lần.

Tuỳ chọn thay đổi#

Tuỳ chọn SentryTrong Belvador
dsn, release, environment, dist, sampleRate, ignoreErrors, beforeSend, beforeBreadcrumb, maxBreadcrumbs, debugGiữ nguyên ý nghĩa
allowUrls, denyUrls (trình duyệt)Giữ nguyên ý nghĩa
enabledDùng disabled: true
integrations, defaultIntegrationsKhông nhận; Belvador tự thiết lập phần cần thiết. Breadcrumb bật bằng instrument
tracesSampleRate, tracePropagationTargets, replaysSessionSampleRate, profilesSampleRate, enableLogsKhông có — SDK chỉ gửi lỗi. Gửi traces và log bằng OpenTelemetry; nối lỗi giữa các tầng bằng tracePropagation
sendDefaultPiiLuôn tắt
tunnel, transportKhông có — event chỉ đi tới DSN của bạn
maxValueLengthCố định 8.192 ký tự

TypeScript sẽ chỉ ra các tuỳ chọn không còn tồn tại.

Hành vi thay đổi#

  • setUser chỉ giữ id. Email, tên đăng nhập và địa chỉ IP bị xoá trước khi gửi.

  • Breadcrumb tự động (console, click, fetch, XHR, điều hướng) tắt cho tới khi bạn bật.

  • Tệp đính kèm bị bỏ trừ khi đặt attachments: true.

  • Không có Sentry.showReportDialog và showDialog của boundary.

  • Body request, cookie và header xác thực bị SDK xoá, và node xoá thêm một lần.

Giữ SDK Sentry đang có#

SDK Sentry nào cũng gửi được tới DSN Belvador, nên bạn cũng có thể chỉ đổi DSN. Khi đó bạn giữ các mặc định của SDK đó: nó có thể gửi dữ liệu tracing (node bỏ và đếm vào Chưa hỗ trợ), dữ liệu cá nhân nếu bật sendDefaultPii, và breadcrumb tự động. Node vẫn lọc trước khi lưu. Với ứng dụng JavaScript, gói của Belvador là lựa chọn an toàn hơn.

Issue đã có#

Belvador bắt đầu với lịch sử trống: issue và event đang nằm trong Sentry không được nhập sang. Giữ Sentry ở chế độ chỉ đọc một thời gian nếu bạn cần tra cứu.

Bài viết về chủ đề này

Tất cả bài viết

Thấy chỗ sai hoặc thiếu? Gửi cho chúng tôi: hello@belvador.dev