Где хранить и как рассчитать пользовательские метрики - PullRequest
0 голосов
/ 20 февраля 2020

Я разрабатываю бэкэнд-приложение REST, используя AWS API-шлюз, который подключен к AWS Lambdas и хранит данные транзакций в AWS RDS MySQL БД. Мне нужно рассчитать определенный набор бизнес-показателей, таких как DAU, MAU, ежемесячный отток, ср. количество взаимодействий на пользователя в день, et c., et c. В идеале у меня должна быть что-то вроде панели инструментов в реальном времени со всеми этими показателями. Таким образом, у меня возник вопрос:

  1. Где и как хранить данные вызовов пользователей бэкэнд-API?
  2. Как обрабатывать собранные журналы и вычислять нужные мне метрики ?
  3. Как сделать все вышеперечисленное как можно дешевле?

У меня в голове есть несколько вариантов:

  1. Создать базу данных RDS и сохраняйте детали каждого вызова API бэкэнда в нем (например, отметку времени, идентификатор пользователя, имя_ API). Затем для расчета метрик используйте SQL запросов и, возможно, несколько простых бизнес-логи c. Недостатки этой опции: добавьте дополнительную задержку для моего бэкэнда, так как это заняло бы дополнительное время для записи логов в БД; БД RDS не бесплатна
  2. Сохранять сведения о каждом вызове API бэкэнда в журналах CloudWatch. Чтобы рассчитать метрики, загрузите дамп csv из журналов и используйте Excel или другой инструмент анализа данных для вычисления метрик. Недостатки этой опции: включает ручной шаг загрузки журналов, которые представляют риск человеческого фактора и требуют много времени.

    Любые рекомендации по архитектуре решения очень приветствуются. Я уверен, что есть лучшая практика для этого - просто не мог найти это. Это не перегруженный проект, поэтому быстрые и грязные решения приветствуются!

...