บทนำสู่การติดตามการทำงานแบบกระจาย
ทำความเข้าใจว่าการติดตามการทำงานแบบกระจายช่วยแสดงภาพคำขอที่ไหลผ่านบริการหลายรายการ เพื่อระบุความหน่วงและข้อผิดพลาดได้อย่างไร
บทนำสู่การติดตามการทำงานแบบกระจาย เป็นบทเรียน Production Debugging & Incident Response Playbook ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Production Debugging & Incident Response Playbook และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Production Debugging & Incident Response Playbook มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
Understand Distributed Tracing
In modern applications, especially those built with microservices, a single user request can travel through many different services. Distributed tracing is a technique that helps you follow a request's journey across these services.
It's like giving each request a unique ID and tracking its path, step-by-step, no matter how many services it touches.
Why We Need Tracing
Imagine a website where clicking a button involves your browser, a frontend service, an API gateway, an authentication service, a product database, and a recommendation engine. If something goes wrong, or it's slow, how do you know where the problem is?
Traditional logging often falls short here. Tracing gives you a holistic view of the entire transaction, making it easier to pinpoint issues.
Tracing in Modern Architectures
In a traditional monolith (one big application), debugging is often simpler because all code runs in one place. You can use a debugger to step through its execution.
With microservices, your application is broken into many small, independent services. This offers flexibility but makes debugging request flows much harder, as they span multiple processes and machines.
Following a Request's Path
Consider a simple e-commerce purchase transaction. A single 'buy' action from a user might involve:
- Your browser sending a request to the Frontend service.
- Frontend calling the Order service.
- Order service calling the Inventory service.
- Inventory service calling the Payment Gateway.
- Payment Gateway returning to Order service.
- Order service updating the Database.
Each step is a separate service. Tracing connects these dots.
Traces and Spans Explained
The core concepts in distributed tracing are Traces and Spans.
- A Trace represents the entire end-to-end journey of a single request or transaction through a distributed system.
- A Span represents a single operation or unit of work within that trace. It could be a function call, an HTTP request, or a database query.
Inside a Span
Each span captures important details about the operation it represents:
- Operation Name: What happened (e.g.,
authenticateUser,getProductDetails). - Start/End Timestamps: When the operation began and finished.
- Duration: How long it took.
- Attributes (Tags): Key-value pairs providing context (e.g.,
http.method="GET",db.type="postgres"). - Logs/Events: Specific events that occurred during the span.
Linking Spans with Context
For a trace to be useful, spans must be linked together to show their parent-child relationships. This is done using trace context.
When a service calls another service, it passes along the trace context, which includes the current trace ID and the parent span ID. This ensures the receiving service can create a new child span that correctly belongs to the ongoing trace.
Unique Identifiers: IDs
Every trace is identified by a unique Trace ID. All spans belonging to the same trace share this ID.
Each span also has its own unique Span ID. Additionally, a child span will have a Parent Span ID, which points to the span that initiated it. This mechanism forms a tree-like structure, visualizing the flow.
Collecting Trace Data (Instrumentation)
To collect tracing data, your application code needs to be instrumented. This means adding libraries or agents that automatically capture span information at key points (e.g., HTTP requests, database calls).
Many frameworks and languages have libraries that make instrumentation easier, often by auto-instrumenting common operations or providing APIs for custom spans. This allows data to be sent to a tracing backend.
Check Your Understanding
Which of the following statements about distributed tracing components are TRUE?
Recap: Tracing Fundamentals
We've introduced distributed tracing as a crucial technique for understanding request flows in complex, distributed systems. You learned about:
- The need for tracing in microservices.
- Traces (end-to-end request) and Spans (individual operations).
- How trace context and unique IDs connect spans.
- The concept of instrumentation for data collection.
Next, we'll explore specific tools and standards like OpenTelemetry that help implement these concepts!
เรียนรู้ Production Debugging & Incident Response Playbook ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 12
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “บทนำสู่การติดตามการทำงานแบบกระจาย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “บทนำสู่การติดตามการทำงานแบบกระจาย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Production Debugging & Incident Response Playbook ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Production Debugging & Incident Response Playbook มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “บทนำสู่การติดตามการทำงานแบบกระจาย”
ทำความเข้าใจว่าการติดตามการทำงานแบบกระจายช่วยแสดงภาพคำขอที่ไหลผ่านบริการหลายรายการ เพื่อระบุความหน่วงและข้อผิดพลาดได้อย่างไร คุณปฏิบัติ Production Debugging & Incident Response Playbook ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Production Debugging & Incident Response Playbook หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Production Debugging & Incident Response Playbook บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “บทนำสู่การติดตามการทำงานแบบกระจาย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Production Debugging & Incident Response Playbook นี้ได้ไหม
ได้ บทเรียน Production Debugging & Incident Response Playbook ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่การติดตามการทำงานแบบกระจาย
- การใช้ประโยชน์จากเครื่องมือติดตามการทำงาน (เช่น OpenTelemetry)
- การแก้ไขข้อบกพร่องในสถาปัตยกรรมไมโครเซอร์วิส
- เชื่อมโยงร่องรอย บันทึก และตัวชี้วัด