Перейти к содержимому
10 / 15

Хранилище Prometheus: head-блок, WAL, двухчасовые блоки, компакция, retention

Свежие данные Prometheus держит в памяти в head-блоке, а чтобы не потерять их при падении, дублирует в журнал упреждающей записи (WAL) сегментами по 128 МБ. Раз в два часа head закрывается и становится блоком на диске: каталог с чанками, индексом и метаданными. Дальше фоновая компакция склеивает мелкие блоки в крупные — до 10% от срока хранения или 31 дня, что меньше. Удаление идёт двумя политиками: --storage.tsdb.retention.time (по умолчанию 15 дней, если ничего не задано) и --storage.tsdb.retention.size (по умолчанию выключено); срабатывает та, что раньше. Практические следствия: место на диске оценивается как «срок × сэмплов в секунду × 1–2 байта на сэмпл»; при старте сервер воспроизводит WAL, и на большой базе это занимает минуты, в течение которых он не отвечает; удаление отдельных серий — не операция, а запрос к admin-API, отключённому по умолчанию.

Хранилище Prometheus: head-блок, WAL, двухчасовые блоки, компакция, retention | JScriptiser