Per-tenant retention

Тема дорожной карты · Loki

Настройка хранения данных на уровне отдельных тенантов позволяет задавать независимые политики жизненного цикла данных в многотенантном развёртывании Grafana Loki: логи одного тенанта можно хранить 7 дней, а другого — 90 дней. Конфигурация выполняется через механизм переопределений для тенантов: создаётся файл переопределений, на который ссылается параметр per_tenant_override_config в loki-config.yaml, и в этом файле задаётся значение retention_period для каждого тенанта, идентифицируемого по значению заголовка X-Scope-OrgID. Файл переопределений горячо перечитывается Loki с интервалом, заданным параметром per_tenant_override_period (по умолчанию 10 секунд), поэтому можно менять политики хранения отдельных тенантов без перезапуска Loki или Compactor. Хранение данных по тенантам требует, чтобы Compactor был запущен с retention_enabled: true, а в блоке limits_config было задано глобальное значение retention_period в качестве запасного для тенантов без явного переопределения. Эта функция особенно полезна для SaaS-платформ, использующих Grafana Loki в качестве бэкенда для агрегации логов, когда разные клиенты имеют различные контрактные или регуляторные требования к сроку хранения логов.

Как это работает

Per-tenant retention: 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-ы.

Типичные ошибки

Ловушки Per-tenant retention: нет compactor (retention не enforce — storage costs взрывают); compactor недопровизион (lag, retention drift); retention короче окна incident-investigation (логи ушли до postmortem); per-tenant retention misconfigured (тихо держит больше задуманного).

Связанные понятия

Полезные ресурсы