07 ทดสอบ ล้มเหลว และแก้ไข
ฉีดความผิดพลาดที่รู้จักเข้าไป วินิจฉัยผ่าน ClickStack ลงมือแก้ และพิสูจน์การกู้คืน
ผลลัพธ์
ในเวลาประมาณ 20 นาที คุณจะดำเนินหนึ่งเหตุการณ์จากความล้มเหลวไปถึงการกู้คืนที่ตรวจสอบแล้ว สิ่งนี้ ต่อจากโมดูล 06 โดยตรงและใช้ ClickStack MCP ที่ตั้งค่าไว้ในโมดูล 00
ขั้นที่ 1 — เลือกความผิดพลาดหนึ่งอย่าง
เริ่มด้วย Fault 01 Fault 02 เป็นแบบฝึกหัดสั้นอันที่สอง ส่วน Fault 03 ต้องมีชุดข้อมูลที่ใหญ่กว่า เพื่อให้ล้มเหลวได้อย่างน่าเชื่อถือ
| Branch | ความล้มเหลวที่คาดไว้ | Rebuild |
|---|---|---|
fault/01-map-not-loading | รูปหลายเหลี่ยมบนแผนที่หายไป การ์ดอื่นทำงานได้ | frontend |
fault/02-zone-stats-500 | ข้อมูลแผนที่โซนล้มเหลวด้วย HTTP 500 | backend |
fault/03-slow-dashboard | คำขอแนวโน้มหมดเวลา ใช้กับข้อมูลหลายเดือนเท่านั้น | backend |
ขั้นที่ 2 — ฉีดเข้าไปและทำให้เกิดซ้ำ
ตัวอย่างต่อไปนี้ฉีด Fault 01 เข้าไปขณะที่ยังรักษางานในเครื่องไว้:
cd "$(git rev-parse --show-toplevel)"
git stash push --include-untracked -m "before-module-07"
git switch build-workshop-v1
git switch fault/01-map-not-loading
cd workshops/build_workshop/app
docker compose --env-file .env.workshop \
-f docker-compose.workshop.yml \
-f docker-compose.otel.yml \
up -d --build frontendเปิดเซสชันเบราว์เซอร์ใหม่ที่ localhost:8080 แผนที่ว่างเปล่าเป็น เรื่องที่คาดไว้ตอนนี้ ความล้มเหลวที่อื่นไม่ใช่ส่วนหนึ่งของสถานการณ์นี้
ขั้นที่ 3 — วินิจฉัยจากหลักฐาน
ให้ agent รู้อาการ ไม่ใช่คำตอบ:
Using the clickstack MCP, investigate the current workshop failure.
Correlate frontend and backend telemetry, identify the root cause, and cite the exact
events, request, response content type, or trace that supports the conclusion.
Do not edit code yet.สำหรับ Fault 01 ให้ตรวจ ClickStack → Client Sessions ด้วย หลักฐานที่มีประโยชน์คือ ข้อผิดพลาดของฟรอนต์เอนด์และการ parse ทรัพยากรที่ล้มเหลว trace ของแบ็กเอนด์ที่สุขภาพดีก็เป็นหลักฐานเช่นกัน เพราะ มันช่วยจำกัดวงของผลกระทบ

ก่อนจะแก้อะไร ให้จดไว้:
- คอมโพเนนต์ที่ล้มเหลว
- หลักฐานที่พิสูจน์มัน และ
- การตรวจการกู้คืนหนึ่งอย่างที่จะล้มเหลวก่อนแก้และผ่านหลังแก้
ขั้นที่ 4 — แก้ไขและ rebuild
ขอให้ agent ทำการเปลี่ยนแปลงที่เล็กที่สุดที่จัดการต้นเหตุที่พิสูจน์แล้ว แล้ว rebuild เซอร์วิสที่ได้รับผลกระทบ สำหรับ Fault 01:
docker compose --env-file .env.workshop \
-f docker-compose.workshop.yml \
-f docker-compose.otel.yml \
up -d --build frontendสำหรับ Fault 02 หรือ 03 ให้แทน frontend ด้วย backend
เปิดเซสชันเบราว์เซอร์ใหม่ อาการเดิมต้องหายไป และ ClickStack ต้องไม่แสดง ข้อผิดพลาดใหม่ที่ตรงกัน เหตุการณ์เดิมยังอยู่ในช่วงเวลาที่เลือกไว้ ให้เทียบ timestamp แทนที่จะคาดหวังว่าประวัติจะหายไป
ขั้นที่ 5 — กลับสู่เส้นฐานที่สะอาด
รักษาการแก้ไขที่คุณลองทำไว้ กู้คืน build-workshop-v1 และ rebuild เซอร์วิสของแอปทั้งสอง:
cd "$(git rev-parse --show-toplevel)"
git stash push --include-untracked -m "module-07-fix"
git switch build-workshop-v1
cd workshops/build_workshop/app
docker compose --env-file .env.workshop \
-f docker-compose.workshop.yml \
-f docker-compose.otel.yml \
up -d --build frontend backendการตรวจสอบความสมบูรณ์
- อาการที่ฉีดเข้าไปปรากฏก่อนการแก้ไข
- agent อ้างอิง telemetry ที่พิสูจน์ต้นเหตุ
- การตรวจการกู้คืนเดียวกันผ่านหลังการแก้ไข
- เซสชันใหม่ไม่สร้างข้อผิดพลาดใหม่ที่ตรงกัน
git branch --show-currentคืนค่าbuild-workshop-v1
ไปต่อที่ 08 แชทและ Langfuse