0Pricing
DevOps Bootcamp · บทเรียน

การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย

ทำให้การนำไปใช้งานสามารถสังเกตตรวจสอบได้ด้วยบันทึกแบบมีโครงสร้าง ID สำหรับเชื่อมโยง และการติดตามแบบกระจาย เพื่อแก้ไขข้อผิดพลาดข้ามบริการในไปป์ไลน์ CI/CD

การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

เสาหลักสามประการของการสังเกตระบบ

การสังเกตระบบตั้งอยู่บนเสาหลักสามประการ ได้แก่ เมตริก รายการบันทึก และ ร่องรอย

  • เมตริก บอกคุณว่ามีบางอย่างผิดปกติ
  • รายการบันทึก บอกคุณว่าเกิดอะไรขึ้น
  • ร่องรอย บอกคุณว่าเหตุการณ์นั้นเกิดขึ้นที่ใดในลำดับการไหลของคำขอ

โดยทั่วไปการตรวจสอบไปป์ไลน์จะเริ่มจากเมตริก บทเรียนนี้จะเจาะลึกรายการบันทึกและร่องรอยมากขึ้น

เหตุใดจึงควรใช้การบันทึกแบบมีโครงสร้าง

บรรทัดรายการบันทึกข้อความธรรมดาค้นหาได้ยาก ส่วน รายการบันทึกแบบมีโครงสร้าง คือระเบียนที่เครื่องอ่านได้ ซึ่งโดยทั่วไปอยู่ในรูปแบบ JSON และมีฟิลด์ที่มีชื่อกำกับ

เครื่องมืออย่าง Loki, Elasticsearch หรือ Datadog สามารถกรอง รวมกลุ่ม และตั้งการแจ้งเตือนจากรายการบันทึกแบบมีโครงสร้างได้

แบบธรรมดากับแบบมีโครงสร้าง

ลองเปรียบเทียบบรรทัดที่ไม่มีโครงสร้างกับบรรทัดที่มีโครงสร้าง เวอร์ชันที่มีโครงสร้างช่วยให้คุณค้นหา status=500 ได้โดยตรง

// Unstructured
Deploy failed for service api at 12:01

// Structured (JSON)
{"level":"error","event":"deploy_failed","service":"api","status":500}

การส่งออกรายการบันทึก JSON

ภาษาส่วนใหญ่มีตัวบันทึกแบบมีโครงสร้าง แนวคิดสำคัญคือให้บันทึกออบเจ็กต์ ไม่ใช่สตริงที่นำมาต่อกัน

const log = (level, event, fields) =>
  console.log(JSON.stringify({ level, event, ...fields }));
log('info', 'deploy_started', { service: 'api', version: '1.4.2' });

รหัสเชื่อมโยง

การปรับใช้ครั้งเดียวอาจเกี่ยวข้องกับหลายขั้นตอนและบริการ รหัสเชื่อมโยง (หรือรหัสการติดตาม) คือค่าที่ไม่ซ้ำกันซึ่งแนบกับรายการบันทึกทุกบรรทัดของการดำเนินการเชิงตรรกะหนึ่งรายการ

การค้นหาด้วยรหัสดังกล่าวจะช่วยสร้างเรื่องราวทั้งหมดขึ้นใหม่จากส่วนประกอบต่าง ๆ

  - name: Set correlation id
    run: echo "TRACE_ID=$(uuidgen)" >> $GITHUB_ENV

ระดับรายการบันทึก

ใช้ ระดับรายการบันทึก ให้สอดคล้องกัน เพื่อให้คุณปรับระดับรายละเอียดและการแจ้งเตือนได้:

  • debug — ข้อมูลวินิจฉัยโดยละเอียด
  • info — เหตุการณ์ปกติ
  • warn — ปัญหาที่กู้คืนได้
  • error — ความล้มเหลวที่ต้องให้ความสนใจ

ตั้งการแจ้งเตือนสำหรับ error เก็บตัวอย่างจาก info และปิด debug ในระบบจริง

การติดตามแบบกระจายคืออะไร

