隨著Java生態系統的發展,使用者效能需求的提高,一類新的開發工具應運而生。與傳統方法相比,它們既可以滿足在快節奏的環境中快速部署所需的錯誤追蹤需求,又能在一個更深的層面上觀察應用程式的行為。近日,軟體分析公司Takipi彙整介紹了五款這樣的工具。
Raygun是一款基於Web的錯誤管理系統,用於追蹤應用程式異常。它支援多種桌面、行動和Web程式語言,包括Java、Scala、.NET、Python、PHP和JavaScript,其主要特點如下:
錯誤分組-同一Bug多次出現會顯示在同一個群組中;
全文搜尋-錯誤群組及所有收集到的資料都是可搜尋的;
查看應用程式活動-錯誤群組上的每個動作都會展示給所有的團隊成員,如狀態更新、評論等;
受影響的使用者-每個錯誤影響的使用者數量;
外部整合-Github、Bitbucket、Asana、JIRA、HipChat等。
Sentry是一個基於Web的開源解決方案,用於即時地事件日誌記錄和聚合,支援的語言包括Ruby、Python、JS、Java、Django、.NET等,其主要特點如下:
可以即時查看新部署的影響;
在用戶訪問因錯誤而中斷時,可以利用Sentry日誌向他提供支持,幫助他恢復訪問;
檢測並防止欺騙——比如,如果購買、身份驗證次數超出正常範圍, Sentry就會發出通知;
可以整合GitHub、HipChat、Heroku等。
Takipi是一個軟體即服務(SaaS)模型,使用Java代理即時地進行程式碼分析與追蹤程式碼變化。它的大部分分析工作都是在雲端上完成的,支援JVM語言,包括Java、Scala、Clojure、Groovy、JRuby、Jython等,其主要特點如下:
檢測——所有捕獲和未捕獲的異常、 HTTP和日誌錯誤;
按優先排序——錯誤在整個集群中的發生頻率、是否包含新的或修改過的程式碼、頻率是否在增加;
分析——查看具體程式碼和變數狀態;
易於安裝;
系統資源開銷少於2%。
Airbrake為使用者提供了一個基於Web的介面,上面有一個儀表板,記錄了錯誤的詳細資訊以及特定應用程式的視圖,支援的語言包括Ruby、PHP、Java、.NET、Python、Swift等,其主要特點如下:
詳細的堆疊追蹤訊息,根據錯誤類型、使用者和環境變數分組;
提高團隊生產力——從繁雜的訊息中過濾出重要的錯誤;
團隊協作——查看哪位成員導致了Bug以及哪位成員正在進行修復;
外部整合——包括HipChat、 GitHub、JIRA、Pivotal等共30多種。
StackHunter是一款自架的Java異常追蹤工具,目前還是測試版。它可以將異常通知給開發者,並幫助他們更快地解決問題,其主要特點如下:
可以在單一自託管的Web介面上查看所有異常;
收集堆疊追蹤資料和上下文信息,例如,異常、受影響的使用者、受影響的會話等;
在異常發生時立即發送警告郵件;
根據異常產生的根本原因將其分組。
此外,還有一款值得一提的工具是來自Fedora 生態系統的ABRT。這是一款自動Bug檢測和報表工具。與上述五款工具的不同之處在於,其使用者既可以是應用程式開發者,也可以是應用程式的使用者。不過,它對Java異常的支援尚處於概念驗證階段。