2014-03-29 40 views
0

我有一个前端应用程序运行在Rails 4 + Postgres上。我们称之为FRONT_APP。 我有一个运行Rails 4 + Mongodb的统计应用程序。我们称之为STATISTICS_APP如何使用多个应用程序设置分析系统?

在我FRONT_APP,我用这个骨架XHR查询与此代码:

$.ajax({ 
    url: "http://localhost:3000/hits", 
    type: "POST", 
    crossDomain: true, 
    data: { user_data: "Value", token: "TokenString"} 
}) 

我送一个POST请求STATISTICS_APP和创建具有适当的数据Hit实例。通过这种方式,我将在Mongodb上收集数百万行数据。

而在我的STATISTICS_APP的工人中,我将评估所有数据并直接连接到我的生产Postgres db,我将更新相应的表。

因此,我会通过我的Postgres数据库显示统计信息。

您认为这是一种方便的方式来完成这项工作吗?

还是您有更好的工作流程?

谢谢

回答

0

什么你指的是标准analytics stuff - 发送到另一个系统,从而启动分析服务器上(因此记录为hit或类似请求)


一个请求的请求

虽然你的结构是正确的(异步发送请求到其他应用程序),我会留下清晰的ajax的 - 更好的方法将是从其他服务器(通常是1px gif like Google analytics)请求资源:

跟踪代码是如何工作

在一般情况下,谷歌Analytics跟踪代码(GATC)检索网页 页面数据如下:

浏览器请求的网页包含跟踪代码。 A 已创建名为_gaq的JavaScript数组,并将跟踪命令 推入阵列。一个元素被创建并启用为异步加载(在后台加载)。 ga.js跟踪 代码被提取,并自动检测到相应的协议。 一旦获取并加载代码,就会执行_gaq数组 上的命令,并将数组转换为跟踪对象。 后续跟踪调用直接进入Google Analytics。将 脚本元素加载到DOM。跟踪代码收集数据后,GIF请求将发送到Analytics数据库以进行日志记录,并将 后处理发送给Analytics数据库。


我们已经做了类似的事情,但由于我们的应用程序是在发展还是,我们居然还在使用xmlhttprequestajax变相):

//v0.0.230 
//authenticates with server 
(function(token) { 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("POST","http://*******.herokuapp.com/data",true); 
    xmlhttp.setRequestHeader("Authorization", "Token " + token); 
    xmlhttp.send(); 
})(tracker); 

数据

在存储数据方面,我们实际上捕获在Redis的&所有裸数据,然后在Postgres里(Heroku的)存储之后

我们已经不长用它开发的,但是对于数据保留,你一定要看看存储“短期”数据&“长期”数据

希望这能给一些方向?

+0

这是一个很好的答案Rich,谢谢!你知道有什么好的资源来理解更好的Google风格分析收集吗? – scaryguy

+0

最好的办法是看看哪些分析公司已经创建 - 这些人都使用相同的技术,所以最好看看他们如何管理海量数据流等:) –

+0

其实,我想我正在寻找对于现有的代码示例或类似的东西:)你有没有在你的项目中找到任何好的博客文章或Github仓库? – scaryguy

相关问题