如何從服務器端獲取CQ5中每個頁面組件的加載時間。如何從服務器端從服務器端獲取頁面中每個組件的加載時間
在這裏根據我的實現,我們得到的最長時間是從request.log文件加載頁面。但我需要從服務器端獲取頁面的每個組件加載時間。
我發現這個鏈接,但這樣會從客戶端的工作: http://www.wemblog.com/2014/05/how-to-find-component-load-time-on-page.html
如何從服務器端獲取CQ5中每個頁面組件的加載時間。如何從服務器端從服務器端獲取頁面中每個組件的加載時間
在這裏根據我的實現,我們得到的最長時間是從request.log文件加載頁面。但我需要從服務器端獲取頁面的每個組件加載時間。
我發現這個鏈接,但這樣會從客戶端的工作: http://www.wemblog.com/2014/05/how-to-find-component-load-time-on-page.html
你必須包括對每一個組件標籤一流的呼叫記錄和呼叫的進入和退出提供了秒錶。
Logger LOG = LoggerFactory.getLogger(classname.class);
StopWatch stopWatch = new StopWatch("new");
stopWatch.start();
stopWatch.stop();
一旦你將這個包含在你的標籤類中,你可以找到每個組件在特定頁面中所花費的時間。 您可以使用putty來訪問您的服務器日誌。
您可以使用RequestProgressTracker
,如Sling documentation
這是一個從SlingHttpServletRequest#getRequestProgressTracker
得到解釋。爲了獲得組件的計時統計信息,您可以使用Servlet Filter在每個請求上執行代碼。
當過濾器被稱爲:
getMessages
獲取RequestProgressTracker
獲得迭代器在請求集合當前請求String
的形式提供,因此您需要解析它才能獲取數據。讓我們看看一些例子消息從文檔:
的最後一條消息是我們正在尋找的那種:
TIMER_END{103,/libs/sling/servlet/default/explorer/node.esp#0}
數103
是腳本執行的毫秒數。逗號後面的值是腳本。你可以定製一個正則表達式來從每個這樣的消息中提取兩個值。
我最近從事的其中一個項目使用這種方法報告組件性能。我們在NewRelic中有一個整潔的儀表板,並在我們構建的每個組件上都有實時統計信息。