Вертикальное уплотнение#

Thanos и Prometheus поддерживают вертикальное уплотнение – процесс объединения нескольких потоков блоков в один.

В Prometheus вертикальное уплотнение запускается скрытым флагом, помещая дополнительные блоки TSDB в локальный каталог данных Prometheus. Дополнительные блоки могут накладываться на существующие. Когда Prometheus обнаруживает эту ситуацию, он выполняет вертикальное уплотнение, которое уплотняет перекрывающиеся блоки в один.

В Thanos вертикальное сжатие работает аналогично, но в большем масштабе и с использованием внешних меток для группировки, как описано в разделе Уплотнение. Группы уплотнения и потоки блоков.

Последовательность выполнения#

Включите вертикальное уплотнение, используя скрытый флаг --compact.enable-vertical-compaction.

Используйте --deduplication.replica-label=LABEL, чтобы установить одну или несколько меток, которые будут игнорироваться во время загрузки блока.

Например, если при таком наборе потоков блоков:

external_labels: {cluster="eu1", replica="1", receive="true", environment="production"}
external_labels: {cluster="eu1", replica="2", receive="true", environment="production"}
external_labels: {cluster="us1", replica="1", receive="true", environment="production"}
external_labels: {cluster="us1", replica="1", receive="true", environment="staging"}

установить --deduplication.replica-label="replica", Compactor примет набор потоков блока как:

external_labels: {cluster="eu1", receive="true", environment="production"} # из 2х потоков получится один
external_labels: {cluster="us1", receive="true", environment="production"}
external_labels: {cluster="us1", receive="true", environment="staging"}

При следующем сжатии блоки нескольких потоков будут объединены в один.

Чтобы настроить/установить другой алгоритм дедупликации, используйте флаг --deduplication.func=FUNC. Значением по умолчанию является исходная дедупликация one-to-one.

Результат#

Вертикальное уплотнение настроено успешно.