- เครื่องมือที่ช่วยให้สามารถติดตามคำขอเครือข่ายทั้งหมดที่เกิดขึ้นภายในคอนเทนเนอร์ Docker ได้
- เป็นการนำความสามารถของ Wireshark มาใช้กับสภาพแวดล้อมคอนเทนเนอร์
- ทำให้สามารถวิเคราะห์ทราฟฟิกเครือข่ายของเซิร์ฟเวอร์แบ็กเอนด์แบบเรียลไทม์ และแก้ปัญหาในสภาพแวดล้อมโปรดักชันได้รวดเร็วยิ่งขึ้น
ฟีเจอร์หลัก
- ใช้งานได้ทันทีโดยไม่ต้องตั้งค่าเพิ่มเติม
- เพียงเพิ่ม
subtrace run ไว้หน้าคำสั่งรันเซิร์ฟเวอร์แบ็กเอนด์
- ไม่ต้องแก้ไขโค้ด
- รองรับทุกภาษาโปรแกรมมิง (Python, Node.js, Go เป็นต้น)
- ตรวจสอบ payload ทั้งหมดของคำขอ, header, status code และ latency ได้
- มี performance overhead ต่ำกว่า 100µs
- พัฒนาบนพื้นฐานของ Clickhouse
- โอเพนซอร์ส
วิธีการทำงานของ Subtrace
- ดักจับ Linux system call (
syscall) ที่เกี่ยวข้องกับเครือข่ายทั้งหมดด้วย Seccomp BPF
- ทำ proxy ให้กับการเชื่อมต่อ TCP เพื่อวิเคราะห์คำขอ HTTP และส่งต่อไปยังเบราว์เซอร์ผ่าน WebSocket
- สามารถดูคำขอในรูปแบบภาพได้ผ่านแท็บ Network ของ Chrome DevTools
- ไม่ใช่แบบอิงล็อกเหมือน Sentry หรือ OpenTelemetry แต่สามารถเห็นทุกคำขอได้แบบเรียลไทม์ตามจริง
เกี่ยวกับการมีส่วนร่วมในโค้ด
- Subtrace เป็นโอเพนซอร์ส แต่ขณะนี้ยังไม่รับ Pull Request
- เนื่องจากเป็นสตาร์ทอัพที่ดำเนินงานด้วยทีมขนาดเล็ก จึงยังไม่มีทรัพยากรเพียงพอในการดูแลชุมชนโอเพนซอร์สอย่างมีประสิทธิภาพ
- นโยบายนี้อาจเปลี่ยนแปลงได้ในอนาคต และยินดีรับ feature request กับ bug report เสมอ
2 ความคิดเห็น
ถ้าเจอปัญหาด้วย Falco หรือ linkerd แล้วค่อยวิเคราะห์ด้วย subtrace ตอนจำเป็น ก็ดูเข้าท่าดีนะ~ :)
ความคิดเห็นจาก Hacker News