Distributed Tracing: ตามรอยคำขอเดียว ข้ามสิบระบบ เพื่อหาว่าช้าที่ใคร

28 พฤษภาคม 2569อ่าน 6 นาที
Distributed Tracing: ตามรอยคำขอเดียว ข้ามสิบระบบ เพื่อหาว่าช้าที่ใคร

ลูกค้าบ่นว่ากดสั่งซื้อแล้วช้า แต่คำสั่งนั้นวิ่งผ่านห้าบริการ แต่ละทีมดูระบบตัวเองแล้วบอกว่าปกติ Distributed Tracing ติดป้ายให้คำขอแต่ละอัน แล้ววาดเส้นทางทั้งหมดพร้อมเวลาในแต่ละจุด ให้เห็นทันทีว่าช้าตรงไหน

ในระบบที่แยกเป็นหลายบริการ การกดสั่งซื้อหนึ่งครั้งของลูกค้าอาจวิ่งผ่านบริการหน้าเว็บ ระบบสมาชิก ระบบสต๊อก ระบบชำระเงิน และระบบแจ้งเตือน เมื่อลูกค้าบ่นว่าช้า คำถามที่ตอบยากที่สุดกลับกลายเป็นคำถามพื้นฐานที่สุด คือช้าที่ตรงไหน แต่ละทีมเปิดหน้าจอดูระบบของตัวเองแล้วรายงานว่าปกติ เพราะต่างคนต่างเห็นเฉพาะท่อนของตัวเอง ไม่มีใครเห็นภาพการเดินทางทั้งเส้นของคำขอนั้น การไล่ปัญหาจึงกลายเป็นการประชุมข้ามทีมที่ยาวนานและจบด้วยการเดา

ติดป้ายที่คำขอ แล้ววาดทั้งเส้นทาง

Distributed Tracing แก้ปัญหานี้ด้วยหลักการง่าย ๆ คือติดรหัสประจำตัวให้คำขอตั้งแต่ก้าวแรก แล้วให้ทุกบริการที่คำขอวิ่งผ่านส่งต่อรหัสนั้นและบันทึกเวลาเข้าออกของตัวเอง เมื่อนำบันทึกทั้งหมดมาต่อกัน จะได้ภาพเส้นทางของคำขอหนึ่งอันแบบครบถ้วน เห็นว่าแวะที่ไหน นานเท่าไร และรอใครนานที่สุด คำถามว่าช้าที่ใครจึงเปลี่ยนจากการถกเถียงเป็นการเปิดภาพดู สามวินาทีที่หายไปอาจโผล่ชัดว่าคือการเรียกฐานข้อมูลซ้ำในบริการสต๊อก หรือการรอบริการภายนอกที่ไม่มีใครตั้งเวลาหมดรอไว้

  • ส่งรหัสประจำคำขอข้ามทุกบริการ ตั้งแต่ก้าวแรกจนจบ
  • เห็นเวลาที่ใช้ในแต่ละจุดของเส้นทาง แทนการเดาข้ามทีม
  • ใช้มาตรฐานกลางที่เครื่องมือส่วนใหญ่รองรับ ไม่ต้องสร้างเอง

Distributed Tracing คือส่วนเติมเต็มของการเฝ้าดูระบบยุคใหม่ ที่เปลี่ยนคำถามจากระบบไหนพังเป็นคำขอของลูกค้าคนนี้เจออะไรมาบ้าง สำหรับธุรกิจ ประโยชน์วัดได้ตรง ๆ ที่เวลาในการหาต้นตอปัญหา จากการประชุมข้ามทีมครึ่งวันเหลือการเปิดภาพห้านาที และในระบบที่ทุกนาทีของความช้าคือยอดขายที่หาย ความเร็วในการมองเห็นนี่แหละคือเงิน

Distributed TracingObservabilityMicroservicesPerformance

บริการที่เกี่ยวข้อง

รับพัฒนาเว็บแอปพลิเคชัน

สร้างเว็บแอปที่รองรับการเติบโตและเชื่อมกับระบบอื่นได้

WhaleScope

ดูโครงสร้างตลาดของทุกหมวดธุรกิจไทย บน WhaleScope

รายชื่อบริษัท ผู้เล่นรายใหญ่ และอัตราคงอยู่ของแต่ละหมวด — จากข้อมูลจดทะเบียน 2 ล้านนิติบุคคล

อ่านต่อ

Observability ไม่ใช่แค่ Logging: Metrics, Traces และ SLO ที่ธุรกิจควรเข้าใจ

เมื่อระบบช้าหรือล่ม คำถามแรกคือ รู้ได้ยังไงและรู้เร็วแค่ไหน Observability คือความสามารถในการเข้าใจสิ่งที่เกิดในระบบจากภายนอก และ SLO คือสัญญาคุณภาพที่แปลงเรื่องเทคนิคเป็นภาษาธุรกิจ

Microservices หรือ Monolith: แยกระบบเป็นชิ้นเล็กดีจริงไหม

Microservices เป็นกระแส แต่ไม่ได้เหมาะกับทุกธุรกิจ การแยกระบบเป็นชิ้นเล็กเพิ่มความยืดหยุ่น แต่ก็เพิ่มความซับซ้อนมหาศาล เข้าใจว่าเมื่อไรควรแยก และเมื่อไร Monolith คือคำตอบที่ดีกว่า

API Gateway: ประตูหน้าบ้านเดียว สำหรับทุกบริการหลังบ้าน

เมื่อระบบแยกเป็นหลายบริการ การให้แอปลูกค้าคุยตรงกับทุกบริการคือความวุ่นวายและช่องโหว่ API Gateway คือประตูเดียวที่รวมการยืนยันตัวตน การจำกัดปริมาณ และการนำทางคำขอไว้ที่เดียว

Read Replica: แยกงานอ่านออกจากงานเขียน เพื่อให้ระบบไหว

ระบบส่วนใหญ่อ่านข้อมูลบ่อยกว่าเขียนมาก เมื่อฐานข้อมูลเดียวรับทั้งสองไม่ไหว Read Replica คือการทำสำเนาไว้รับงานอ่าน ช่วยให้รายงานและหน้าเว็บเร็วขึ้นโดยไม่กระทบงานเขียน