5款Java程式設計師必須瞭解的錯誤跟蹤工具

InfoQ - 謝麗發表於2015-02-03

隨著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異常的支援尚處於概念驗證階段。

相關文章