OpenStat смотрели? Или вопрос исключительно принципиальный, чтобы данные никуда не уходили на сторону?
PS.
Как раз задумывался недавно о написании системы сбора внутренних метрик, которые отследить через метрики общего назначения сложно. Например: сколько кликов было по конкретному товару или закрытию определенного элемента UI, сколько пользователей выигрывало/проигрывало в каком-нибудь конкурсе с рандомом, и т.д.
При чем фиксировать можно как в серверной логике, так и через клиентскую часть.