如何使用多个应用程序设置分析系统?

时间:2014-03-29 12:57:49

标签: jquery ruby-on-rails mongodb postgresql

我有一个在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数据库,我将更新各自的表格。

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

你认为这是一种方便的工作方式吗?

或者你有更好的工作流程吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您所指的是标准analytics stuff - 向另一个系统发送请求,该系统在分析服务器上发起请求(因此将请求记录为hit或类似的)


虽然你的结构是正确的(将请求异步发送到另一个应用程序),但我会避开ajax - 更好的方法是从其他服务器请求资源(通常是1px gif like Google analytics):< / p>

  

跟踪代码的工作原理

     

通常,Google Analytics跟踪代码(GATC)会检索网络   页面数据如下:

     

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


我们已经做了类似的事情,但由于我们的应用仍处于开发阶段,我们实际上仍在使用xmlhttprequest(伪装成ajax):

//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&amp ;;中的所有裸数据。然后在Postgres(heroku)中存储

我们还没有长期开发,但至于数据保留,你一定要考虑存储“短期”数据&amp; “长期”数据

希望这会给出一些指导?