Chunks и Index

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

В Grafana Loki чанки и индекс — два фундаментальных примитива хранения, которые вместе обеспечивают эффективную запись и запрос логов. Чанк — это сжатый блок строк логов, принадлежащих одному потоку; он создаётся Ingester-ом, когда накоплено достаточно данных или когда возраст чанка превышает ingester.max_chunk_age. Затем чанки сериализуются и загружаются в настроенное объектное хранилище (например, S3), где хранятся в виде бинарных файлов, поимённо привязанных к отпечатку потока и временному диапазону. Индекс — отдельная структура данных, отображающая комбинации меток на набор чанков, содержащих строки логов для данного потока и временного диапазона; это позволяет Querier Loki находить нужные чанки без сканирования всех сохранённых данных. Конфигурация схемы Loki в loki-config.yaml связывает определённый тип индекса (boltdb-shipper или tsdb) с конкретным бэкендом объектного хранилища для каждого временного периода — таким образом, индекс и чанки могут размещаться в одном S3-бакете. Понимание взаимосвязи между чанками и индексом помогает операторам диагностировать проблемы производительности запросов и правильно настраивать размер кэша чанков в Grafana Loki для минимизации обращений к объектному хранилищу при высоконагруженных запросах.

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

Chunks и Index: Loki хранит chunks (compressed log segments) + index (label → chunk pointers). Index backends эволюционировали: BoltDB Shipper (1-е поколение) → TSDB (текущий дефолт, намного лучше perf). Object storage (S3, GCS, Azure Blob, MinIO) держит bulk данных — дёшево, масштабируемо, durable. Local filesystem только для dev. Compactor merge-ит старые index файлы + применяет retention. TSDB index примерно в 10 раз эффективнее BoltDB Shipper — мигрируйте, если ещё на BoltDB.

Когда применять

Используйте TSDB index в 2026 — BoltDB Shipper legacy. S3-compatible object storage (Ceph, MinIO, AWS S3) для prod. Chunk size + compression тщательно (дефолты разумны). Replication factor ≥ 3 в clustered деплоях. Мониторьте object-storage cost — log volume растёт быстро.

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

Ловушки Chunks и Index: filesystem в prod (нет масштаба, нет durability); BoltDB Shipper всё ещё в 2026 (perf страдает); compactor не запущен (index растёт + retention не применяется); недостаточный IOPS object storage (queries ползут).

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

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