FastAPI 0.143.0, phát hành ngày 8/10/2026, biến việc tự động cấu hình exporter OpenTelemetry thành tùy chọn opt-in — một thay đổi phá vỡ (breaking change) ghi rõ trong release notes chính thức. Trước đây chỉ cần đặt các biến môi trường OTEL_* là telemetry tự chảy về backend; từ bản này bạn phải bật tường minh bằng FASTAPI_OTEL_AUTO_CONFIGURE=true hoặc FastAPI(telemetry={“auto_configure”: True}), nếu không dữ liệu sẽ không rời khỏi ứng dụng. Đáng sợ ở chỗ app vẫn chạy bình thường, endpoint vẫn trả về 200, chỉ dashboard quan sát là im lặng dần.

Thay đổi này nối tiếp tính năng OpenTelemetry tích hợp sẵn ở FastAPI 0.142.0, vốn ghi trace, metric và log mà không cần thêm middleware. Bản 0.143.0 không gỡ tính năng đó, chỉ thu hẹp phần “tự động” — điều chỉnh nhỏ nhưng đủ sức làm “câm” cả hệ thống quan sát nếu bạn nâng cấp mà không đọc release notes.

Chuyện gì đã thay đổi, chính xác?

Ở 0.142.0, chỉ cần cài fastapi[standard] và đặt biến môi trường như OTEL_EXPORTER_OTLP_ENDPOINT là FastAPI tự gắn exporter, gửi trace, metric và log của mỗi request về backend OTLP. Từ 0.143.0, bước tự gắn exporter đó không còn bật mặc định. FastAPI vẫn ghi telemetry nội bộ, nhưng nếu bạn không bật tường minh và cũng không tự cấu hình provider hay exporter, dữ liệu sẽ ở yên trong ứng dụng, không tới được backend nào.

Lưu ý: từ 0.142.2, lỗi cấu hình tự động không còn làm app khởi động thất bại, nên telemetry hỏng chỉ lặng lẽ biến mất.

Ai bị ảnh hưởng, ai thì không?

Bạn bị ảnh hưởng nếu hệ thống dựa vào FastAPI để tự cấu hình exporter từ các biến môi trường OTEL_* — tức đặt biến môi trường rồi “quên” luôn chuyện cấu hình. Ngược lại, bạn không cần làm gì nếu đã tự cấu hình provider và exporter bằng code, vì FastAPI vẫn tôn trọng cấu hình của bạn. Người dùng FastAPI Cloud không cần làm gì, vì nền tảng tự bật cấu hình tự động.

Kiểm tra và sửa trong 5 phút

  • Kiểm tra phiên bản bằng lệnh pip show fastapi. Nếu từ 0.143.0 trở lên và bạn dùng biến môi trường OTEL_*, bạn thuộc diện cần xử lý.
  • Bật lại hành vi cũ bằng một trong hai cách: đặt FASTAPI_OTEL_AUTO_CONFIGURE=true, hoặc truyền FastAPI(telemetry={“auto_configure”: True}) khi tạo ứng dụng.
  • Xác minh bằng dữ liệu thật: gửi vài request rồi kiểm tra backend quan sát có span mới không. Đừng chỉ nhìn health check còn xanh.

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

Bài học lớn hơn bản vá này: những thay đổi về “mặc định” trong framework có thể lặng lẽ cắt đứt khả năng quan sát mà không gây ra một lỗi nào. Khi dashboard trống trơn, bạn không chỉ mất trace để debug sự cố đang diễn ra. Vì vậy, hãy đưa bước kiểm tra telemetry — gửi request thật và xác nhận span xuất hiện ở backend — vào checklist sau mỗi lần nâng cấp dependency, ngang hàng với việc chạy test suite.

Bài viết liên quan

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

Nâng cấp lên 0.143.0 có làm mất trace, metric và log đã ghi không?

Không. FastAPI vẫn ghi telemetry nội bộ như trước; chỉ bước tự gắn exporter là không còn bật mặc định, nên dữ liệu không được gửi đi.

Tôi tự cấu hình OpenTelemetry bằng code thì có cần làm gì không?

Không. Release notes khẳng định các ứng dụng tự cấu hình provider và exporter không cần thay đổi gì.

Làm sao biết telemetry của mình đang bị “câm”?

Gửi vài request thật rồi kiểm tra backend quan sát có span mới không. Nếu app vẫn chạy tốt nhưng backend không nhận thêm dữ liệu sau lần nâng cấp, rất có thể bạn đang gặp đúng thay đổi này.

💬 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