Довольно обычно запрашивать базу данных или файлы журналов для получения информации о времени безотказной работы или количестве запросов за заданный интервал времени.
По мере того, как вы собираете все больше и больше данных, SQL-запросы или сканирование журналов становятся все медленнее и медленнее (представьте, что 10 миллионов строк таблицы / строк журнала).
Типичные вопросы:
- Сколько задач мы обработали за последние x месяцев?
- Какова была доступность нашего сервиса за последний X период времени?
- Среднее количество запросов за последний час выше, чем в среднем за последний 1 день?
Я хотел бы использовать некоторое хранилище ключ-значение: много сегментов с разным автоматическим истечением срока действия, чтобы мы могли изучить, например. 10 мин/1 час/1 день ведра и суммировать там все элементы и с гордостью сказать: «За последние 10 минут мы обработали 10 ^ 6 запросов».
Я уверен, что MongoDB или Redis предлагают истечение времени в ведрах — я просто немного беспокоюсь о том, будет ли реализация простой.
Как бы вы решили это? Знаете ли вы лучшие инструменты для этой задачи?
(наш проект написан на java и python)