一个简单的统计跟踪器
django-tracker的Python项目详细描述
Version: | 0.0.1 |
---|
简介
这个包会给你一个简单的工具来追踪匿名用户 你网站上的操作。你为一个动作选择一个标签,每次 用户执行此操作时,您可以调用后端跟踪方法:
from tracker.models import Tracker tracker = Tracker() tracker.incr_labels("user_connected|user_clicked_button")
此操作将增加“用户已连接”和“用户已单击”标签的计数器。 如果安装了tracker视图,也可以从javascript调用tracker:
from tracker.views import track, report urlpatterns = patterns('', ... (r'^track/', track), )
然后你可以访问/track/?labels=user_connected user_u clicked_button它将具有相同的效果。例如,使用jquery:
function track(labels) { $.ajax({ url: '/track/?labels='+labels, dataType: 'text', type: "GET", error:function (xhr) { } }); } track('user_connected|user_clicked_button')
您还可以指定用冒号分隔的两个额外信息:
track('user_connected:category:domId')
该类别将有助于在管理界面中筛选统计信息。dom id 可用于在页面上创建热图。下面是如何使用dom_id信息的简单示例:
<div id="tracked-links"> <a href="#1" id="link1">Test link 1</a> <a href="#2" id="link2">Test link 2</a> <a href="#3" id="link3">Test link 3</a> <a href="#4" id="link4">Test link 4</a> </div> <p><a href="/report/">Report the clicks in the database</a></p> <p><a href="#" id="get-stats">Get the statistics</a></p> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script> $('#tracked-links a').click(function(e) { track('tracked-links-'+this.id+':links:'+this.id); }) $('#get-stats').click(function(){ var dom_ids = ""; $.each($('#tracked-links a'), function(index, value) { dom_ids += value.id + '|'; }); $.ajax({ url: '/get_stats/?dom_ids='+dom_ids, dataType: 'json', type: "GET", error:function (xhr) { }, success: function(data, textStatus, XMLHttpRequest) { for(stat in data) { var id = data[stat][0]; var counter = data[stat][1]; var label = data[stat][2]; $('#'+id).text('clicked '+counter+ ' time.') } } }); }); </script>
这个小脚本收集“tracked links”div中的id,并向服务器发出请求以获取 关于他们的统计数据。动作计数器随后显示在链接内。看看testproj 作为一个有效的例子。
它是如何工作的?
django tracker在数据库上很简单,其结构是使用memcache对每个操作进行计数。收集 memcache信息您需要执行以下操作之一:
* Setup and call the `report` view every 2 minutes * Setup a cron that call tracker.models.make_daily_report function every 2 minutes * Setup the Celery task that is provided in `tracker.tasks`.
这也意味着您需要使用memcache或至少使用locmem cache后端(仅当您有一台服务器时)。 它可能与数据库缓存一起工作,但它不是最佳配置。
所有信息都存储在每日统计模型中(按标签和日记录一次)。这些模型可以直接在管理界面中使用 检查你网站的有趣指标。
安装
# python setup.py install # as root