Сначала различите число samples и активных временных рядов: 500 млн отсчётов в сутки — около 5,8 тыс. в секунду. Основные меры — снизить кардинальность, убрать лишний сбор и оптимизировать запросы.
В Prometheus-стеке собирается более 500 миллионов метрик в день, а запросы в Grafana стали медленными. Расширять железо нельзя. Как оптимизировать хранение, downsampling, политику retention и паттерны запросов, сохранив наблюдаемость и критичные алерты?
Сначала различите число samples и активных временных рядов: 500 млн отсчётов в сутки — около 5,8 тыс. в секунду. Основные меры — снизить кардинальность, убрать лишний сбор и оптимизировать запросы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала различите число samples и активных временных рядов: 500 млн отсчётов в сутки — около 5,8 тыс. в секунду. Основные меры — снизить кардинальность, убрать лишний сбор и оптимизировать запросы.
Найдите метрики с user_id, request_id и другими неограниченными labels, дорогие панели и чрезмерно частый scrape. Для повторяющихся вычислений используйте recording rules; для дашбордов ограничьте диапазон и разумно выбирайте step. Критичные алерты должны сохранять нужную детализацию. Локальный Prometheus не выполняет автоматический downsampling старых samples: долгосрочные агрегаты требуют отдельно спроектированного хранения или backend с такой возможностью. Recording rules сами добавляют ряды. Retention сокращайте только после согласования требований и проверки доступности нужной истории.
Источник: prometheus.io.