Как собирать статистику внутри веб-приложения?

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

Понятно, что можно написать велосипед: записывать все в базу, потом написать интерфейс для анализа, либо ручками делать запросы к базе.

Тем не менее, может быть есть какие-то готовые решения, хорошие практики?
Может быть есть проекты наподобие Sentry (сервер агрегации ошибок), но для статистики?
Как вы решаете у себя подобные задачи?

Спасибо за ответы.
  • Вопрос задан
  • 5567 просмотров
Пригласить эксперта
Ответы на вопрос 9
leonid-lapidus
@leonid-lapidus
У себя решили в лоб и таскаем из проекта в проект: табличка actions, куда пишется, user_id, штамп времени, код действия, результат или код ошибки, коммент, служебная инфа. Проблем не наблюдаем на >40 проектах.

Почему навелосипедили — потому что не смогли найти ничего, отвечающего требованиям по аналитике. Тут мы сами короли — что хотим: пишем, что хотим — анализируем, причём по таким срезам, по которым хотим. Была идея сделать из этого универсальный инструмент, но… как то руки не дошли.
Ответ написан
@shagguboy
pinba?
Ответ написан
Комментировать
dbmaster
@dbmaster
Плантые варианты

papertrailapp.com/
loggly.com

Алтернатива
piwik.org/

Через piwik можно найти похожие вопросы habrahabr.ru/search/?q=piwik&target_type=qa
Ответ написан
LeoCcoder
@LeoCcoder
попробуйте гугль аналитикс. Мы ее частенько используем, и не только на сайтах, но и в мобильных приложениях для анализа поведения пользователя.
Ответ написан
Пытался делать на РСУБД (MySQL), но не не понравилось — или под каждое событие нужно городить табличку или эмулировать scheme free. Проще взять настоящую scheme free СУБД, остановился на CouchDB. Не для конечного пользователя, но написать по быстрому view на JavaScript может почти любой фронтендер, после небольшого обучения специфики, конечно
Ответ написан
пользуюсь mixpanel.com, рекомендую
Ответ написан
mongohtotech
@mongohtotech
Мы разрабатывали именно для таких задач OLAP систему. Система анализирует поведение пользователей в облачном сервисе.
Если описать кратко это выглядит так:
— Мы периодически загружаем информацию из логов сервиса в хранилище данных, содержащее таблицы с информацией об операциях пользователей (вход в систему, просмотр страницы, загрузка файла и т.д.)
— На основании хранилища строятся OLAP-кубы
— Доступ к OLAP возможен из Excel, либо напрямую через MDX запросы, например для публикации аналитики в своем приложении
— Все реализовали с помощью MS SQL Server
— Объемы данных — миллионы операций в день
Ответ написан
Комментировать
kuzemchik
@kuzemchik
Думали о pinba, но в итоге пользуемся New Relic.
Ответ написан
Комментировать
Eternalko
@Eternalko
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы