Thanos#

Thanos - это набор компонентов, объединенный в высокодоступную систему хранения/извлечения метрик с неограниченным объемом хранилища, которую можно бесшовно интегрировать поверх существующих развертываний Prometheus.

Thanos использует формат Prometheus 2.0 для экономичного хранения истории метрик в любом хранилище объектов при сохранении высокой скорости ответов на запросы.

Thanos предоставляет:

  • общий просмотр метрик с помощью запросов;

  • неограниченное хранение метрик;

  • дедупликацию и сегментированность блоков;

  • высокую доступность компонентов, включая Prometheus.

Особенности Thanos:

  • общий просмотр запросов на всех подключенных серверах Prometheus;

  • дедупликация и объединение метрик, собранных из высокодоступных пар Prometheus;

  • полная и бесшовная интеграция с существующими установками Prometheus;

  • любое хранилище объектов в качестве единственной опциональной зависимости;

  • дискретизация (downsampling) истории данных для существенного ускорения ответов на запросы;

  • межкластерная федерация – инструмент для координации конфигурации нескольких кластеров;

  • отказоустойчивая маршрутизация запросов;

  • простой gRPC Store API (система удаленного вызова процедур) для унифицированного доступа ко всем данным метрик – доступ ко всем метрикам, расположенным на разных серверах Prometheus, с помощью одного API-запроса;

  • простые точки интеграции для поставщиков пользовательских метрик.

Thanos состоит из набора компонентов, каждый из которых выполняет определенную роль:

  1. Sidecar - считывает данные Prometheus для запроса и загружает их в облачное хранилище.

  2. Store Gateway - обслуживает метрики внутри облачных хранилищ.

  3. Compactor - уплотняет данные в облачных хранилищах.

  4. Receiver - работает с данными из удаленного журнала предварительной записи Prometheus, предоставляет их и/или загружает в облачное хранилище.

  5. Ruler/Rule - оценивает правила записи и оповещения относительно данных в Thanos для отображения и/или загрузки.

  6. Querier/Query - реализует Prometheus v1 API для агрегирования данных из базовых компонентов – выступает в качестве источника метрик.

  7. Query Frontend - реализует Prometheus v1 API для передачи его в Querier, кешируя ответ и разбивая его на запросы в день.