2010-06-24 45 views
2

在我特別的web應用程序中,我需要一個重載數據,例如「每分鐘請求數」。如何在基於Servlet API的webapp中獲取這個值?如何在java web應用程序中每分鐘獲取請求數

+3

很有可能,這是你的* servlet容器*將會提供更好的位置,而不是你的webapp本身。 – 2010-06-24 10:56:35

+0

如果你提到了你正在使用的appserver/servletcontainer,你會得到更好的答案。這取決於服務器,而不是Web應用程序。如果它依賴於Web應用程序,那麼這意味着你自己編寫/實現了統計代碼,但這顯然不是這種情況;) – BalusC 2010-06-24 11:35:27

+1

你需要即時加載統計信息(我的Web應用程序現在有多加載?)或統計信息在很長一段時間內(與前一週相比,上週我的網絡應用程序的負載如何?)。 – 2010-06-24 11:46:03

回答

2

不是來自servlet背景,我會試着以舊式的方式來做:按照您的流程進行計算。

如果這是PHP,ASPNET或Django,我會保留一個memcache鍵來存儲當前分鐘,另一個鍵用於計數器。

當您想要跟蹤的動作發生時,檢查分鐘是否與當前分鐘相同。如果是,則遞增計數器,如果不是,則將舊計數保存到數據庫,保存新的當前分鐘並從零開始計數器。

您可以很容易地擴展它,通過將操作添加到內存緩存鍵來跟蹤不同的操作。

+1

讓我稍微更新一下您的方法:我按照過程進行計算,但不要將值降到零,也不要將當前分鐘存儲起來。我不時地查詢計數器並存儲最後查詢事件的時間以及當時的值。這使得事情變得簡單:我在現在和以前的查詢之間有時間差,並且我有價值差異。這一切都需要計算。 – 2010-06-29 07:53:25

3

幾乎所有的容器都允許使用JMX來查詢儀表數據。這可能是你必須安裝一個插件。

確切的內容是容器特定的,但它非常簡單。

例如,這裏是the docs related to tomcat

1

獲得這些統計數據的簡易方法是configure Tomcat access logs。有一些工具可用於解析這些日誌,但您可以使用簡單的腳本每分鐘執行一次請求。

相關問題