如果你正在尋找性能監(jiān)控工具,不妨看看以下推薦的這六款開源工具,這些工具目前已經(jīng)可以替代付費工具了,你可以看看是否是你的最佳選擇。本文推薦的六款開源工具目前是開源社區(qū)中最受歡迎的,在https://github.com上都能直接搜到。
原文來自:http://tech.it168.com/a2017/0120/3093/000003093435.shtml
1.?SkyWalking
? ? ? ?我首先推薦的是這個(國產(chǎn)的,得支持),SkyWalking 是一款開源的應(yīng)用性能監(jiān)控系統(tǒng),包括指標(biāo)監(jiān)控,分布式追蹤,分布式系統(tǒng)性能診斷。專為微服務(wù)、云本機架構(gòu)和基于容器(Docker、K8s、Mesos)架構(gòu)而設(shè)計。
其架構(gòu)如下:?
以下是監(jiān)控效果圖:




作為一款我一直想集成到我的性能監(jiān)控平臺里的一個開源項目,重點給大家推薦。官網(wǎng):https://skywalking.apache.org/zh/
2. Stagemonitor
Stagemonitor提供了一個Java監(jiān)控代理程序,它是使用集群應(yīng)用程序堆棧構(gòu)建的。意思是它旨在監(jiān)控在多個服務(wù)器上運行的應(yīng)用程序。該工具與時間序列數(shù)據(jù)庫(TSDB)集成。此工具已針對時間序列數(shù)據(jù)以及按時間索引的數(shù)字?jǐn)?shù)組進(jìn)行優(yōu)化。包括以下數(shù)據(jù)庫:Elasticsearch,Graphite和InfluxDB。
Architecture:

Stagemonitor包含一個位于Java應(yīng)用程序中的代理,可將度量標(biāo)準(zhǔn)和請求跟蹤發(fā)送到中央數(shù)據(jù)庫。該工具只需要一個實例就可以監(jiān)控所有應(yīng)用程序,實例和主機,并且可以部署在你自己的數(shù)據(jù)中心內(nèi)。
在監(jiān)控方面,你可以從集群或直接從開發(fā)人員服務(wù)器查看歷史或?qū)崟r數(shù)據(jù),創(chuàng)建自定義報警機制,并為每個指標(biāo)定義閾值。
Stagemonitor包括一個儀表板,可以可視化分析你感興趣的不同指標(biāo)和請求。你可以自定義儀表板,編寫自定義插件,甚至使用第三方插件。它提供了一個無需后端的瀏覽器窗口小部件,自動注入受監(jiān)控的網(wǎng)頁。在官方文檔中,Stagemonitor還支持不基于servlet的應(yīng)用程序。

如果你對ELK堆棧很熟悉,該工具絕對值得一試。官網(wǎng):http://www.stagemonitor.org/
3. Pinpoint
Pinpoint是用于大規(guī)模分布式系統(tǒng)的APM工具。它是在Dapper(一個由Google構(gòu)建的分布式系統(tǒng)跟蹤基礎(chǔ)架構(gòu))之后構(gòu)建的,為開發(fā)人員提供有關(guān)復(fù)雜分布式系統(tǒng)行為的更多信息。
Architecture:

該工具通過在分布式應(yīng)用程序中跟蹤事務(wù),幫助分析系統(tǒng)的整體結(jié)構(gòu)及其中的組件是如何互相影響的。它旨在解釋每個事務(wù)如何執(zhí)行,跟蹤組件之間的行為,指出發(fā)生問題的區(qū)域和潛在的瓶頸。
儀表板幫助可視化組件如何連接,并允許用戶實時監(jiān)控應(yīng)用程序內(nèi)的活動線程。Pinpoint還允許用戶查看請求計數(shù)和響應(yīng)模式,以便及時識別潛在問題。你可以查看包括CPU使用率,內(nèi)存/垃圾回收和JVM參數(shù)等詳細(xì)信息。

