关于点击/事件追踪机制的推荐(Python,Django,Celery,Mongo等)
我在研究如何在一个django应用中追踪事件(这些事件通常是与特定用户ID相关的点击)。
这些事件基本上会包含一个事件类型,比如“点击”,然后每个点击事件会被分配一个唯一的ID(多个事件可以对应一个ID),每个事件还会有一些数据,比如来源等信息。
我尝试过mixpanel,但目前他们提供的数据接口似乎太有限了,因为我找不到通过唯一ID获取所有数据的方法(除了事件本身)。
我在考虑使用django-eventracker,但也想听听其他人对最佳实现方式的看法。Mongo或CouchDb在这里看起来是个不错的选择,但celery/rabbitmq与mongo的组合也很吸引人。把这些事件直接放到现有应用的数据库里现在感觉有点局限。
总之,这只是一个讨论,想看看其他人对此的想法,以及他们是如何实现类似功能的……
随便聊聊吧
3 个回答
如果你说的“点击”是指点击一个链接,然后加载一个新页面(或者执行一个AJAX请求),那么你想做的事情其实很简单。网络服务器通常会保存一些普通文本的日志,里面记录了关于用户的信息,比如时间、日期、来源、请求的页面等等。你可以查看这些日志,从中提取你需要的统计数据。
另一方面,如果你有一个网页应用,点击不一定会产生服务器请求,那么用JavaScript来收集点击信息就是最好的办法了。
我对你提到的那些现成的解决方案不太了解。如果让我从头开始设计这个功能,我会用简单的JavaScript来收集点击信息,然后通过Ajax把这些信息发送回服务器(可以用你已经在用的任何JavaScript框架)。在服务器端,我只需要把这些信息追加到一个日志文件里,以便后续进行“离线”处理——这样就不需要依赖Django或者其他服务器框架了。
往日志文件里追加信息是个很轻松的操作,而用于网页的数据库通常是为了读取优化的(而不是写入优化的),所以我同意你的看法,把这些信息强行塞进现有应用的数据库里,性能可能不会很好。