Software Telemetry คือ อะไร

ตัวคำนี้ผมได้ยินมาตั้งแต่สมัยตอนทำ 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) นั้นเอง
Ref: Logs vs Metrics vs Traces - Code With Engineering Playbook (microsoft.github.io)

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.