Bỏ qua tới nội dung

Sản phẩm

Thay thế Sentry cho ứng dụng do AI xây dựng: kiểm gì trước khi chuyển

Mình đặt SDK trình duyệt của Sentry và Belvador lên cùng một trang rồi ghi lại mọi thứ mỗi bên gửi. Với app do AI agent viết, mặc định, nơi lưu và bằng chứng lỗi đã tới quan trọng hơn giá.

Andrew Babo7 phút đọc

Chia sẻ
Trong bài này
Thay thế Sentry cho ứng dụng do AI xây dựng: kiểm gì trước khi chuyển

Nếu phần lớn ứng dụng của bạn do AI agent viết, hãy chọn công cụ theo dõi lỗi dựa trên ba điều: nó tự gửi gì khi không ai dặn, nó lưu ở đâu, và bạn có chứng minh được lỗi đã tới hay không. Giá tính sau. Mình đã thử điều đầu tiên với hai SDK trên cùng một trang ngày 26/10/2026.

Vì sao ứng dụng do AI viết khiến câu hỏi khác đi#

Coding agent cài theo dõi lỗi giống như cách nó làm mọi việc khác. Nó chép đoạn quickstart, ứng dụng build được, rồi chuyển sang việc tiếp theo. Quickstart để mặc định thứ gì thì production chạy đúng thứ đó.

Điều này quan trọng ở hai chỗ. SDK nhìn thấy phiên làm việc của người dùng, nên mặc định của nó quyết định dữ liệu cá nhân nào rời khỏi trình duyệt. Và lỗi từ những ứng dụng này thường được dán lại vào LLM để nhờ sửa, nên thứ gì công cụ lưu cũng có thể nằm trong prompt. Bài gửi lỗi production cho LLM an toàn nói về bước thứ hai đó.

Thí nghiệm: một trang, hai SDK#

Mình dựng một trang nhỏ hai lần: một lần với @sentry/browser 10.76.2, một lần với @belvador/browser 0.4.0, gói này bọc cùng engine của Sentry. Mỗi trang chỉ gọi init() với DSN và tên release, không thêm gì khác.

Trên trang, ứng dụng ghi một dòng log có địa chỉ email. Người dùng bấm Pay, ứng dụng gọi setUser() với id, email, tên đăng nhập và ip_address: "{{auto}}", rồi fetch /api/cart?token=tok_FAKE123. Sau đó nó ném ra một lỗi không ai bắt từ một timer. Mọi giá trị đều là giả.

Một collector cục bộ đứng thay cho cả hai dịch vụ và ghi lại từng request. Mỗi trang chạy ba lần trên Chromium headless, lần nào cũng gửi đúng những thứ như nhau.

Cùng một trang với SDK trình duyệt của Sentry và Belvador: envelope, dữ liệu người dùng, breadcrumb và kích thước
Thí nghiệm 26/10/2026 · Chromium 141 · mỗi bên 3 lần, lần nào cũng như nhau

Mỗi bên đã gửi gì#

SDK của Sentry gửi bốn envelope cho một lượt xem trang: ba bản cập nhật session và một lỗi. Lỗi mang theo email, tên đăng nhập và dấu {{auto}}, dấu này nhờ máy chủ nhận điền giúp địa chỉ IP của người xem. Nó còn có ba breadcrumb: dòng log có email, cú bấm nút, và URL fetch có token bên trong.

Đây không phải bug. Sentry ghi breadcrumb theo mặc định và gửi đúng user mà bạn đặt, còn phần tuỳ chọn cho phép đổi cả hai qua beforeBreadcrumb, beforeSend và sendDefaultPii. Vấn đề là agent làm theo quickstart hiếm khi thêm chúng.

SDK của Belvador gửi một envelope. User chỉ còn id, và không có breadcrumb nào vì chúng tắt cho tới khi bạn bật. Nó không nhẹ hơn: sau gzip là 37,9 KB, so với 29,7 KB của Sentry, nặng hơn khoảng 8 KB. Nó chạy cùng engine cộng thêm luật lọc và luật gửi riêng; mình không đo phần nào tốn bao nhiêu.

Bốn điều cần kiểm ở bất kỳ công cụ thay Sentry nào#

