Mat*_*eon 3 performance ruby-on-rails
我正在通过我的Rails应用程序中的Mixpanel跟踪事件.例如,我的控制器看起来像
class HomeController < ApplicationController
def index
track_event "Visitor: View Landing Page"
end
end
Run Code Online (Sandbox Code Playgroud)
问题是该应用程序受到许多机器人的攻击,最值得注意的是Pingdom(我们使用的性能跟踪服务).当它是一个击中我的应用程序的机器人时,是否有一种干净的方式来忽略跟踪?
注意:我对跟踪唯一身份访问者感兴趣,因此我为每位访问者分配了一个唯一ID的Cookie.机器人显然不存储cookie.
执行此操作的传统方法是构建机器人用户代理的索引,并在UA与机器人匹配时忽略您的跟踪事件代码.
bots = /Googlebot|Pingdom|.../
unless request.env["HTTP_USER_AGENT"].match(bots)
track_event(...)
end
Run Code Online (Sandbox Code Playgroud)
这是一种难以维持的痛苦,但它通常是有效的.对于任何关于他们的UA的人来说,这显然是没有效果的,但除了做启发式检测以确定他们不是机器人之外,你没有太多可以做的事情,但在这种情况下这可能不值得.