What is dynatrace?

Tossapol Susaereedumrong
Sirisoft
Published in
3 min readAug 22, 2018

--

ในทุกวันนี้ Application ล้วนมีความสำคัญกับองค์กรต่างๆมากมายไม่ว่าจะเป็นตัวช่วยให้ผู้คนเข้าถึงสินค้าและบริการได้ง่ายขึ้นหรือเป็นช่องทางให้กับธุรกิจขยายเติบโต อีกทั้งยังสามารถใช้งานภายในองค์กรมีประสิทธิภาพมากยิ่งขึ้น เช่น เป็นช่องทางให้ลูกค้าสามารถเข้าถึงข้อมูลสินค้าและบริการได้ผ่านทาง Internet หรือเป็นตัวช่วยให้พนักงานทำงานได้สะดวกสบายและรวดเร็วได้มากยิ่งขึ้น เป็นต้น

การใช้งาน Application ส่วนใหญ่ในช่วงแรกๆ นั้นระบบจะปกติและทำงานได้ต่อเนื่องสม่ำเสมอ แต่พอใช้งานไปช่วงหนึ่งบางระบบอาจจะช้าลงได้เนื่องมาจากหลายสาเหตุ เช่น เกิดจากการใช้งานของผู้ใช้งานที่มากขึ้น จากการมีข้อมูลที่มากขึ้น หรือจนกระทั่งพัฒนา Application แล้วไปกระทบกับ Code ที่มีอยู่ทำให้ระบบช้าลง เป็นต้น ซึ่งปัญหาเหล่านี้อาจจะยังไม่เกิดมาตอนช่วงที่ทดสอบระบบก่อนขึ้นเป็น Production ทำให้ต้องใช้ระยะเวลามากในการตรวจสอบปัญหาว่ามาจากที่ไหน

วันนี้จะขอนำเสนอ Application ตัวหนึ่งที่มีชื่อว่า dynatrace มีหน้าที่คอย Monitor เครื่อง Server ของเราว่ามีการทำงานเป็นอย่างไรมีอะไรผิดปกติไปหรือไม่ สามารถตรวจสอบปัญหาของระบบว่าสาเหตุเกิดมาจากอะไร ซึ่งเป็นตัวช่วยให้เราแก้ปัญหาได้ตรงจุดมากยิ่งขึ้นและช่วยลดเวลาในการตรวจสอบของปัญหาว่าสาเหตุเกิดมาจากที่ไหน เรามาดูโครงสร้างแบบคร่าวๆ ของ dynatrace กันดีกว่ามีหน้าตาเป็นอย่างไรบ้าง

dynatrace Architecture

จากรูปเป็นการแสดงโครงสร้างระหว่าง dynatrace Server กับ ระบบ Application (ประกอบไปด้วย Web Server, Application Server และ Database Server) ซึ่งก่อนที่เราจะใช้งาน dynatrace จำเป็นจะต้องลง Agent ที่มีชื่อเรียกว่า One Agent บนเครื่อง Server ทั้งหมดที่เกี่ยวข้องกับ Application เพื่อให้ dynatrace Server สามารถเก็บข้อมูลจากเครื่อง Server มาตรวจสอบปัญหาได้ ส่วน dynatrace Server นั้นทำการลงได้ง่ายๆ โดยนำตัว package มาลงบน Operating System ที่เป็น Windows/Linux/AIX/Solaris platform ตัว dynatrace นั้นมี Function มากมายวันนี้จะขอนำเสนอบาง Function ที่สำคัญกันนะครับ

Proactive Problem Detection

Problem เป็น Function หนึ่งที่สามารถตรวจสอบปัญหาของ Application ว่ามี Root Cause เกิดจากอะไรเป็นตัวช่วยให้เราตรวจสอบปัญหาได้เร็วและแก้ปัญหาได้ตรงจุดมากยิ่งขึ้น

จากรูปเป็นการแสดงปัญหาที่มีผลกระทบกับ Service หลายตัว ในกรอบสีแดงที่ 1 จะเห็นได้ว่าจากปัญหาข้างต้นมีผลกระทบกับจำนวนผู้ใช้งานทั้งหมด 127 คน และมี Service ที่ได้รับผลกระทบจากการถูกเรียกเป็นจำนวน 13.9K ครั้ง ปัญหาเหล่านี้ (Root Cause) เกิดจาก Memory ไม่เพียงพอทำให้เกิด Page Faults 11K ต่อวินาทีและอีกปัญหาคือ Disk ‘C:/’ ใกล้จะเต็มสามารถดูได้จากกรอบสีแดงที่ 2

จากปัญหาดังกล่าวสามารถนำมาแสดงเป็นกราฟ Failure rate หรือการเรียกใช้งานที่ล้มเหลวออกมาเป็นกราฟจะเห็นได้ดังรูปว่าช่วงเวลา 13:00–14:00 มี Failure requests เพิ่มสูงขึ้นประมาณ 1.5K ครั้งต่อนาที สามารถดูได้จากจำนวน Requests (กราฟแท่งสีฟ้า) และสุดท้ายกราฟเส้นสีน้ำเงินเป็นการแสดง Failure rate ที่เพิ่มสูงขึ้นและลดลงตามช่วงเวลา รายละเอียดข้อมูลที่ทำให้เกิด Failure rate จะแสดงในอีกสองรูปต่อไปนะครับซึ่งเกิดจาก Memory กับ Disk Space ไม่เพียงพอต่อการใช้งานจากที่กล่าวมาข้างต้น

