Как приложения собирают статистику?
-
03-07-2019 - |
Вопрос
Мне нужно собрать статистику из моего серверного приложения, написанного на python.Я ищу некоторые общие рекомендации о том, как настраивать модели и как именно хранить статистическую информацию.Я думал о хранении и организации всей этой информации в базе данных, но моя реализация оказалась слишком специфичной.
Мне нужно собирать статистику, такую как активные пользователи, обработанные запросы и тому подобное с течением времени.
Существуют ли какие-либо руководства или методы для создания каких-либо более общих систем хранения статистики?
Решение
Как и в большинстве программных решений, я не могу порекомендовать ни одного решения, которое решило бы вашу проблему.Но я создал несколько похожих программ, и вот некоторые вещи, которые, как я обнаружил, хорошо работали.
- Создайте службу асинхронного ведения журнала, чтобы ведение журнала не оказывало негативного влияния на производительность вашего кода.(Вы должны помнить о том, где вы храните свои данные, где они обрабатываются и т.д.потому что вы все равно можете значительно снизить производительность, если не будете осторожны.) Я обнаружил, что создание веб-сервиса часто бывает удобным.
- Постарайтесь сохранить как можно больше информации о запросе.В будущем это упростит добавление новых запросов и отчетов.
- Нормализовать ваши данные
- Всегда указывайте время выполнения действия.Если вы можете зафиксировать время выполнения, это, как правило, тоже полезно.
Другие советы
Один из подходов заключается в том, чтобы сделать это поэтапно: хранить журналы активности, включая запросы и пользователей, в виде текстовых файлов. Позже, мои журналы в точках данных (Python должен быть в состоянии сделать это легко). Возможно, вы захотите использовать библиотеку журналов для python для этапа регистрации. В общем, начните с ведения журнала с высоким разрешением по времени, которое впоследствии можно объединять в ежечасные, ежедневные, еженедельные сводки и т. Д.