2015-08-27 191 views
1

我有一個窗口小部件加載了我們網站的iframe,窗口小部件加載了100多個獨特的網站,iframe指向我們網站上託管窗口小部件的頁面分析跟蹤代碼和1-3個事件被解僱。導致服務器問題的Google Analytics(分析)跟蹤事件

我的問題是,我們的服務器由於觸發事件而收到超高CPU使用率。我通過刪除事件來測試這一點,CPU使用率下降到1-2%。我不明白的是服務器爲什麼會受到影響?

我的想法是Javascript是客戶端,事件觸發並且一個http請求從客戶端發送到谷歌分析服務器?至少這是我認爲正在發生的事情。爲什麼我們的服務器會受到如此嚴重的影響,導致100%cpu使用率和客戶端事件崩潰?

注意:代碼是異步加載的。

這是我使用的是標準的跟蹤代碼:analytics.js的:

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

ga('create', 'UA-XXXXXXXX-2', 'auto'); 

ga('send', 'event', 'widget', 'view', 'post',{ 
    dimension2 : 8, 
    dimension3 : 110, 
    dimension7 : 1, 
    dimension5 : 1, 
    dimension6 : 'somee text here' 
} 
); 

加也許2個事件是這樣的一個。

新信息編輯:

尖峯只有在widget被完全加載並生成所有的JavaScript發生。這是因爲該小部件具有點擊觸發的事件。加載鍋爐板代碼時,CPU使用情況穩定。但是當事件被點擊時,點擊我們的服務器峯值。

+0

你說得對,GA是eval'd clientside。在面值情況下,您的CPU使用率不應受此影響。或者至少,不是顯着的..無論輸出幾行文本呼叫之間的差異..所以這不能直接關係到你的CPU使用率。事件是否作爲單獨的內聯框輸出,每個事件都有一個?我可以看到這將如何更大幅度地影響CPU使用率,因爲這是向您的服務器請求輸出每個iframe內容的請求。 –

+0

也是,這些ga值來自哪裏,例如, 'dimension2'從哪裏得到'8'的值?是否有服務器端的邏輯動態輸出它(和其他值)?是否有數據庫查詢涉及獲取這些值?因爲所有這些也會顯着影響服務器的CPU使用率 –

+0

是的,他們只是最小的,我會仔細檢查一切,並找回你。可能是某個地方的無限循環。我沒有得到任何日誌錯誤.. –

回答

0

好吧,看來我用兩種方法解決了這個問題。

首先是前一個事件觸發,你必須經常運行:

ga('send', 'pageview'); 

這個錯誤被發現在我的谷歌分析儀表盤上的紅色警告。

第二個是谷歌分析只期望事件的字符串,所以新的事件代碼應該看起來像這樣。裝載鍋爐板GA代碼時使用analytics_debug.js而不是analytics.js的在我的客戶端控制檯被發現

//All numbers replaced with strings 
ga('send', 'event', 'widget', 'view', 'post',{ 
    'dimension2' : '8', 
    'dimension3' : '110', 
    'dimension7' : '1', 
    'dimension5' : '1', 
    'dimension6' : 'somee text here' 
}); 

此錯誤。

但我仍然不知道爲什麼我的服務器如此嚴重地影響我的這一點。這可能是因爲我在進行這些更改時意外地修復了後端錯誤...

相關問題