如果你聽說過Dapper,或者想要監(jiān)控和分析復(fù)雜的分布式系統(tǒng),你一定要試試這個工具。
官網(wǎng):https://naver.github.io/pinpoint/
4、MoSKito
MoSKito內(nèi)包含三種工具:MoSKito-Essential:最基本的獨立項目。它是MoSKito功能的核心,可以監(jiān)控應(yīng)用程序。MoSKito-Central:用于存儲性能數(shù)據(jù)的集中存儲服務(wù)器。MoSKito-Crotrol:用于監(jiān)視多節(jié)點Web應(yīng)用程序性能的工具。
使用該工具之前,你只需將.jar文件放到WEB-INF / lib文件夾中,或者在web.xml文件中新建一個節(jié)點。一旦工具啟動并運行,它就會開始收集性能數(shù)據(jù),進(jìn)行實時分析,同時將數(shù)據(jù)存儲在本地。
該工具會收集所有的性能指標(biāo),如線程,內(nèi)存,緩存,存儲,服務(wù),注冊,轉(zhuǎn)換,SQL,負(fù)載分布等。它不需要更改代碼,本身就支持所有主流的應(yīng)用程序服務(wù)器(Tomcat,Jetty,JBoss,WebLogic)。
你可以根據(jù)系統(tǒng)了解何時達(dá)到閾值,以及被監(jiān)控用戶的操作記錄。除了基于Web的儀表板,該工具還提供了一個移動應(yīng)用程序來監(jiān)控應(yīng)用程序性能。

▲MoSKito’s Essential
MoSKito于2007年首次推出,現(xiàn)在它是一個眾所周知的穩(wěn)定的工具,由團(tuán)隊和社區(qū)共同支持,包括付費支持選項,這也是該開源工具的巨大優(yōu)勢。官網(wǎng):https://www.moskito.org/
5. Glowroot
Glowroot是一個快速,干凈和簡單的APM工具。它可以跟蹤捕獲緩慢的請求和錯誤,能夠記錄每個用戶的操作時間,以及SQL捕獲和聚合。該工具還可保留匯總所有歷史數(shù)據(jù)。
它通過圖表的方式顯示響應(yīng)時間分布和響應(yīng)時間百分比,并允許用戶通過移動設(shè)備監(jiān)控應(yīng)用程序性能。
Architecture:

▲Glowroot architecture
使用Glowroot之前需要下載并解壓安裝文件,并將-javaagent:path/to/ glowroot.jar添加到應(yīng)用程序的JVM參數(shù)中。啟動應(yīng)用程序后,剩下的所有操作可以訪問http:// localhost:4000。
一旦工具啟動并運行,你將獲得能夠設(shè)置響應(yīng)時間百分比和MBean屬性的警報。Glowroot提供對跨多線程異步請求的全面支持,支持Tomcat,TomEE,JBoss EAP,Wildfly,Jetty和Glassfish等服務(wù)器。

▲Glowroot’s dashboard
如果方便簡單是你對監(jiān)控工具的要求,毫無疑問,該工具最合適。官網(wǎng):https://glowroot.org/
6. Kamon
Kamon是為在JVM上運行的應(yīng)用程序而構(gòu)建的工具包。更具體地說,它是為使用Typesafe平臺(使用Scala,Akka,Spray和/or Play!)構(gòu)建的應(yīng)用程序,但仍然對其他JVM平臺和語言提供支持。
Architecture:

Kamon作為核心模塊,包含所有記錄和跟蹤操作的API以及為應(yīng)用程序提供字節(jié)碼檢測和報告功能的可選模塊。換句話說,它提供了一個簡單的API來記錄JVM應(yīng)用程序的指標(biāo)和性能信息。
所有Kamon模塊都可以通過Maven Central獲得,你只需要將它們添加為項目的編譯依賴項即可。之后只需啟動Kamon,所有可用模塊將自動啟動,不需要顯式激活/啟動這些模塊。
如果你使用的是JVM語言,或是Scala和Akka,并且需要一款性能監(jiān)控工具,Kamon可能是最友好的選擇。
官網(wǎng):http://kamon.io
結(jié)語
這些可能是APM領(lǐng)域付費產(chǎn)品最好的替代品,但并不意味著這是一種省錢的方式。開源工具其實同樣是有成本的,安裝、維護(hù)、故障排除等都需要專門的人員解決,更不用說,當(dāng)你遇到一個社區(qū)中從未出現(xiàn)過的問題時,需要浪費多少時間尋求答案了。
? ? ? ?如果你正在尋找性能監(jiān)控工具,不妨看看以下推薦的這五款開源工具,這些工具目前已經(jīng)可以替代付費工具了,你可以看看是否是你的最佳選擇。本文推薦的五款開源工具目前是開源社區(qū)中最受歡迎的。