對應用啓動時間的關注和獲取

此文已由做者翟曜受權網易雲社區發佈。
java

歡迎訪問網易雲社區,瞭解更多網易技術產品運營經驗。web


最近在跟進考拉中間件產品:分佈式調用鏈路跟蹤系統trace的測試。spring

昨天,trace收到一個業務方反饋:接入trace後,工程啓動變慢。tomcat

針對這個問題,一方面,當前中間件團隊內部的測試流程是基於demo工程進行測試,測試完畢後再推廣業務接入,進行業務測試的驗證。demo工程的複雜度跟實際業務工程相比,差異較大,demo應用的啓動速度自己較快,因此測試過程當中未能關注到明顯差異。另外一方面,也提醒了本身,要作一名嚴謹的qa,這類問題不該放過,發現了就要引發關注,而且需歸入後續的常規測試範圍中,每一個版本升級都應輸出該項測試的比對結果。安全

那麼,如何獲取應用啓動時間呢?服務器

咱們如今的應用都是經過ndp部署,應用類型主要有兩類:java web和java app。app

第1類:Java web應用類型的啓動時間分佈式

這個比較容易獲取,直接查看tomcat日誌,會比較醒目的打印出:測試

即該應用的啓動耗費時間。.net

第2類:java app應用類型的啓動時間

測試demo中,該類型工程基於spring boot啓動,日誌中貌似沒有明確的時間能夠獲取。

要獲取啓動耗費時間,有啓動開始時間和啓動結束時間便可。

啓動開始時間,比較容易獲取,能夠約等於restart腳本開始執行start的時間or應用日誌的第一條記錄產生的時間。

啓動結束時間,如何獲取?能夠約等於Spring容器加載完成的時間,那麼能夠利用監聽ContextRefreshedEvent事件來獲取這個結束時間。以下:

在監聽器的onApplicationEvent中打印出「結束時間」,即可以根據「spring start success「關鍵字搜索到啓動結束時間。

有了啓動開始和啓動結束時間,啓動耗費時間能夠獲得了。

每次去服務器上人肉操做人肉查看,也比較費時。

那麼能夠將獲取啓動耗費時間自動腳本化,而後經過jenkins來觸發執行。

最終獲取並輸出的測試結果以下:


免費體驗雲安全(易盾)內容安全、驗證碼等服務

更多網易技術、產品、運營經驗分享請點擊




相關文章:
【推薦】 appium封裝顯示等待Wait類和ExpectedCondition接口
【推薦】 Puppeteer入門初探

相關文章
相關標籤/搜索