Compactor

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

Compactor — это специализированный компонент Grafana Loki, выполняющий две критически важные фоновые операции: уплотнение индекса (слияние множества небольших файлов индекса в меньшее количество крупных оптимизированных файлов) и применение политики хранения (удаление чанков и записей индекса, устаревших относительно настроенного периода хранения). Он должен работать как единственный экземпляр, поскольку выполняет деструктивные операции над общим индексом в объектном хранилище, и одновременный запуск нескольких экземпляров может привести к повреждению индекса. В loki-config.yaml Compactor настраивается в блоке compactor, где задаются working_directory (локальный путь для временных файлов), shared_store (тип объектного хранилища, например s3) и retention_enabled: true для активации применения политики хранения в дополнение к уплотнению. Циклы уплотнения и применения политики хранения выполняются с интервалом, заданным compaction_interval (по умолчанию 10 минут), поэтому они не мгновенны — вновь устаревшие чанки могут быть удалены лишь в течение следующего цикла уплотнения. Мониторинг работоспособности Compactor-а важен в развёртывании Grafana Loki: метрика loki_compactor_runs_completed_total и конечная точка /ready подтверждают его работу и корректную обработку индекса.

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

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-ы.

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

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

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

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