https://mp.weixin.qq.com/s/qgcCuYYkP6NwyvPh0wr28gios
因爲最近在作監控方面的工做,所以也讀了很多相關的經驗分享。其中有這樣一篇文章總結了一些基於Spring Boot的監控方案,所以翻譯了一下,但願能夠對你們有所幫助。 原文:Near real-time monitoring charts with Spring Boot Actuator, Jolokia and Grafana
Spring Boot Actuator經過/metrics端點,以開箱即用的方式爲應用程序的性能指標與響應統計提供了一個很是友好的監控方式。spring
因爲在集羣化的彈性環境中,應用程序的節點能夠增加、擴展,並由很是大量的應用實例所組成。對於孤立節點的監控可能即費力又沒有什麼實際效果。因此,使用基於時間序列的數據聚合工具將得到更好的效果。微信
本文的目標在於找出一種僅須要經過工具和配置的方式就能實現的解決方案,來對Spring Boot Metrics實現基於時間序列的監控。併發
像NewRelic, AppDynamics或DataDog這些APM系統都能很好地完成這樣的任務,它們經過使用JVM和字節碼工具來生成本身的指標、分析工具和相關事務。也能夠經過使用@Timed註釋方法來實現。可是,這些方法將忽略全部Spring Boot Actuator庫所提供的可用資源。另外,使用這些方法還有一個與保留數據相關的問題,它們對於短期窗口內的監控是相對模糊的。
spring-boot-admin 能夠做爲另一個備選方案,由於它能夠鏈接到Spring Boot的實例、而且能夠聚合節點等。可是, /metrics 端點並非根據時間軸來進行監控的,同時在不一樣節點上的相同應用模塊(水平擴展)也沒有獲得聚合。這意味着您將面對這兩種狀況:沒有時間序列的監控數據、只有對孤立節點的監控數據快照。
jconsole和visualvm多是另一種選擇,它們經過RMI直接鏈接到JMX節點。Actuator存儲來自JMX的MBean內的Metrics數據。另外,經過使用 Jolokia,MBeans以RESTful HTTP端點的方式暴露,/jolokia。因此,相同的信息能夠經過兩個端點來獲取:JMX MBean Metrics和Rest HTTP Jolokia端點。然而,這種方式存在一樣的問題,它們直接鏈接到集羣環境中的單個節點,另外還伴隨着痛苦的老式RMI協議。
繼續前進,我嘗試了一些可能能夠解決這些問題的現代化運維工具:運維
通過一番研究,我發現了一個更好的解決方案:經過InfluxDB 和Telegraf實現,零編碼,只須要經過一些正確的配置。ide
簡而言之,配置全部這些東西都很是的簡單。spring-boot
版權聲明工具
本文采用 CC BY 3.0 CN協議 進行許可。 可自由轉載、引用,但需署名做者且註明文章出處。如轉載至微信公衆號,請在文末添加做者公衆號二維碼。
長按指紋
一鍵關注
活動推薦性能