AI SREClickHouse Workshops

07 ทดสอบ ล้มเหลว และแก้ไข

ฉีดความผิดพลาดที่รู้จักเข้าไป วินิจฉัยผ่าน ClickStack ลงมือแก้ และพิสูจน์การกู้คืน

Your computer
macOS terminal: Run workshop commands in Terminal using zsh or bash.

ผลลัพธ์

ในเวลาประมาณ 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 500backend
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 ของแบ็กเอนด์ที่สุขภาพดีก็เป็นหลักฐานเช่นกัน เพราะ มันช่วยจำกัดวงของผลกระทบ

ClickStack Client Sessions แสดงข้อผิดพลาดของฟรอนต์เอนด์และการเล่นซ้ำของแผนที่ว่างเปล่า

ก่อนจะแก้อะไร ให้จดไว้:

  • คอมโพเนนต์ที่ล้มเหลว
  • หลักฐานที่พิสูจน์มัน และ
  • การตรวจการกู้คืนหนึ่งอย่างที่จะล้มเหลวก่อนแก้และผ่านหลังแก้

ขั้นที่ 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

ในหน้านี้

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

TH