Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 構建監控平台之應用數據分析


本節將引入完美的granafa儀表板,在上節的基礎上,並提出自己的一些監控數據的總結和看法

你可以有一個類似於這個的Dashboard,會引入監控Zimbra協作

  本節環境采用的是centos7系統,配置跟上節介紹的一樣,但是Telegraf是企業級監控加入很多可靠的監控插件,非常有用的一些參數,隨之也給自

的監控數據分析帶來了復雜度。

  • Telegraf:它負責收集我們通過配置文件傳遞的所有數據,Telegraf收集我們配置的輸出結果,例如CPU / RAM / LOAD或Nginx,MariaDB等服務。
  • InfluxDB:這是Telegraf發送所有這些信息的地方,InfluxDB專門設計用於高效存儲大量信息,此外,可以定義信息保留期以防萬一出現性能問題
  • Grafana:它是儀表板,負責顯示InfluxDB存儲在數據庫中的所有信息

在Grafana中導入儀表板  

  你可以從這里下載:https://grafana.com/dashboards/2846/        導入它們的步驟如下,轉到我們的儀表板,然后按導入

  輸入Zimbra儀表板的ID:2846,我們將自動顯示以下內容,選擇我們的數據源並將其提供給導入

 

  幾分鍾后,我們可以開始看到一個生動的儀表板,如下所示

數據分析

  Grafana將系統和應用程序的的數據展示出來,就要開始分析數據的意圖。

  1.  應用程序數據:SpringBoot Actutaur中的metrics收集到的數據指標,通過jolokia拉取數據到telegrafa上代理轉給輸入到時間序列數據庫中(我嘗試過直接將指標存入influxdb中,但未找到解決方案,有知道的伙伴可以給我留言)    

    

  補充:jolokia是一個JMX-HTTP橋梁,可替代JSR-160連接器。它是一種基於代理的方法,支持許多平台。

   除了基本的JMX操作外,它還通過獨特的功能(如批量請求和細粒度的安全策略)增強了JMX遠程處理能力,應用程序的監控直接擴展到jvm。

   

 

  特別注意:代理模式只能在需要時使用。代理servlet自身比代理模式更強大,因為它消除了增加整體復雜性和性能的附加層。此外,在代理模式下,某些功能(如合並MBeanServers)也不可用。

在telegrafa中,開啟對應的數據,jolokia采用拉取數據,所以都會在[inputs.jolokia]更改

   [[inputs.jolokia.metrics]]
     name = "類加載次數" mbean = "java.lang:type=ClassLoading" attribute = "LoadedClassCount,UnloadedClassCount,TotalLoadedClassCount" [[inputs.jolokia.metrics]] name = "metrics數據" mbean="org.springframework.boot:type=Endpoint,name=metricsEndpoint" attribute = "Data"

  grafana中在數據庫中查到的就會有對應由jolokia拉去的數據做下拉列表

  • 系統信息:包括處理器數量processors、運行時間uptime和instance.uptime、系統平均負載systemload.average。
  • mem.*:內存概要信息,包括分配給應用的總內存數量以及當前空閑的內存數量。這些信息來自java.lang.Runtime。
  • heap.*:堆內存使用情況。這些信息來自java.lang.management.MemoryMXBean接口中getHeapMemoryUsage方法獲取的java.lang.management.MemoryUsage。
  • nonheap.*:非堆內存使用情況。這些信息來自java.lang.management.MemoryMXBean接口中getNonHeapMemoryUsage方法獲取的java.lang.management.MemoryUsage。
  • threads.*:線程使用情況,包括線程數、守護線程數(daemon)、線程峰值(peak)等,這些數據均來自java.lang.management.ThreadMXBean。
  • classes.*:應用加載和卸載的類統計。這些數據均來自java.lang.management.ClassLoadingMXBean。
  • gc.*:垃圾收集器的詳細信息,包括垃圾回收次數gc.ps_scavenge.count、垃圾回收消耗時間gc.ps_scavenge.time、標記-清除算法的次數gc.ps_marksweep.count、標記-清除算法的消耗時間gc.ps_marksweep.time。這些數據均來自java.lang.management.GarbageCollectorMXBean。
  • httpsessions.*:Tomcat容器的會話使用情況。包括最大會話數httpsessions.max和活躍會話數httpsessions.active。該度量指標信息僅在引入了嵌入式Tomcat作為應用容器的時候才會提供。
  • gauge.*:HTTP請求的性能指標之一,它主要用來反映一個絕對數值。比如上面示例中的gauge.response.hello: 5,它表示上一次hello請求的延遲時間為5毫秒。
  • counter.*:HTTP請求的性能指標之一,它主要作為計數器來使用,記錄了增加量和減少量。如上示例中counter.status.200.hello: 11,它代表了hello請求返回200狀態的次數為11。
  • double asterisks(star-star)來自與Spring MVC匹配的請求/**(通常是靜態資源)
  • /trace:該端點用來返回基本的HTTP跟蹤信息
  • /dump:該端點用來暴露程序運行中的線程信息。

 

  在應用層面只能監控到接口的200,response,400的狀態,時間響應上,需要的信息量還不足。可以在telegraf.conf中開啟net監控網絡等,使用正確的插件幫助我們實現監控需求。

  以上都是我個人在實踐中的總結和資料整理,如有疑問可以給我留言,我會及時回復您的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM