2015-08-27 43 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' 
}); 

此错误。

但我仍然不知道为什么我的服务器如此严重地影响我的这一点。这可能是因为我在进行这些更改时意外地修复了后端错误...

相关问题