Вертикальное уплотнение#
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.
Результат#
Вертикальное уплотнение настроено успешно.