TSDB в Loki

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

TSDB (Time Series Database) — текущий рекомендуемый бэкенд индекса для Grafana Loki, пришедший на смену устаревшему BoltDB Shipper и использующий более эффективный и масштабируемый формат индекса, заимствованный из Prometheus. В отличие от BoltDB Shipper, который создаёт отдельные файлы BoltDB на каждом узле, требующие слияния Compactor-ом, TSDB использует компактный, хорошо оптимизированный бинарный формат, обеспечивающий более быстрый поиск по меткам и меньшее потребление памяти при запросах. Для включения TSDB в Loki необходимо задать store: tsdb в разделе schema_config файла loki-config.yaml вместе с соответствующим object_store (обычно s3 или filesystem) и схемой schema: v12 или более новой. Файлы индекса TSDB записываются Ingester-ами и загружаются в настроенный бакет объектного хранилища, где Compactor периодически выполняет уплотнение для их слияния и оптимизации. Команды, переходящие с BoltDB Shipper на TSDB, могут сделать это онлайн, добавив новую запись периода схемы с будущей датой from, что позволяет Loki продолжать читать старые данные индекса BoltDB, записывая все новые данные в индекс TSDB.

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

TSDB в Loki: 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 растёт быстро.

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

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

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

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