จากรูปเป็นการแสดงการใช้งาน Memory จะเห็นได้ว่าช่วงเวลาก่อน 14:00 น. Memory ทั้งหมดมี 8 GB (กราฟเส้นสีน้ำเงิน) และใช้งานไปอยู่ที่ส่วน Host ทั้งหมด 7.8 GB (กราฟเส้นประ) ทำให้เกิดเส้นสีแดงที่หมายถึง Memory ไม่เพียงพอต่อการใช้งาน และช่วงเวลาหลังจาก 14:00 น. ได้มีการเพิ่ม Memory เป็น 16 GB ทำให้ Memory เพียงพอต่อการใช้งาน

จากรูปเป็นการแสดงการใช้งานของ Disk ‘C:\’ จะเห็นได้ว่าช่วงเวลาก่อน 14:00 น. Disk ทั้งหมดมี 59.7 GB (กราฟเส้นสีน้ำเงิน) และใช้งานไปทั้งหมด 59.5 GB ทำให้เกิดเส้นสีแดงที่หมายถึง Disk space ไม่เพียงพอต่อการใช้งาน และช่วงเวลาหลังจาก 14:00 น. มีการใช้งานที่ลดลงทำให้เพียงพอต่อการใช้งาน

User Session Analysis

อีก Function หนึ่งที่จะมาแนะนำซึ่งเป็น Function ที่จะมาช่วยให้เราตรวจสอบปัญหาได้ไวมากยิ่งขึ้นในระดับการ Click ของ User กันเลยทีเดียว

จากรูปเป็นการแสดงข้อมูลของ User ที่มากจาก IP Address: 10.16.22.173 ด้วย Operating System ที่เป็น Windows 10 และใช้งานโดย IE7 รายละเอียดการใช้งานจะแสดงดังรูปต่อๆ ไป

จากรูปจะเห็นได้ว่า Order ที่ 1 กับ 2 เป็นการใช้งานของ Web หน้า Loading of page / ที่มี JavaScript errors อยู่ และ Order ต่อๆ มาเป็นการเรียงตามการใช้งานของ User ที่มาจาก IP Address: 10.16.22.173 ว่ามีการใช้งานอะไรบ้าง

จากรูปเป็นการแสดงรายละเอียดของ JavaScript error details ซึ่งจะเห็นได้ว่า JavaScript error นี้ทำให้เกิดการ Access denied

จากรูปเป็นการแสดงรายละเอียดของ JavaScript error ว่ามาจาก JavaScript ที่มีชื่อว่า js-a2630–91895.js โดยมี error ที่บรรทัด 145 ตัวอักษรที่ 74

Function สุดท้ายที่จะมานำเสนอในวันนี้เป็นตัวช่วยให้ Performance ของระบบเราจะดีขึ้นหลังจากมีการแก้ไข

จากรูปจะเห็นว่าตัว Function ของ Web Application ที่มีชื่อว่า GET_METER ในกรอบสีแดงมี Total time consumption ที่สูงถึง 97% และมีค่าเฉี่ยของ response time อยู่ที่ 54.3 s เรามาดูรายละเอียดในรูปต่อๆ ไปกันดีกว่าครับว่าเป็นอย่างไรกันบ้าง

จากรูปเป็นการแสดงรายละเอียดการทำงานของ Function GET_METER ว่ามีการใช้งานเป็นอย่างไรและเยอะตรงส่วนไหนเพื่อที่เราจะได้ Improve Performance ได้ตรงจุด ซึ่งการใช้งาน Service ในกรอบสีแดงนั้นมีมากถึง 98.6% รูปต่อไปจะเป็นการแสดงรายละเอียดของ 98.6% ว่ามีการใช้งานอย่างไรบ้าง

จากรูปเป็นการแสดงผลสรุปการใช้งานของ Function GET_METER ซึ่งในกรอบสีแดงนั้นเป็นตัวบอกว่า Function GET_METER มี Response time ทั้งหมด 54.3 s และการใช้งานทั้งหมด 53.6 s นั้นมาจากการ call ไปที่ http://10.211.70.35:18972/E-SERVICE/…QUERY โดย Response time ทั้งหมด 53.6 s ซึ่งเป็นผลมาจากการ call 1 ครั้งอยู่ที่ 4.87 s และมีการ call ทั้งหมด 11 ครั้งต่อการเรียกใช้งาน Function GET_METER 1 ครั้ง

เห็นมั้ยครับว่าเจ้าตัว dynatrace นั้นมีประโยชน์ช่วยให้เรานั้นลดเวลาในการตรวจสอบปัญหาอีกทั้งยังช่วย Improve Performance ได้อีกด้วย

คราวหน้าจะมีเทคโนโลยีใหม่ๆ มาอัพเดท ฝากติดตามกันด้วยนะครับ

--

--