ในแต่ละ service ควรมีต้อง monitor อะไรบ้าง ?

เป็นคำถามที่น่าสนใจสำหรับการพัฒนา service ที่ดีนั้น ควร monitor อะไรบ้าง หรืออาจจะเรียกว่า observable service เพื่อช่วยให้เราดูการทำงาน ใช้งานต่าง ๆ ของ service ตลอดจนช่วยให้ง่ายต่อการ detect และแก้ไขปัญหาได้รวดเร็วมากยิ่งขึ้น รวมทั้งยังสามารถนำไปทำงานแบบ automate ได้อีกด้วย

สิ่งที่ควรจะต้องมีประกอบไปด้วย

  • Health check ของ service น่าจะต้องเป็นค่า default ไปแล้ว เพื่อช่วยบอกว่า service ยังทำงานได้ปกติหรือไม่ ทั้ง liveness และ readiness
  • Alert system ที่ทำงานแบบ realtime และควรแจ้งทั้งปัญหา หรือ รูปแบบที่อาจจะก่อให้เกิดปัญหา ควรเตือนก่อนจะเกิดปัญหา ถ้าแจ้งตอนเกิดปัญหา มันจะตั้งตัวไม่ทัน ในการ alert ควรแบ่งแยกด้วยว่าจะส่งหรือแจ้งผ่านช่องทางไหนที่เหมาะสม
  • Logging สำหรับ error เท่านั้น บ่อยครั้งเรามักจะเก็บ log เยอะมาก ๆ ทั้ง success และ failure มันทำให้หาปัญหาได้ยากมาก ๆ รวมทั้งเปลือง resource ของการเก็บมาก ๆ รวมทั้งระบบ logging ควรทำงานแบบ Asyncchronous ด้วย เพื่อลดปัญหาที่จะเกิดขึ้นกับ service
  • Distributed tracing สำหรับระบบงานที่มีการเรียกใช้หลาย ๆ service แล้ว จะขาดการ tracing ไม่ได้เลย จะช่วยให้เราเห็นภาพได้ชัดเจนว่า แต่ละ service ทำการติดต่อสื่อสารกันอย่างไร และตรงไหนที่เกิดปัญหากันแน่

ถ้าในแต่ละ service ของเรามีข้อมูลต่าง ๆ เหล่านี้ น่าจะช่วยให้เราสามารถแก้ไขปัญหาได้อย่างรวดเร็ว และช่วยลดผลกระทบต่อผู้ใช้งานและ business ได้อย่างมาก

0
178