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

โดยระบบงานที่จะใช้นั้นพัฒนาด้วย Spring Boot 2.0 นั่นเอง
มาเริ่มกันดีกว่า

TICK stack คืออะไร

เป็น platform สำหรับจัดการข้อมูลแบบ Time Serie จาก InfluxData
แน่นอนว่า ประกอบไปด้วย product ที่เป็น open source ทั้งนั้นดังนี้

Telegraf
สำหรับรวบรวมข้อมูลในรูปแบบ Time Serie จากแหล่งข้อมูลต่าง ๆ

InfluxDB
สำหรับจัดเก็บข้อมูล Time Serie

Chronograf
สำหรับแสดงผลข้อมูลในรูปแบบ visualization และ graph

Kapacitor
สำหรับจัดการเรื่อง alert และการ detect ข้อมูลในรูปแบบต่าง ๆ ที่กำหนด

แสดงการทำงานร่วมกันของ TICK ดังรูป

ปล. เราสามารถใช้แต่ละตัวแยกกันได้
ไม่จำเป็นต้องใช้ทั้งหมด ขึ้นอยู่กับความต้องการของระบบนะ

อธิบายไปก็งง ใช้งานกับระบบที่พัฒนาด้วย Spring Boot 2.0 กันดีกว่า

เนื่องจากใน Spring Boot 2.0 นั้นมีการเปลี่ยนแปลง Actuator มาพร้อมกับ Micrometer
ซึ่งช่วยให้จัดเก็บข้อมูลพวก metric ต่าง ๆ ได้ง่ายขึ้น
รวมทั้งสนับสนุน monitoring tool หลาย ๆ ตัว ทั้ง StatD, Datadog และ Telegraf
ดังนั้นการใช้งานกับ TICK stack จึงง่ายมากขึ้น
อ่านการใช้งาน Actuator ใน Spring Boot 2.0 ได้

โดยที่ต้องเพิ่มค่าในไฟล์ application.properties
สำหรับกำหนดรูปแบบข้อมูลในรูปแบบของ Telegraf
และกำหนด port ของ Telegraf คือ 8125

ส่วนการติดตั้ง TICK stack นั้นก็ไม่ง่ายเลย
แต่ก็ไม่ยากถ้าเราใช้งานผ่าน Docker compose
ซึ่ง Docker Image ก็ใหญ่อยู่นะ
แต่ก็ทำให้สะดวกขึ้นมากมาย

จากนั้นก็ docker-compose up ก็ได้ระบบ monitoring ของระบบงานเราแล้ว

ปล. ส่วนบน production ก็อีกเรื่องนะครับ
เพียงเท่านี้ก็ได้ Chronograf มาให้ใช้แบบสวย ๆ แล้ว

จากนั้นก็เริ่มใช้งานสิ รออะไร

Reference Websites
https://aboullaite.me/spring-boot-metrics-monitoring-using-tick-stack/
https://www.influxdata.com/time-series-platform/