Distributed tracing ด้วย AWS X-Ray และ structured logging
การ Deploy แอปพลิเคชันบน AWS
Dunieski Otano
Amazon Web Services Solutions Architect
คำขอที่ช้าซึ่งไม่มีใครหาเจอ
คำขอหนึ่งใช้เวลาถึงสี่วินาที
ล็อกของแต่ละเซอร์วิสดูปกติเมื่อดูแยกกัน
ไม่มีใครเห็นเส้นทางทั้งหมด
ปัญหาที่ distributed tracing แก้ได้
คำขอหนึ่งผ่าน
หลายเซอร์วิส
ล็อกอย่างเดียวไม่แสดง
เส้นทางตั้งแต่ต้นจนจบ
trace
เชื่อมคำขอทั้งหมดเข้าด้วยกัน
เห็นได้ชัดว่าเวลาหายไปที่จุดใด
Segment, subsegment และ service map
Segment
: งานที่เซอร์วิสหนึ่งทำ
Subsegment
: หน่วยย่อยใน segment เช่น การเรียก DB
Service map
: กราฟแสดง segment ทั้งหมด
แต่ละโหนดแสดง latency และข้อผิดพลาด
Annotations กับ metadata
Annotations
คู่ key-value ที่ถูก index ทำให้
กรองข้อมูลได้
ใช้กับสิ่งที่จะค้นหา เช่น customer tier
Metadata
รายละเอียดเพิ่มเติมที่
ไม่ถูก index
แนบไว้เพื่อบริบท แต่ไม่สามารถค้นหาได้
เชื่อมล็อกกับ trace ID
แต่ละ trace มี
trace ID
ที่ไม่ซ้ำกัน
ใส่ trace ID ไว้ใน
structured log
ข้ามจาก trace ที่ช้าไปยังบรรทัดล็อกที่ตรงกันได้ทันที
ล็อกและ trace กลายเป็นการตรวจสอบเดียวกัน
อ่าน service map เพื่อหาคอขวด
เริ่มที่
service map
ไม่ใช่ล็อก
หาโหนดที่มี
latency
สูงสุด
เจาะลึกลงใน
trace timeline
segment ที่ยาวที่สุดคือจุดที่ต้องสงสัย
Tracing ตลอดคำขอทั้งหมด
API Gateway, Lambda และการเรียก downstream ล้วน
ถูก trace
แต่ละรายการเพิ่ม
segment
เข้า trace เดียวกัน
trace ID เดียวเชื่อมล็อกและ segment ทั้งหมด
มองเห็นทุกคำขอตั้งแต่ต้นจนจบ
มาฝึกกันเถอะ!
การ Deploy แอปพลิเคชันบน AWS
Preparing Video For Download...