Аналитика счетчика с использованием дивана и кушетки App - PullRequest
3 голосов
/ 22 мая 2011

Кушетка имеет интерфейс REST. Это означает, что обновления данных являются эксклюзивными для вызовов PUT.

Я проверяю способы реализации скромных аналитических счетчиков и натолкнулся на особенности couchdb, диван и couchapp - которые круто, учитывая мою сильную ориентацию на JavaScript.

Однако большинство сервисов веб-аналитики заканчивают подсчетом обновлений с использованием запроса какого-либо ресурса, обычно в теге IMG или SCRIPT.

  • Есть ли способ использовать couchApp для использовать запрос GET для выполнения моих подсчетов?
  • Это было бы злоупотреблением архитектура? Я имею в виду, что не все на диване - это ОТДЫХ - я, г, - административные части - нет.

Я был бы очень рад услышать, что скажут эксперты:)

** Отредактировано *

Я только что заметил, что CouchDB и Sofa поставляются с веб-сервером Mochiweb! Может быть, есть способ, которым я мог бы зацепить это?

1 Ответ

3 голосов
/ 23 мая 2011

Идея о вилке или плагине

Если вы программист на Erlang (или ищете новый проект для изучения Erlang), то вы определенно можете написать что угодно в качествеплагин / расширение для CouchDB.Самый маленький пример, который я знаю, это Die CouchDB, мое доказательство концепции, которое добавляет один запрос, который просто остановит сервер.

https://github.com/iriscouch/die_couchdb

Вы можете в принципе написать плагин илифорк CouchDB для обработки запросов GET и выполнения с ними любых действий.

Примечание об архитектуре REST

Я не очень знаком с реализациями аналитики, но суть REST и HTTP заключается в том, что GETзапросы не имеют побочных эффектов и / или являются идемпотентными (выполнение 50 запросов ничем не отличается от выполнения одного).

В результате прокси могут и будут кэшировать многие ответы GET как стандартными, так и нестандартными способами.Это кажется несовместимым с методами отслеживания пользователей и сбора данных;однако, возможно, аналитические инструменты все еще думают, что преимущества перевешивают затраты.

Для большинства людей, вероятно, проще использовать внешние инструменты.

Идея журнала

Один прием - получить что-нибудьс дивана, а затем проверьте запись в журнале с дивана.Вы можете получить журнал дивана, запросив /_log от имени администратора.В журнале будут отображаться IP-адрес пользователя, путь запроса и любые параметры запроса.

Например,

$ curl -X GET http://localhost:5984/?userid=abcde\&windowsize=1024x768\&color=blue
{"couchdb":"Welcome","version":"1.1.0"}

$ curl localhost:5984/_log | grep userid
[Mon, 23 May 2011 00:34:54 GMT] [info] [<0.1409.0>] 127.0.0.1 - - 'GET' /?userid=abcde&windowsize=1024x768&color=blue 200

Далее вы можете обработать эту запись в журнале и повторно вставить в вашу фактическую базу данных аналитики.себя.

Идея Wrapper

Окончательное решение - запустить простой обратный прокси-сервер, который преобразует ваши запросы GET во все, что вам нужно.NodeJS становится популярным для подобных задач, но вы можете использовать любую веб-платформу, которую вы предпочитаете: PHP, ASP, JSP, что вы уже знаете.

Вы просто отвечаете на запрос GET и делаете все, что вам нужно, нана стороне сервера, например, вставка соответствующей информации в вашу аналитическую базу данных.

Удачи!

...