Dynatrace กับการ monitor ASP.NET อย่างรอบด้าน (part three)
.
การ monitor เว็บแอปพลิเคชั่นที่ใช้ ASP.NET เป็นเรื่องจำเป็นสำหรับ developer และบทความนี้ก็จะมาพูดต่อจากคราวที่แล้วว่า Retrace ของ Dynatrace สามารถ monitor ส่วนใดบ้างได้ถึงระดับไหน
External Web Services
แอปพลิเคชั่นโดยส่วนใหญ่แล้ว จะมีการใช้ web service อื่นๆ ที่เป็น HTTP based อีกด้วย อย่างในระบบของ Dynatrace ก็ใช้ external web service อย่าง twiolio และ chargify อีกด้วย เช่นเดียวกับการ integration กับ web service อื่นๆ เช่น Atlassian, Axosoft, Visual Studio Team Services ฯลฯ
Web service ที่เป็น HTTP based เหล่านี้ ก็จำเป็นต้องติดตามผลด้วยเช่นกัน เพื่อดู dependencies ต่างๆ ซึ่งจำเป็นต้องมีการทำรีพอร์ตของแต่ละ web service อย่างละเอียด เพื่อที่จะระบุปัญหาต่างๆ ได้อย่างชัดเจน
- การ Monitor Application Metrics
หลักการง่ายๆ ในการ monitor ก็คือ “ถ้ามีอะไรเคลื่อนไหว ก็ต้องไปดู” ซึ่ง framework ของ .NET นั้นจะมี performance counter ที่ครอบคลุม ทำให้ผู้ monitor สามารถประเมินค่าได้ ผู้ดูแลระบบจะ monitor จาก key server metric, performance counter และ application metric ของทาง Dynatrace ทั้งหมดนี้ทำให้เราเห็นภาพรวมและรายละเอียดของ performance ของแอปพลิเคชั่นนั้นๆ ได้อย่างชัดเจน
เมื่อก่อนเวลา monitor แอปพลิเคชั่น มักจะหมายถึงการ minitor server เราจะให้ความสำคัญว่า มัน online อยู่ไหม มันใช้ CPU และ memory ไปมากน้อยเพียงใด และเหลือเนื้อที่ใน disk มากพอไหม ซึ่ง Retrace ตอบโจทย์การ monitor ในส่วนนี้ ผู้ใช้จะสามารถ monitor แอปพลิเคชั่น โดยที่ไม่ต้องไปกังวลเรื่อง server
เพราะตอนนี้ Retrace สามารถ deploy ให้ไปลงที่ Azure App Service ซึ่งจะช่วยในการทำ auto scale และ Azure จะช่วยให้ server ของ ASP.NET ออนไลน์ตลอดเวลา โดยที่เราไม่ต้องไปยุ่งกับมัน
นอกจากนี้ ในส่วนของ Performance Counter ทาง .NET มี Performance Counters ที่ติดตาม performance ของแอปพลิเคชั่นที่รันบน ASP.NET อย่างละเอียดอยู่แล้ว ซึ่งดูได้ตั้งแต่ IIS stats พื้นฐานเช่น HTTP requests, garbage collection statistics, error ฯลฯ
แต่ส่วนที่เป็นปัญหาของ Performance Counter คือการ monitor มัน เพราะ Performance Counter ใช้ Windows process id หรือการตั้งชื่อ counter instance name ชื่อดังกล่าว เปลี่ยนไปเปลี่ยนมาได้ ทำให้เรา monitor มันได้ยาก เช่นเดียวกับที่ Performance Counters บางอันก็บอกเวลาเป็นภาพรวมว่าเกิดอะไรขึ้นกี่ครั้ง แต่ผู้ดูแลระบบต้องมานั่งคำนวนค่าเฉลี่ยเองว่าแต่ละครั้งที่เกิดขึ้น มันเกิดทุกๆ กี่วินาทีหรือกี่นาที
Retrace แก้ปัญหานั้นได้อย่างตรงจุด มันสามารถคำนวณและเลือกสรรเองได้ว่าจะต้อง monitor Performance Counters อันไหน และจัดลำดับความสำคัญได้โดยอัตโนมัติ
Retrace สามารถ monitor Performance Counters ได้ทีละหลายอัน และยังแสดงผลออกมาเป็น interface แบบ web-based ที่ให้ผู้ดูแลระบบสามารถเลือกเพิ่มได้ว่าจะให้โปรแกรมไป monitor Performance Counters อันไหนเพิ่มเติมได้อีกด้วย
ยิ่งกว่านั้น Dynatrace ได้ใช้ custom metrics หลายๆ ตัว เพื่อทำความเข้าใจการใช้ซอฟท์แวร์ เช่นดูว่า ขนาดของ batch size โดยเฉลี่ยที่ส่งไปที่ API ของเราคือเท่าไหร่ ผู้ใช้งานสามารถใช้ฟีเจอร์ Dynatrace nuget package เพื่อสร้าง custom metric ของตัวเองได้
- การทำ log monitoring
การดู log ของแอปพลิเคชั่น จะช่วยในการ debug ได้อย่างมาก เป็นเหมือนหูและตาของ developer ในการสอดส่องจุดที่เป็นปัญหา เพราะ log เป็นข้อมูลที่สำคัญที่สุด
ทาง Dynatrace แนะนำให้ผู้ใช้ทุกคน ใช้ logging framework อาทิ NLog, Serilog หรือ log4net เพราะ logging framework เหล่านี้จะช่วยส่ง log ไปยัง Retrace ซึ่งเป็นเครื่องมือช่วยบริหารจัดการ log ที่สำคัญ Retrace ยังสามารถทำ advanced log monitoring ได้อีกด้วย
แน่นอนว่า การ monitor แอปพลิเคชั่นนั้นใช้เวลาอย่างมาก developer ควรใช้เวลาไปกับการสร้างสรรค์มากกว่า การมีเครื่องมือที่ช่วยทำ performance monitoring ให้กับแอปพลิเคชั่นที่ใช้ ASP.NET เป็นเรื่องที่แนะนำ และ Retrace ของ Dynatrace ก็เป็นอีกหนึ่งทางเลือกที่ไม่อาจมองข้าม
__________________________
ถ้าท่านใดสนใจทดสอบ ติดต่อสอบถามรายละเอียดได้ที่
💻 : www.monsterconnect.co.th
☎ : 02-392-3608
📱 : Sales@monsterconnect.co.th
Line: @monsterconnect