Идея о вилке или плагине
Если вы программист на 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 и делаете все, что вам нужно, нана стороне сервера, например, вставка соответствующей информации в вашу аналитическую базу данных.
Удачи!