Как можно отслеживать данные о поведении пользователей в приложении (логи, метрики, действия), чтобы анализировать их?

Как можно правильно настроить систему аналитики и мониторинга для приложения и сайта типографии, разработанного с использованием NodeJS (NestJS) для бэкенда, VueJS для фронтенда и Flutter для мобильной версии? Требуется реализовать следующие аспекты: отслеживание успешных и неуспешных попыток авторизации, запросов на восстановление пароля, обращений в поддержку, среднего времени обработки обращений, среднего времени онлайн-активности пользователей, времени отклика различных запросов, статистику по количеству пользователей и проведенных оплат, оценку поведения пользователей, загрузку страниц, количество ошибок в приложении, активных пользователей в реальном времени и прочие данные. Цель проекта – саморазвитие. Требуется консультация по правильной реализации данной аналитики и ведению статистики.
  • 1 марта 2024 г. 14:58
Ответы на вопрос 2
1. Для отслеживания данных о поведении пользователей в приложении можно использовать различные методы, такие как:
- Логирование: регистрация всех событий и действий пользователей в приложении в виде логов. Это может быть как обычный текстовый файл, так и специальные инструменты для сбора и анализа логов.
- Метрики: использование метрик для оценки работы приложения и поведения пользователей. Например, количество сессий, длительность сессий, конверсия, пользовательские события и т.д.
- Инструменты аналитики: использование специальных инструментов аналитики, таких как Google Analytics, Mixpanel, Amplitude и другие, для отслеживания и анализа данных о поведении пользователей.

2. Для настройки системы аналитики и мониторинга для типографии, разработанной с использованием NodeJS (NestJS), VueJS и Flutter, можно следовать следующим шагам:
- Добавить код отслеживания в приложение: подключить нужные библиотеки (например, для логирования событий) и добавить код отслеживания в соответствующие части приложения.
- Настроить события отслеживания: определить какие события и действия пользователей необходимо отслеживать (успешные и неуспешные попытки авторизации, запросы на восстановление пароля, обращения в поддержку и т.д.).
- Настроить инструменты аналитики и мониторинга: выбрать подходящие инструменты для отслеживания и анализа данных (например, Google Analytics для отслеживания поведения пользователей на сайте), настроить необходимые события и отчеты.
- Регулярно анализировать данные: следить за данными о поведении пользователей, анализировать их и принимать соответствующие меры для улучшения работы приложения и удовлетворения потребностей пользователей.

Для более подробной консультации по реализации данной аналитики и ведению статистики рекомендуется обратиться к специалистам по аналитике данных или к разработчикам, имеющим опыт работы с указанными технологиями.
Это называется метрики приложения. 
Реализовать можно несколькими способами, в зависимости от требования:
- Для онлайн показателей (количество ошибок приложения, кол-во активных пользователей) можно реализовать через счетчики - грубо говоря, приходит пользователь -> увечиличиваем счетчик
- Для статичтических данных - нужно делать запросы в БД, т.к. онлайн такое вряд-ли реализуется (приложение может рестартануть и метрики потеряются) - это SQL (если данные в реялционке) или язык для своего хранилища

Чаще всего вижу такое решение:
- Приложение отслеживает внутрениие метрики и отдает их в Prometheus формате
- Prometheus приложение собирает эти метрики
- Grafana получает метрики из Prometheus и строит по ним дашборды
- Grafana делает запрос в БД для получения статистики и строит по ним дашборды

В общем, смотри пару Prometheus/Grafana

P.S. анализ логов для получения метрик - плохая затея, не надо так
P.P.S. метрики, логирование, действия пользователя и т.д. - в общем случае называется observability - возможность понимать что происходит в приложении/системе и т.д.
Похожие вопросы