Я разрабатываю бэкэнд-приложение REST, используя AWS API-шлюз, который подключен к AWS Lambdas и хранит данные транзакций в AWS RDS MySQL БД. Мне нужно рассчитать определенный набор бизнес-показателей, таких как DAU, MAU, ежемесячный отток, ср. количество взаимодействий на пользователя в день, et c., et c. В идеале у меня должна быть что-то вроде панели инструментов в реальном времени со всеми этими показателями. Таким образом, у меня возник вопрос:
- Где и как хранить данные вызовов пользователей бэкэнд-API?
- Как обрабатывать собранные журналы и вычислять нужные мне метрики ?
- Как сделать все вышеперечисленное как можно дешевле?
У меня в голове есть несколько вариантов:
- Создать базу данных RDS и сохраняйте детали каждого вызова API бэкэнда в нем (например, отметку времени, идентификатор пользователя, имя_ API). Затем для расчета метрик используйте SQL запросов и, возможно, несколько простых бизнес-логи c. Недостатки этой опции: добавьте дополнительную задержку для моего бэкэнда, так как это заняло бы дополнительное время для записи логов в БД; БД RDS не бесплатна
Сохранять сведения о каждом вызове API бэкэнда в журналах CloudWatch. Чтобы рассчитать метрики, загрузите дамп csv из журналов и используйте Excel или другой инструмент анализа данных для вычисления метрик. Недостатки этой опции: включает ручной шаг загрузки журналов, которые представляют риск человеческого фактора и требуют много времени.
Любые рекомендации по архитектуре решения очень приветствуются. Я уверен, что есть лучшая практика для этого - просто не мог найти это. Это не перегруженный проект, поэтому быстрые и грязные решения приветствуются!