如何使用阿里云ARMS诊断Java服务端报错问题
生活随笔
收集整理的這篇文章主要介紹了
如何使用阿里云ARMS诊断Java服务端报错问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要:?這是ARMS團隊推出的“網站常見問題1分鐘定位系列篇”第二文。
?
我的網站為什么一錯再錯
網頁報錯,尤其是5XX錯誤是互聯網應用最常見的問題之一。5XX錯誤通常發生于服務端。服務端是業務邏輯最復雜,也是整條網絡請求鏈路中最容易出錯、出了錯最難排查的地方。
運維工程師與研發工程師排查此類問題,通常要通過登錄機器查看日志來定位問題。對于一般的Java應用錯誤日志,通常是這幅模樣:
一般來說,對于邏輯不算太復雜、歷史不算“太悠久”的應用來說,登錄機器看日志的方式能夠很大程度上地解決網站報錯的問題。但遇到下列情況時,使用傳統的方式可能就有些困難:
- 在一個分布式Java應用集群中,我想知道這類錯誤每分鐘發生了多少次,什么時候開始發生的;
- 系統太老,遺留異常我不想管了,我只想知道,今天和昨天相比,發布前和發布后相比,多了哪些異常;
- 我想知道這個錯誤對應的是哪個Web請求,Web請求的參數是什么;
- 客服給了我一個用戶下單失敗的訂單號,我想知道這個用戶下單為啥失敗,到底哪里錯了;
使用阿里云ARMS的0埋點技術,1分鐘定位“錯”問題
利用阿里云ARMS(應用實時監控 -?鏈接)的異常自動捕捉、收集、統計、溯源能力,您只需要在您的應用啟動腳本中增加幾行探針加載邏輯 -?鏈接,不需要對您的應用代碼做任何改動,即可以讓應用中所有“錯”調用無處可逃。
1、對應用中的所有錯誤進行全方位監控,只需要安裝ARMS Java探針(如果您的應用托管于EDAS,您甚至可以跳過這一步?-?鏈接)
- 開通ARMS,并創建應用;
- 下載Java探針包并解壓;
- 在Java應用啟動腳本中增加 -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=xxx -Darms.appId=xxx (appId和licenseKey根據頁面分配的信息填寫,詳情可看 -?鏈接)
打開ARMS頁面,數據開始上報,驗證Java探針安裝成功。
2、所有“錯”一覽無余
- 成功安裝探針后,在應用概覽中我們立即就能看到系統中發生的所有“異?!?#xff0c;異常類型的分布以及發生次數。
- 點擊“應用詳情”,可以看到更詳細的異常分布圖,您可以看到集群或者單臺機器的錯誤詳情,從下圖中,我們可以看到從11點開始系統的錯誤發生了激增的現象!
3、錯誤溯源:找到導致錯誤的原因
- 光看到錯誤的分布還遠遠不夠,我們需要知道這個錯誤發生的原因。雖然日志中Java的異常堆棧中包含了調用的代碼片段,但并不包含這次調用的完整上下游和請求參數。
- ARMS的探針技術,通過字節碼增強技術,可以以很小的性能開銷完整捕獲異常上下游的完整調用快照,讓異常的原因更加清晰。
- 我們可以從調用鏈快照中清晰地看到一次異常中的完整鏈路,我們甚至可以看到這次調用的詳細的請求參數和異常日志,以獲得更加詳細的問題上下文信息。
- 至此,我們完成了一次全白屏化的線上錯誤診斷過程,通過ARMS探針診斷工具,再也不需要登錄機器診斷線上錯誤問題了。
4、防患于未然 -- 設置告警
當然,您可以在ARMS的告警設置中對某一個接口或全部接口設置告警,讓頁面接口出現錯誤時第一時刻通知到您的運維團隊。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
?
總結
以上是生活随笔為你收集整理的如何使用阿里云ARMS诊断Java服务端报错问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这是一段关乎你的代码:你的未来 我们正在
- 下一篇: 高手如何实践HBase?不容错过的滴滴内