APM市場非常擁擠。市場上還有另一種選擇:開源工具。如果你對在生產(chǎn)中獲得應用程序可見性的簡單方法感興趣,并且想知道代碼實際上是如何被監(jiān)控的,那么這些工具是一個很好的選擇。想學習java技術的同學,不妨報個Java培訓班,有明確清晰的學習路線,理論知識+實戰(zhàn)操作,可以獲得快速提升。
開源社區(qū)中也有一些關鍵的APM工具,每種工具都有自己的產(chǎn)品和可能性。這里為你介紹五大可用工具。
1.Stagemonitor
Stagemonitor提供了一個Java監(jiān)控代理,它是在考慮集群應用程序堆棧的情況下構建的。這意味著它旨在監(jiān)視在多個服務器上運行的應用程序。該工具與時間序列數(shù)據(jù)庫(TSDB)集成。此工具針對處理時間序列數(shù)據(jù)以及按時間索引的數(shù)字數(shù)組進行了優(yōu)化。這些數(shù)據(jù)庫包括Elasticsearch、Graphite和InfluxDB。
它是如何工作的?
Stagemonitor包括一個位于Java應用程序中的代理,它向中央數(shù)據(jù)庫發(fā)送指標和請求跟蹤。該工具只需要一個實例來監(jiān)控所有應用程序、實例和主機,并且可以部署在你自己的數(shù)據(jù)中心內(nèi)。
在監(jiān)控方面,你可以從集群或直接從developerserver查看歷史或?qū)崟r數(shù)據(jù),創(chuàng)建自定義警報并為每個指標定義閾值。
Stagemonitor包括一個儀表板,因此你可以可視化和分析你感興趣的不同指標和請求。你可以創(chuàng)建自定義儀表板,編寫自定義插件,甚至使用第三方插件。它提供了一個無需后端的瀏覽器內(nèi)小部件,可以自動注入到被監(jiān)控的網(wǎng)頁中。你可以通過以下鏈接觀看現(xiàn)場演示。對java感興趣的同學可以參加java培訓,你可以學會更多的java新技術。
在官方文檔中,Stagemonitor聲明它也支持非基于servlet的應用程序,你可以在這里查看完整的需求。
一句話:如果你已經(jīng)熟悉ELKstack,它絕對值得一試。
2.Pinpoint
Pinpoint是為大規(guī)模分布式系統(tǒng)設計的APM工具。它模仿Dapper,一個由Google構建的分布式系統(tǒng)跟蹤基礎設施,為其開發(fā)人員提供更多關于復雜分布式系統(tǒng)行為的信息。
它是如何工作的?
該工具通過跟蹤跨分布式應用程序的事務,幫助分析系統(tǒng)的整體結(jié)構以及其中的組件是如何相互連接的。這意味著它旨在解釋每個事務是如何執(zhí)行的,跟蹤組件之間的流程,以及(前面的壞笑話)指出有問題的領域和潛在的瓶頸。
儀表板有助于可視化組件的連接方式,并允許你實時監(jiān)控應用程序內(nèi)部的活動線程。Pinpoint還允許你查看請求計數(shù)和響應模式,以便你能夠識別潛在的問題。你可以查看關鍵的詳細信息,包括CPU使用率、內(nèi)存/垃圾收集和JVM參數(shù)。
Pinpoint與無需任何代碼更改就可以安裝的代理一起工作,你可以在自己的機器上運行一個示例實例,方法是為每個組件運行四個簡單的腳本:Collector、Web、SampleTestApp和HBase。
一句話:如果你聽說過Dapper,或者想要監(jiān)視和分析你復雜的分布式系統(tǒng),你絕對應該看看這個工具。想對java有更深入的了解,可以參加java培訓,在專業(yè)老師的指導下,可以很全面地掌握java最新的相關知識和技能。
3.MoSKito
MoSKito提供三合一工具:
moskito-Essential–基本的獨立項目。它是MoSKito功能的核心,讓你可以監(jiān)控你的應用程序
moskito-Central–用于保存性能數(shù)據(jù)的中央存儲服務器
moskito-Control——一個監(jiān)控多節(jié)點web應用程序性能的工具
它是如何工作的?
要開始,你所需要做的就是將.jar文件放入WEB-INF/lib文件夾,或者在WEB.xml文件中包含一個新的小節(jié)。一旦該工具啟動并運行,它就會收集性能數(shù)據(jù),實時分析,并將其存儲以進行歷史分析。
該工具收集你的所有性能指標,如線程、內(nèi)存、緩存、存儲、服務、注冊、支付、轉(zhuǎn)換、SQL、負載分布等。它不需要修改代碼,支持所有主要的應用服務器(Tomcat、Jetty、JBoss、WebLogic),并將數(shù)據(jù)保存在本地。
你還可以獲得一個通知系統(tǒng)來了解何時達到閾值,以及你想要監(jiān)控的用戶操作的記錄。除了基于web的儀表盤,該工具還提供了一個移動應用程序,可隨時監(jiān)控你的應用。
一句話:MoSKito于2007年首次推出,現(xiàn)在它是一個眾所周知的穩(wěn)定工具,受到團隊和社區(qū)的支持,包括付費支持選項。這對任何開源工具來說都是一個巨大的優(yōu)勢。java培訓課程結(jié)構良好,以正確的順序涵蓋了所有這些基本主題,使你的學習更加輕松。
4.Glowroot
Glowroot以其快速、干凈和簡單的APM工具而自豪。它將允許對緩慢的請求和錯誤進行跟蹤捕獲,并且你將能夠記錄每個用戶操作的時間跟蹤,以及SQL捕獲和聚合。該工具還提供了所有數(shù)據(jù)的歷史匯總,并具有可配置的保留期。
它提供了可視化響應時間分解和響應時間百分比的圖表,它的響應UI將允許你從移動設備和桌面監(jiān)控你的應用程序。
它是如何工作的?
要開始使用Glowroot,需要下載并解壓縮主安裝文件,并將-Javaagent:path/to/glowroot.jar添加到應用程序的JVM參數(shù)中。啟動應用程序后,剩下的就是將瀏覽器指向http://localhost:4000。
一旦該工具啟動并運行,你將獲得連續(xù)的概要分析(帶有過濾選項),并能夠設置響應時間百分比和MBean屬性的警報。Glowroot完全支持跨多線程的異步請求,它支持Tomcat、TomEE、JBossEAP、Wildfly、Jetty和Glassfish。
如果干凈和簡單是你正在尋找的,毫無疑問你會想看看Glowroot而不是這里的其他工具。越來越多的人選擇參加java培訓來開啟自己Java開發(fā)人員的職業(yè)人生,這是一個快速有效的學習方式,可以在短時間內(nèi)掌握java所需的技能,更好地找到工作。
5.Kamon
Kamon是一個反應友好的工具包,為運行在JVM之上的應用程序而構建。更具體地說,它是為使用類型安全反應平臺(使用Scala、Akka、Spray和/或Play!),但仍然支持任何其他JVM平臺和語言。
它是如何工作的?
Kamon作為一個核心模塊發(fā)布,包含所有的度量記錄和跟蹤操作API以及可選模塊,為你的應用程序提供字節(jié)碼工具和/或報告功能?;蛘邠Q句話說,它提供了一個簡單的API來記錄度量和跟蹤JVM應用程序的信息。
Kamon的所有模塊都可以通過MavenCentral獲得,你需要將它們作為編譯依賴項添加到你的項目中。一旦你包含了你感興趣的模塊,只需啟動Kamon,所有可用的模塊將自動啟動,你不需要顯式激活/啟動它們。
跟蹤模塊將允許記錄關于在你的應用程序中執(zhí)行的功能的數(shù)據(jù),度量模塊將允許你控制由用戶代碼或由其他Kamon模塊提供的工具跟蹤的實體的注冊。它還具有其他功能,如過濾、配置儀器工廠和調(diào)度指標訂閱。
一句話:如果你正在使用多種JVM語言,或者主要是Scala/Akka,并且想要“一個工具來監(jiān)控它們”,Kamon可能是最友好的選擇。
總結(jié)
在APM領域,這些是付費工具的很好的替代品。但是……有些人可能認為選擇開源軟件是省錢的好方法。同樣重要的是要記住,雖然你不需要為使用該工具開具發(fā)票,但這并不一定意味著它更便宜。在java培訓中,有更加系統(tǒng)全面的課程,明確清晰的學習路線,學習起來既輕松,又高效。