Chuyển đến nội dung chính
Quay lại danh sách bài viết

Sentry JavaScript SDK v11 เปลี่ยนระบบ Tracing ให้ใช้ได้กับ Bun, Deno และ Workers

Sentry v11 เปลี่ยนจาก patch exports เป็น source transform และ diagnostics channels พร้อมจุดที่ต้องตรวจเมื่อย้ายระบบ tracing เดิม

Sentry JavaScript SDK v11 เปลี่ยนระบบ Tracing ให้ใช้ได้กับ Bun, Deno และ Workers

Sentry เผยแพร่รายละเอียด JavaScript SDK v11 เมื่อวันที่ 9 ตุลาคม 2026 โดยเปลี่ยนวิธี instrument การทำ tracing จากการ patch export ผ่าน OpenTelemetry instrumentation packages มาเป็นการแปลง source และใช้ diagnostics channels การเปลี่ยนนี้ช่วยให้ tracing ของ dependency ทำงานได้ในแอปที่ bundle โค้ดเซิร์ฟเวอร์ และใน runtime อย่าง Cloudflare Workers, Bun และ Deno ซึ่งวิธีเดิมมีข้อจำกัด

สถาปัตยกรรมใหม่ช่วยอะไร

วิธีเดิมต้องอาศัย module loader, ไฟล์ package.json ของ dependency และ export ที่แก้ไขได้ แต่เมื่อ bundler รวม dependency เข้าไฟล์เดียว เงื่อนไขเหล่านี้มักหายไป v11 ใช้ code transformer ห่อ function ที่ต้องติดตามในช่วงโหลดโมดูลหรือระหว่าง build แล้วส่งเหตุการณ์ผ่าน diagnostics channel ให้ integration สร้าง span แนวทางนี้จึงไม่ต้องพึ่งการแก้ export หลังโหลด

Sentry ระบุว่า Node และ Deno รุ่นที่รองรับสามารถลงทะเบียน hook ตอน runtime ได้ ส่วน Bun ยังใช้ plugin ระหว่าง bun build เท่านั้นในตอนนี้ เพราะ runtime onLoad มีปัญหากับ CommonJS named exports สำหรับ Cloudflare Workers มี Vite plugin เฉพาะ ทีมที่รัน Bun แบบไม่ bundle ไม่ควรคาดหวังว่าการ instrument dependency ด้วยวิธีใหม่นี้จะครบเหมือน build-time

จุดที่ต้องตรวจเมื่ออัปเกรด

เริ่มจากอ่าน migration guide และทำ inventory ของ Sentry integration ปัจจุบัน ตรวจ preload ที่เคยใช้ เช่น @sentry/node/preload และตัวเลือก OpenTelemetry เฉพาะของ v10 เพราะ v11 เปลี่ยนหรือย้ายบาง API การเรียงลำดับโหลดโมดูลยังสำคัญ: hook ต้องถูกลงทะเบียนก่อน import dependency ที่จะ instrument ถ้าใช้ Node ให้ทดสอบ --import ตามเอกสาร ไม่ใช้ --require เป็นทางลัดเดิม

สำหรับแอปที่ bundle server code ให้ตรวจว่า dependency ที่ต้องติดตามไม่ได้ถูกทำเครื่องหมาย external จนข้าม transformer เปิด debug: true ในสภาพแวดล้อมทดสอบเพื่อตรวจว่า plugin หรือ hook ทำงานและโมดูลใดถูก instrument จริง วัดจำนวน span, ระยะเวลา request, error correlation และค่าใช้จ่าย telemetry ก่อนกับหลังเปลี่ยนเวอร์ชัน ไม่ควรสรุปจากการที่ SDK เริ่มทำงานได้เท่านั้น

ถ้าใช้ OpenTelemetry เอง

Sentry ยังรองรับการเชื่อมกับ OpenTelemetry แต่การจัดวางเปลี่ยนไป ถ้ามี provider และ exporter ขององค์กรอยู่แล้ว ให้ตรวจการใช้ Sentry.otlpIntegration() และปลายทางส่ง trace ตามคู่มือ v11 ระวัง span ซ้ำเมื่อ Sentry และ instrumentation ของทีมจับ library เดียวกัน กำหนด sampling และตรวจ trace ตัวอย่างแบบ end-to-end ก่อน deploy ทั้งระบบ

อ่านต้นทาง: Sentry JavaScript SDK v11 adds tracing for all JS platforms, 9 ตุลาคม 2026

Chia sẻ bài viết:
Xem thêm bài viết