2012-12-15 234 views
3

監控Google App Engine託管網站的網站流量的最佳方式是什麼?Google App Engine:流量監控

在每個頁面處理程序中放入一些代碼以將每個頁面請求記錄到數據存儲區,現在(謝謝stackoverflow),我的代碼是log the referring site

another question使用數據存儲記錄流量,但它不考慮其他選項(如果有的話)。

我擔心的是數據存儲昂貴。有另一種方法嗎?人們通常實施流量監控,還是我過於熱心?

如果我通過數據存儲實現流量監控,建議採用哪些字段來捕獲?什麼是好的和/或常見的做法?

我願意與:時間戳;頁;引用者; IP地址;用戶名(如果登錄)。還有其他建議嗎?

回答

1

您可以使用日誌記錄模塊,並配有單獨的配額限制。

7兆字節跨越69天(的保留期限1%)

我不知道極限是什麼,但那是從我的應用程序一行所以它似乎是相當大的。

然後,您可以添加到日誌與

logging.debug("something to store") 

,如果它不已經跟你需要什麼,然後讀出來本地:

appcfg.py --num_days=0 request_logs appname/ output.txt 
5

您提到的所有項目都已由內置App Engine記錄器記錄。爲什麼你需要複製它?如果需要,您可以定期下載日誌進行分析。

0

你通過System.err.println(或python等價物)寫出的任何內容都會自動附加到應用程序引擎日誌中。因此,例如,您可以創建自己的日誌記錄格式,並在所有頁面上放置println,然後下載該格式的日誌和grep。因此,舉例來說,如果這是你的格式:

MYLOG:url:userid:urlparams 

然後通過grep ^MYLOG下載日誌和管道它,它會給你的網站的所有流量。

+0

有一個適當的日誌記錄機制可用。不需要黑客。錯誤應該用於錯誤。 –

3

通常人們使用谷歌分析(或類似的東西),因爲它可以進行客戶端跟蹤,並提供更多的信息,然後進行服務器端跟蹤。

如果您只需要服務器端跟蹤,那麼分析日誌應該足夠了。 Log API的問題在於它可能很昂貴,因爲它不會進行真正的查詢:對於每個日誌搜索,它會徹底查看所有日誌(範圍內)。

您可能想看看Mache,這是一個將所有GAE日誌導出到具有正確查詢功能的Google BigQuery的工具。

另一種選擇是download logs並使用本地工具分析它們。GAE日誌採用Apache格式,因此有plenty of tools available