У вас есть много вариантов, так что я буду говорить от моего опыта работы стартапа около 50ок пользователей, 100k активного каждого месяца, который, кажется, в вашем диапазоне.
Мы зарегистрировали действия пользователя в базе данных MySQL.
- Запрос ваши данные очень легко и быстро (при условии, хорошие показатели)
- Мы побежали на Azure и имел выделенный MySQL (с рабами, и т.д.) для хранения всех пользовательских данных, включая журналы. Пространство не было проблемой.
- Регистрация в MySQL может быть медленной, в зависимости от всего, что вы регистрируете, поэтому мы просто нажали на журнал до Redis и получили приложение Python от Redis и вставляли в MySQL в фоновом режиме. Это привело к тому, что каротаж в основном не влиял на время загрузки.
Мы решили войти в MySQL для действий пользователя, потому что:
- Мы хотели выполнять запросы на что-либо в любое время без особых усилий. Структурированный формат журналов действий пользователя сделал невероятно легким сделать.
- Он также позволяет отображать определенные журналы для пользователей, если потребуется.
- Когда мы вводили значки, нам не нужно было разбирать текстовые журналы, чтобы награждать значки тем, кто выполнял определенное действие X раз. Мы просто написали запрос к журналам действий пользователя, и были отмечены значки. Таким образом, добавление функций, основанных на действиях, было легким.
Мы использовали регистрацию файлов для нескольких журналов приложений - или вещей, которые мы не запрашивали на ежедневной основе - например, приложение Python, записывающее в базу данных, журналы доступа к веб-серверу и журналы ошибок и т. Д.
Мы использовали Logstash для обработки этих журналов. Он может просто подключиться к файлу журнала и передать его на ваш сервер Logstash. Logstash также может запрашивать ваши журналы, что довольно круто.
Advanced использует
Мы использовали Slack для командных коммуникаций и интегрировали письма базы данных приложения Python с ним, это позволило нам посылать критические ошибки в канале (через их API), где кто-то мог действие исправить немедленно ,
Закрытие
Мое предложение было бы не более чем подумать сейчас, чтобы войти MySQL, запрос и увидеть статистику. Сделайте обновления, промойте и повторите. Вы хотите быстро сохранить цикл между развертыванием и обновлением, поэтому принятие решений из быстрого SQL-запроса упрощает процесс.
В основном, что вы хотите избежать, войдите на сервер, найдя журнал и grep
свой путь через него, чтобы найти что-то, выше достигнутое.
Это то, что мы сделали, оно все еще работает так, и мы не планируем скоро его менять. У нас не было никаких проблем, когда мы не могли найти ничего, что нам было нужно. Если есть массивный всплеск пользователей, и мы масштабируемся до 1 миллиона ежемесячно активных пользователей, тогда мы может изменить его.
Обратите внимание: в зависимости от того, как вы решили войти, если вы сохраняете данные POST, убедитесь, что никогда не делать, что для получения информации по кредитной карте, если вы не совместимы. Или, скорее, используйте библиотеки JavaScript Stripe.
Вы должны действительно смотреть на это: https://github.com/Seldaek/monolog –