ตัวคำนี้ผมได้ยินมาตั้งแต่สมัยตอนทำ Thesis ว่ามันเอา metric ไปใช้ต่อ แต่คิดว่ามาเขียนให้เป็นรูปเป็นร่างดีกว่า เผื่อต้องมาลองย้อนนึกๆ อีกครับ โดยก่อนที่เราต้องมารู้จัก Telemetry สิ่งที่ต้องรู้อย่างแรก นอกจาก Software จะถูกออกแบบให้มันทำงานตาม Business ใน Domain นั้นๆ แล้ว สิ่งที่ตัว Software ที่ดีควรจะทำเพิ่ม เพื่อเอามาติดตามปัญหา หรือจะทำ Preventive Maintenance มี 3 ส่วน ได้แก่
- Logs บันทึกการทำงานของ App มันช่วยแก้ปัญหาที่เกิดขึ้น (Logs help you identify the issue) เช่นมี Exception โผล่มา หรือ ทำไมส่วนที่คิดว่าต้องทำงานรอบเดียว มันทำเกินมา 4-5 รอบ
- Trace เรียกว่าจะเจาะลงไปมากกว่า Log มันจะบอกถึง Flow การทำงาน ช่วยให้เข้าใจ Issue มากขึ้น โดยจะอ้างอิงจากตัว correlation_id หรือ trace_id
- Metric ข้อมูลในลักษณะเชิงสรุปมาระดับนึงแล้ว เช่น Count ว่า API A ถูกยิง Request กี่ครั้ง หรือ Average Response Time ของ API B ในแต่ละชั่วโมง เป็นต้น เพื่อที่จะได้เอาไปวิเคราะห์ต่อไปครับ
แล้วที่นี้ตัว Software Telemetry คือ อะไร
- กระบวนที่ดึงข้อมูลที่ใช้สำหรับการวัด (Metron = Measure - คำ Greek) ในมุมของ Software Logs / Trace และ Metric
- จากหลายที่ Remote xxx เช่น VM / Container ... (Tele = remote - คำ Greek) มารวมกัน
- เพื่อให้เราได้เห็นภาพมากขึ้น และสามารถติดตามปัญหา หรือจะทำ Preventive Maintenance ทำให้เราเห็นสังเกตุ ตามได้ (Observability) นั้นเอง
Reference
- What is telemetry ? | Vivonics (vivonics-preclinical.com)
- Logs vs Metrics vs Traces - Code With Engineering Playbook (microsoft.github.io)
- Signals | OpenTelemetry
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.