我有一个在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数据库显示统计信息。
你认为这是一种方便的工作方式吗?
或者你有更好的工作流程吗?
谢谢
答案 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; “长期”数据
希望这会给出一些指导?