Счетчик аналитики с использованием дивана и приложения дивана

Couch имеет интерфейс REST. Это означает, что обновление данных выполняется исключительно для вызовов PUT.

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

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

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

Буду рад услышать мнение специалистов :)

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

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


person Radagast the Brown    schedule 22.05.2011    source источник
comment
Ого, крутое имя, Радагаст Бурый.   -  person JasonSmith    schedule 23.05.2011


Ответы (1)


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

Если вы программист 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

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

Идея обертки

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

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

Удачи!

person JasonSmith    schedule 23.05.2011