Retention и Compactor
Тема дорожной карты · Loki
Политика хранения в Grafana Loki определяет, как долго данные логов сохраняются перед автоматическим удалением из объектного хранилища, помогая операторам контролировать затраты и соблюдать требования политик управления данными. Применение политик хранения осуществляется компонентом Compactor, который периодически сканирует индекс для выявления чанков, устаревших относительно настроенного периода хранения, и удаляет их из объектного хранилища. Глобальный период хранения задаётся в разделе limits_config файла loki-config.yaml с помощью ключа retention_period (например, retention_period: 30d); при этом в Compactor-е также должно быть установлено retention_enabled: true и обеспечен доступ к объектному хранилищу для выполнения удалений. Кроме того, Compactor уплотняет файлы индекса BoltDB или TSDB, созданные несколькими узлами Ingester, в оптимизированные дедуплицированные таблицы индекса, сокращая количество объектов в бакете и повышая производительность запросов. Без работающего Compactor-а развёртывание Grafana Loki будет накапливать файлы индекса и устаревшие чанки до бесконечности, поэтому развёртывание Compactor-а как единственного процесса с эксклюзивным правом записи в индекс является обязательным операционным шагом в любой продакшен-среде Loki.
Как это работает
Retention и Compactor: retention в Loki enforce-ит compactor — старые chunks удаляются из object storage по global retention period или per-tenant overrides. Compactor также merge-ит + dedupe-ит index файлы. Без него storage растёт вечно. Per-tenant retention (в multi-tenant Loki) даёт каждому tenant разную retention policy — полезно для "free tier: 7 дней, paid tier: 30 дней". Retention на chunk-уровне + может быть гранулярна (per-stream / per-label match).
Когда применять
Retention консервативно с первого дня — легче extend позже, чем nuke месяцы данных. Dedicated compactor instance в prod (не embedded). Мониторьте compactor lag — если отстал, retention не enforce-ится + storage взрывается. Для multi-tenant — план retention pricing в tier-ы.
Типичные ошибки
Ловушки Retention и Compactor: нет compactor (retention не enforce — storage costs взрывают); compactor недопровизион (lag, retention drift); retention короче окна incident-investigation (логи ушли до postmortem); per-tenant retention misconfigured (тихо держит больше задуманного).