Как настроить систему аналитики с использованием нескольких приложений?

0

У меня есть front-end приложение, работающее на 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 который имеет соответствующие данные. Таким образом, я собираю миллионы строк данных на моем монгодбе.

И у работника моего STATISTICS_APP, я буду оценивать все данные и с прямым подключением к моей продукции Postgres db, я буду обновлять соответствующие таблицы.

В результате я покажу статистическую информацию через мой Postgres db.

Считаете ли вы, что это удобный способ сделать эту работу?

Или у вас есть лучший рабочий процесс?

спасибо

1 ответ

0
Лучший ответ

То, что вы имеете в виду, является стандартным материалом для analytics - отправьте запрос в другую систему, которая инициирует запрос на сервере аналитики (следовательно, запись запроса как hit или аналогичного)


Хотя ваша структура верна (асинхронно отправляет запросы в другое приложение), я бы избежал ajax - лучший способ - запросить ресурс с другого сервера (обычно это 1px gif, например Google Analytics):

Как работает код отслеживания

В целом, код отслеживания Google Analytics (GATC) извлекает данные веб-страницы следующим образом:

Браузер запрашивает веб-страницу, содержащую код отслеживания. Создан JavaScript-массив с именем _gaq, и команды отслеживания помещаются в массив. Элемент создается и активируется для асинхронной загрузки (загрузка в фоновом режиме). Получен код отслеживания ga.js, при этом автоматически определяется соответствующий протокол. После того, как код загружен и загружен, команды в массиве _gaq выполняются, и массив преобразуется в объект отслеживания. Последующие отслеживающие звонки поступают непосредственно в Google Analytics. Загружает элемент сценария в DOM. После того, как код отслеживания собирает данные, запрос GIF отправляется в базу данных Google Analytics для ведения журнала и последующей обработки.


Мы сделали что-то подобное, но поскольку наше приложение еще находится в разработке, мы на самом деле все еще используем xmlhttprequest (ajax in xmlhttprequest):

//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
    Это отличный ответ, Рич, спасибо! Знаете ли вы какие-нибудь хорошие ресурсы для лучшего понимания аналитического сбора в стиле Google?
  • 0
    Лучше всего просто посмотреть на то, что аналитические компании уже создали - все эти парни используют одну и ту же технологию, поэтому будет лучше увидеть, как они управляют большими потоками данных и т. Д. :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню