ใน Spring Boot 2.0.0.RELEASE นั้น
ได้เปลี่ยนรูปแบบของ Metric ของ service จาก Actuator ไปยัง Micrometer
ซึ่งแน่นอนว่า การใช้งานก็เปลี่ยนไปพอควร
ดังนั้นมาลองใช้งาน Micrometer แบบง่ายกัน
รวมไปถึงการใช้งานร่วมกับ Prometheus ซึ่งง่ายกว่าเดิมเยอะ
ปล. ผมเคยเขียนอธิบายการ monitoring service ที่พัฒนาด้วย Spring Boot 1.x ไว้ ซึ่งยังใช้งาน Actuator โดยในตอนนี้เรียกว่า Legacy ไปแล้วนะ
เหตุผลที่เปลี่ยนมาใช้ Micrometer ?
เป็นตัวหลางหรือ interface มาตรฐานที่ระบบ monitoring ต่าง ๆ สนับสนุน ดังนั้นถ้าเราใช้งานตามที่ Micrometer กำหนดแล้ว จะง่ายต่อการนำข้อมูลไปยังระบบ monitoring ทำให้ไม่ต้องไปยึดติดกับเครื่องมือมากนัก โดยที่ Micrometer นั้นจะสนับสนุน- Prometheus
- Netflix Atlas
- CloudWatch
- Datadog
- Graphite
- Ganglia
- JMX
- Influx/Telegraf
- New Relic
- StatsD
- SignalFx
- Wavefront
ก่อนใช้งานต้องเพิ่ม dependency หรือ library เข้ามาใน project
ซึ่งยังคงใช้ actuator แต่ว่าความสามารถเดิม ๆ หายไปเยอะมาก ๆ รวมทั้งเพิ่มการทำงานร่วมกับ prometheus เพื่อทำการสร้าง metric ต่าง ๆ ในรูปแบบของ prometheus [gist id="d6adae2bdb8111932a4fe19499d1aee7" file="pom.xml"] ใน Micrometer นั้นก็มี metric ให้สร้างหลายชนิด ซึ่งปกติที่ใช้ก็ประกอบไปด้วย- Dimension/Tag
- Counter
- Gauge
- Timer
- Long task timer
- Distribution summary
- Summary statistic
- Quantile
- Histogram
- Binder