การติดตามแบบกระจายและเหตุการณ์
เติมเต็มชุดเครื่องมือสังเกตการณ์ระบบของคุณด้วยการติดตามแบบกระจายสำหรับเส้นทางคำขอ และเหตุการณ์ Kubernetes สำหรับสัญญาณระดับคลัสเตอร์
การติดตามแบบกระจายและเหตุการณ์ เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เสาหลักสามประการของการสังเกตการณ์ระบบ
การสังเกตการณ์ระบบมีเสาหลักสามประการ ได้แก่ บันทึก เมตริก และ ร่องรอย คุณได้เห็นบันทึกและเมตริกมาแล้ว บทเรียนนี้จะเพิ่มเรื่องการติดตาม รวมถึงเหตุการณ์ของ Kubernetes
การติดตามแบบกระจายคืออะไร
การติดตามแบบกระจายติดตามคำขอเดียวขณะเดินทางผ่านบริการหลายรายการ วิธีนี้แสดงให้เห็นว่าใช้เวลาไปกับส่วนใด และบริการใดเป็นสาเหตุของข้อผิดพลาด
ช่วงติดตามและร่องรอย
ร่องรอยคือเส้นทางทั้งหมดของคำขอ แต่ละขั้นตอนคือช่วงติดตามที่มีเวลาเริ่มต้น ระยะเวลา และข้อมูลเมทาดาทา ช่วงติดตามจะซ้อนกันเป็นต้นไม้
# A trace for one checkout request
# trace_id: abc123
# span: api-gateway (40ms)
# span: order-service (25ms)
# span: db-query (15ms)
# span: payment-service (10ms)การส่งต่อบริบท
การติดตามจะทำงานได้ก็ต่อเมื่อบริการต่าง ๆ ส่งต่อบริบทของร่องรอยในส่วนหัวของคำขอ เพื่อให้แต่ละช่วงเชื่อมโยงกับร่องรอยเดียวกัน
# W3C Trace Context header
traceparent: 00-abc123def456-00f067aa0ba902b7-01OpenTelemetry
OpenTelemetry (โอเทล)คือมาตรฐานสำหรับเพิ่มการติดตามให้แอปและส่งออกร่องรอย ตัวรวบรวมโอเทลสามารถทำงานในคลัสเตอร์เพื่อรับและส่งต่อช่วงติดตามได้
ระบบส่วนหลังของการติดตาม
ช่วงติดตามจะถูกส่งไปยังระบบส่วนหลัง เช่น เยเกอร์ หรือ เทมโป ซึ่งจัดเก็บและแสดงภาพร่องรอย เพื่อให้คุณตรวจสอบคำขอที่ช้าได้อย่างละเอียด
# deploy a collector that exports to Jaeger
kubectl get pods -n observability -l app=otel-collectorเหตุการณ์ของ Kubernetes
นอกเหนือจากร่องรอยของแอปแล้ว Kubernetes ยังสร้างเหตุการณ์ที่อธิบายสิ่งที่คลัสเตอร์กำลังทำ เช่น การจัดตารางเวลา การดึงอิมเมจ การตรวจสอบโพรบล้มเหลว และอื่น ๆ
kubectl get events --sort-by=.lastTimestampการอ่านเหตุการณ์ของทรัพยากร
kubectl describe แสดงเหตุการณ์ที่เกี่ยวข้องกับออบเจ็กต์หนึ่ง ๆ ซึ่งมักเป็นวิธีที่เร็วที่สุดในการดูว่าเหตุใดพ็อดจึงติดขัด
kubectl describe pod my-app
# Events:
# Warning FailedScheduling no nodes available
# Normal Scheduled assigned to node-2
# Warning BackOff restarting failed containerเหตุการณ์มีอายุสั้น
โดยค่าเริ่มต้น เหตุการณ์จะหมดอายุหลังจากประมาณหนึ่งชั่วโมง หากต้องการเก็บประวัติคลัสเตอร์ระยะยาว ให้ส่งออกเหตุการณ์ไปยังระบบบันทึกหรือระบบส่วนหลังของเหตุการณ์ เพื่อไม่ให้สูญเสียสัญญาณสำคัญ
การเชื่อมโยงสัญญาณ
พลังที่แท้จริงเกิดจากการเชื่อมโยงแหล่งข้อมูลทั้งหมดเข้าด้วยกัน เมตริกที่พุ่งสูงขึ้นจะนำคุณไปยังร่องรอย ร่องรอยจะชี้ไปยังบริการ และบันทึกกับเหตุการณ์ของบริการนั้นจะอธิบายสาเหตุราก
เมื่อใดควรใช้การติดตาม
- คำขอทำงานช้า แต่คุณไม่ทราบว่าบริการใดเป็นต้นเหตุ
- ข้อผิดพลาดปรากฏขึ้นลึกเข้าไปในห่วงโซ่ของบริการขนาดเล็ก
- คุณต้องทำความเข้าใจการพึ่งพากันระหว่างบริการ
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความรู้เรื่องการติดตาม
สรุปทบทวน
คุณได้เพิ่มเสาหลักประการที่สามของการสังเกตการณ์ระบบ นั่นคือ การติดตามแบบกระจาย ซึ่งติดตามคำขอข้ามบริการต่าง ๆ โดยใช้ช่วงติดตามและการส่งต่อบริบท มักส่งผ่าน OpenTelemetry ไปยังเยเกอร์หรือเทมโป นอกจากนี้คุณยังได้เรียนรู้การอ่านเหตุการณ์ของ Kubernetes ที่มีอายุสั้นเพื่อวินิจฉัยปัญหาระดับคลัสเตอร์ และการเชื่อมโยงบันทึก เมตริก ร่องรอย และเหตุการณ์เข้าด้วยกัน
คำถามที่พบบ่อย
บทเรียน “การติดตามแบบกระจายและเหตุการณ์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การติดตามแบบกระจายและเหตุการณ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การติดตามแบบกระจายและเหตุการณ์”
เติมเต็มชุดเครื่องมือสังเกตการณ์ระบบของคุณด้วยการติดตามแบบกระจายสำหรับเส้นทางคำขอ และเหตุการณ์ Kubernetes สำหรับสัญญาณระดับคลัสเตอร์ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การติดตามแบบกระจายและเหตุการณ์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเก็บบันทึกด้วย kubectl logs
- ตัวชี้วัดด้วย Prometheus และ Grafana
- การตรวจสอบสุขภาพ: โพรบการทำงานและความพร้อม
- การติดตามแบบกระจายและเหตุการณ์