การติดตามแบบกระจายติดตามคำขอขณะที่คำขอเดินทางผ่านบริการหลายรายการ แต่ละขั้นตอนคือ span และ span จะเชื่อมต่อกันเป็นร่องรอย

ร่องรอยจะแสดงลำดับเวลา รวมถึงระบุว่า span ใดทำงานช้าหรือเกิดข้อผิดพลาด ซึ่งมีประโยชน์อย่างยิ่งในการปรับใช้ไมโครเซอร์วิส

OpenTelemetry

OpenTelemetry (OTel) คือมาตรฐานที่ไม่ขึ้นกับผู้จำหน่ายสำหรับสร้างร่องรอย เมตริก และรายการบันทึก

เพิ่มเครื่องมือให้แอปของคุณด้วย OTel SDK แล้วส่งออกไปยังแบ็กเอนด์อย่าง Jaeger, Tempo หรือ APM บนคลาวด์

import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('deploy-service');
const span = tracer.startSpan('deploy');
// ... do work
span.end();

การติดตามตัวไปป์ไลน์เอง

คุณสามารถติดตามได้ไม่เพียงแค่แอปของคุณ แต่รวมถึงไปป์ไลน์ด้วย เครื่องมือจะสร้าง span สำหรับแต่ละงานและขั้นตอน เพื่อให้คุณเห็นว่าขั้นตอนใดของ CI/CD เป็นคอขวด

วิธีนี้เปลี่ยนเวิร์กโฟลว์ที่ยาวให้กลายเป็นแผนภาพลำดับเวลาที่มองเห็นได้ว่าใช้เวลาไปกับส่วนใด

การรวมข้อมูลไว้ที่ศูนย์กลาง

ส่งรายการบันทึกและร่องรอยจากทุกงานและบริการไปยัง แพลตฟอร์มส่วนกลาง ตัวเรียกใช้งาน CI มีอายุการใช้งานชั่วคราว ดังนั้นรายการบันทึกที่เก็บไว้บนตัวเรียกใช้งานจะหายไปหลังการทำงานเสร็จสิ้น

ส่งต่อไปยังจุดรับรายการบันทึกระหว่างการทำงาน เพื่อให้สามารถวิเคราะห์หลังเหตุการณ์ได้แม้ตัวเรียกใช้งานจะหายไปแล้ว

จากสัญญาณสู่การลงมือทำ

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

เป้าหมายคือ จากการแจ้งเตือนเพียงครั้งเดียว ให้ไปยังร่องรอยและบรรทัดรายการบันทึกแบบมีโครงสร้างที่อธิบายสาเหตุได้โดยตรง

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับรายการบันทึกและร่องรอย

ทบทวน

คุณได้พัฒนาความสามารถในการสังเกตระบบด้วย รายการบันทึกและร่องรอย

  • ส่งออก รายการบันทึกแบบมีโครงสร้าง (JSON) ด้วยระดับที่สอดคล้องกัน
  • แนบ รหัสเชื่อมโยง เพื่อติดตามการดำเนินการหนึ่งรายการ
  • ใช้การติดตามแบบกระจายและ OpenTelemetry เพื่อค้นหา span ที่ทำงานช้าหรือล้มเหลว
  • รวมข้อมูลทั้งหมดไว้ที่ศูนย์กลางก่อนที่ตัวเรียกใช้งานชั่วคราวจะหายไป

สิ่งนี้ช่วยเสริมเมตริกและการแจ้งเตือน เพื่อให้มองเห็นไปป์ไลน์ได้อย่างครบถ้วน

คำถามที่พบบ่อย

บทเรียน “การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย”

ทำให้การนำไปใช้งานสามารถสังเกตตรวจสอบได้ด้วยบันทึกแบบมีโครงสร้าง ID สำหรับเชื่อมโยง และการติดตามแบบกระจาย เพื่อแก้ไขข้อผิดพลาดข้ามบริการในไปป์ไลน์ CI/CD คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. กลยุทธ์การติดตามไปป์ไลน์
  2. การผสานรวมกับบริการภายนอก
  3. การตั้งค่าการแจ้งเตือน
  4. การบันทึกแบบมีโครงสร้างและการติดตามแบบกระจาย
← กลับไปที่ DevOps Bootcamp