Phần lớn các lựa chọn đều nhận SDK của Sentry, nên phần sửa code khá nhỏ. Khác biệt nằm ở bốn chỗ.

1. Thứ gì rời trình duyệt khi để mặc định#

Mở trang production, lọc tab Network theo envelope, đi qua một luồng và gây ra một lỗi. Đọc nội dung gửi đi. Nếu thấy email, token trong URL hay dòng log bạn không định gửi, hãy sửa trong tuỳ chọn SDK trước khi chuyển bất cứ thứ gì.

2. Event được lưu ở đâu#

Dịch vụ của Sentry cho chọn lưu ở Mỹ hoặc EU. GlitchTip và Bugsink có bản được host sẵn hoặc chạy trên máy chủ của bạn. Belvador lưu event trên một máy chủ trong chính dự án Hetzner của bạn, Belvador tạo, cập nhật và sao lưu nó. Nơi lưu không giống nơi một model AI xử lý lỗi bạn dán vào; đó là một cài đặt khác ở phía nhà cung cấp AI.

3. Bằng chứng lỗi đã tới#

Danh sách issue trống không chứng minh điều gì. Nó trông y hệt khi ứng dụng khoẻ và khi DSN bị sai. Sau mỗi lần đổi cấu hình, hãy gửi một lỗi thử có gắn tag từ production và kiểm tra nó hiện ra. Kiểm tra kết nối của Belvador làm việc này cho từng runtime và đánh dấu project là Đã xác minh.

4. Công cụ không làm được gì#

Belvador không có session replay, profiling, AI debug hay MCP server. Sentry có cả bốn; agent Seer của họ tốn 40 USD cho mỗi người đóng góp đang hoạt động mỗi tháng, tính thêm ngoài gói. Nếu team bạn dựa vào những thứ đó, một công cụ rẻ hơn không phải là nâng cấp.

Giá, khi mọi thứ khác đã ổn#

Đây là giá niêm yết mình đọc ngày 25/10/2026. Giá thay đổi, nên hãy xem trang của từng bên trước khi quyết định.

Năm lựa chọn tương thích Sentry so theo nơi lưu, giá khởi điểm và việc vận hành
Trang của từng bên đọc ngày 25/10/2026 · giá niêm yết USD/EUR, chưa thuế

Chuyển mà không mất lỗi#

Mỗi lúc chỉ chạy một SDK, nếu không mỗi lỗi sẽ tới hai lần. Sau đó gửi một lỗi thử có tag từ mỗi runtime, và giữ công cụ cũ ở chế độ chỉ đọc cho tới khi công cụ mới bắt được một lỗi thật. Bài checklist chuyển SDK Sentry thử từng giả định trong danh sách đó với SDK Node.js chính thức. Còn bài lọc PII trong error monitoring cho thấy một bộ lọc thật bắt được gì và để lọt gì.

Belvador nằm ở đâu#

Belvador nhận những gì SDK của Sentry gửi, lưu trên một node trong dự án Hetzner của bạn, và gồm theo dõi lỗi, cron, uptime, SLO cùng trace và log OpenTelemetry. Trang thay thế Sentry liệt kê thứ gì chuyển được và thứ gì không. Hướng dẫn chuyển đổi ghép từng gói và tuỳ chọn của Sentry với bản tương ứng của Belvador. Nếu bạn cũng đang xem các công cụ mã nguồn mở, trang so với GlitchTip trích dẫn chính trang của GlitchTip.

Đọc tiếp#

Andrew Babo

Nhà sáng lập

Trong chủ đề này

Mọi bài viết

Sản phẩm

Chuyển SDK Sentry: checklist thử từng giả định

Đổi DSN là phần dễ. Mình chạy SDK Node.js chính thức của Sentry với hai cấu hình, liệt kê từng item nó gửi, và xem một backend tương thích Sentry làm gì với mỗi item.

Andrew Babo6 phút đọc

Đọc tiếp trong tài liệu

Xem lỗi production của chính bạn như thế này

Belvador chạy trên máy chủ Hetzner của chính bạn: lỗi, cron, uptime và trace — dữ liệu vẫn là của bạn.