【问题标题】:How to setup a analytics system using multiple apps?如何使用多个应用程序设置分析系统?
【发布时间】:2014-03-29 12:57:49
【问题描述】:

我有一个在 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"}
})

我正在向STATISTICS_APP 发送POST 请求并创建一个具有正确数据的Hit 实例。通过这种方式,我将在我的 Mongodb 中收集数百万行数据。

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

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

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

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

谢谢

【问题讨论】:

    标签: jquery ruby-on-rails mongodb postgresql


    【解决方案1】:

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


    虽然你的结构是正确的(向另一个应用程序异步发送请求),但我会远离 ajax——更好的方法是从另一个服务器请求资源(通常是 1px gif like Google analytics):

    跟踪代码的工作原理

    一般来说,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中捕获所有裸数据,然后存储在Postgres(heroku)中

    我们开发的时间不长,但至于数据保留,您绝对应该考虑存储“短期”数据和“长期”数据

    希望这能给你一些指导?

    【讨论】:

    • 这是一个很好的答案 Rich,谢谢!你知道有什么好的资源可以更好地理解 Google 风格的分析收集吗?
    • 最好的办法是看看分析公司已经创造了什么——这些人都使用相同的技术,所以最好看看他们如何管理海量数据流等:)跨度>
    • 实际上,我想我正在寻找一个现有的代码示例或类似的东西 :) 您在项目期间是否找到了任何好的博客文章或 Github 存储库?
    • 嗯,我想我做到了,但我忘记了它们在哪里。我喜欢通过获得一个概念并解决这个问题来工作。让我看看能不能帮你找到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2012-11-03
    相关资源
    最近更新 更多