Sentry vừa phát hành bản beta 3.0.0b2 của SDK Python vào ngày 27/10/2026, bản thử nghiệm của phiên bản lớn tiếp theo dự kiến ra mắt trong tháng 11/2026. Thay đổi lớn nhất: tracing theo transaction bị loại bỏ hoàn toàn, thay bằng span streaming làm mặc định; send_default_pii bị xóa, thay bằng data_collection chi tiết hơn. Đây vẫn là bản beta nên chỉ thử trên staging, chưa đưa lên production.

Sentry là công cụ theo dõi lỗi và hiệu năng quen thuộc của nhiều dự án Django, Flask và FastAPI. Bản major nào cũng kèm breaking change, và 3.0 không phải ngoại lệ. Đọc trước hướng dẫn migration giúp tránh mất trace, mất log, hoặc thu thập dữ liệu nhạy cảm sau khi nâng cấp.

Có gì mới trong Sentry Python SDK 3.0

Điểm cốt lõi là span streaming. Trước đây các span được gom vào một transaction rồi gửi đi cùng nhau; từ 3.0, mỗi span được gửi riêng lẻ ngay khi kết thúc. Bạn không cần đặt trace_lifecycle=”stream” nữa.

Tùy chọn data_collection thay thế send_default_pii cùng các tùy chọn rời rạc như include_local_variables. Thay vì một công tắc chung, giờ bạn điều khiển từng nhóm: user_info, http_bodies, graphql, gen_ai, mcp, database_query_data, queues, stack_frame_variables, http_headers, cookies và url_query_params.

Yêu cầu tối thiểu nâng lên: Python 3.7 trở lên, Django 2.0, Flask 2.0, FastAPI 0.85, Starlette 0.20, Celery 5.0 và SQLAlchemy 1.4. Nếu tự host Sentry, bạn cần phiên bản 26.4.2 trở lên vì định dạng span mới. Lưu ý: integration logging và Strawberry không còn tự bật — muốn dùng tiếp phải khai báo rõ.

Những thay đổi dễ làm “gãy” dự án nhất

Nhiều tùy chọn cũ bị xóa: enable_tracing đổi thành traces_sample_rate; enable_logs và enable_metrics biến mất; propagate_traces nhường chỗ cho trace_propagation_targets; profiles_sample_rate đổi thành profile_session_sample_rate kèm profile_lifecycle.

Ở tầng tracing thủ công, start_transaction và before_send_transaction bị xóa, span chỉ còn attributes qua set_attribute. Tên span operation cũng chuẩn hóa: db.redis thành db.query, middleware.django thành middleware, queue.task.celery thành queue.publish và queue.process. Mọi alert, dashboard hay truy vấn lọc theo tên op cũ đều cần rà soát lại.

SDK cũng không tự gắn tag nữa: những tag như aws_region hay gcp_region biến mất, dữ liệu tương ứng chuyển thành span attributes, ví dụ cloud.region. Với logging, level đổi thành breadcrumb_level, sentry_logs_level đổi thành level, và event_level mặc định thành None — log ERROR không còn tự tạo event, muốn giữ hành vi cũ phải đặt event_level tường minh.

Điều này có ý nghĩa gì với bạn

Hãy nâng cấp theo từng bước: đọc kỹ hướng dẫn migration, thử beta trên staging, rồi grep codebase tìm API bị xóa. Kiểm tra lại alert và dashboard theo span op và tag cũ, và rà soát data_collection trước khi bật — event scrubber mặc định không còn lọc biến nhạy cảm như trước.

Bài viết liên quan

Câu hỏi thường gặp

Có nên nâng cấp lên 3.0.0b2 ngay cho production không?

Không. Đây là bản beta để thử nghiệm; bản chính thức dự kiến trong tháng 11/2026. Hãy chờ bản stable.

Dự án chỉ dùng sentry_sdk.init cơ bản có bị ảnh hưởng không?

Rất ít. Nếu bạn chỉ dùng instrumentation tự động và traces_sample_rate thì gần như không phải đổi gì. Chỉ cần kiểm tra phần logging nếu dự án dựa vào log ERROR tự tạo event.

Trước đây dùng send_default_pii=True thì giờ làm gì?

Chỉ cần xóa tùy chọn đó, vì mặc định mới thu thập lượng dữ liệu tương đương. Nếu trước đây bạn để False, hãy cấu hình data_collection để tắt từng nhóm không muốn thu thập.

💬 Tin này ảnh hưởng tới dự án của bạn thế nào? Chia sẻ góc nhìn của bạn trong phần bình luận — mình đọc hết và sẽ tổng hợp những ý hay nhất.

Nguồn tham khảo