Настройка Prometheus Long-term Storage через Thanos

Когда Prometheus хранит метрики лишь 15 дней, теряется история, нужная для анализа трендов и планирования мощностей. Мы настраиваем Thanos для долгосрочного хранения в объектном хранилище, сохраняя ваш текущий Prometheus и его высокую доступность. Наша команда реализует проект под ключ — от аудита архитектуры до внедрения и последующей поддержки, обеспечивая надёжный multi-cluster мониторинг.
Часто задаваемые вопросы

Prometheus хранит метрики локально всего 15 дней — это узкое место, когда нужна аналитика за квартал, сезонность или capacity planning. Представьте: в пятницу вечером падает production, а метрики за прошлые недели уже недоступны. Thanos решает проблему через объектное хранилище (S3, GCS), глобальный query-слой и дедупликацию. Мы внедрили Thanos в 50+ проектах, от стартапов до enterprise, и гарантируем: вы забудете о нехватке истории за 3–5 дней. Получите консультацию — наши сертифицированные инженеры помогут с выбором архитектуры.

Почему Thanos, а не remote_write?

Remote_write (VictoriaMetrics, Cortex) требует замены Prometheus, создаёт единую точку отказа и не даёт дедупликации. Thanos ставится как sidecar рядом с существующим Prometheus, сохраняет его HA и позволяет строить multi-cluster federation через общий S3 bucket. Пример: в нашем проекте с 20 кластерами Thanos Querier отдаёт запросы за 90 дней без изменения PromQL — скорость ответа падает всего на 10% по сравнению с локальными данными.

Критерий Thanos Remote_write (VictoriaMetrics)
Архитектура Sidecar, без замены Prometheus Полная замена Prometheus
Дедупликация Да (через replica label) Нет встроенной
Multi-cluster Нативная федерация через S3 Требует отдельной настройки
Единая точка отказа Нет Да (один backend)

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

Компонент Функция
Sidecar Upload блоки в object storage, отдаёт свежие данные через gRPC
Store Gateway Читает исторические данные из S3
Querier Federated query: Sidecar + Store Gateway
Compactor Компактирует и downsamples блоки
Query Frontend Кэширует PromQL (кеш), разбивает range-запросы на части

Ключевой insight: Sidecar подключается к локальному Prometheus по gRPC и отдаёт свежие данные (в пределах retention) напрямую Querier. Store Gateway отдаёт исторические данные из S3. Querier объединяет оба источника прозрачно — запрос за последние 90 дней работает без изменений.

Как развернуть Thanos за 3–5 дней?

Процесс внедрения включает:

  1. Аудит текущего мониторинга: оценка объёма метрик, retention, стоимости хранения.
  2. Проектирование архитектуры: выбор облачного хранилища, схемы репликации, sizing Store Gateway.
  3. Развёртывание Sidecar рядом с Prometheus в Kubernetes с помощью манифестов.
  4. Настройка Store Gateway и Querier с DNS-based discovery для multi-cluster.
  5. Запуск Compactor с downsampling и retention политиками.
  6. Интеграция с Grafana: подключение Thanos Querier как data source и настройка дашбордов.

Что такое downsampling и как оно снижает затраты?

Downsampling — это понижение разрешения данных: raw-данные (15s) хранятся 30 дней, 5-минутные агрегаты — 90 дней, часовые — 1 год. Это снижает объём хранилища в 5–10 раз без потери трендов. Компактирование объединяет мелкие блоки в крупные, уменьшая количество файлов и ускоряя чтение.

Развёртывание в Kubernetes

Sidecar рядом с Prometheus

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: prometheus
spec:
  replicas: 2
  thanos:
    image: quay.io/thanos/thanos:v0.35.0
    objectStorageConfig:
      key: thanos.yaml
      name: thanos-objstore-config
    externalLabels:
      cluster: prod-eu-west
      replica: $(POD_NAME)

externalLabels критически важны: они позволяют Thanos Querier дедуплицировать данные между репликами. Для S3 используем bucket thanos-metrics-prod с IAM-ролью через IRSA (без статичных ключей).

Store Gateway и Querier

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: thanos-store-gateway
spec:
  replicas: 2
  template:
    spec:
      containers:
        - name: thanos-store
          image: quay.io/thanos/thanos:v0.35.0
          args:
            - store
            - --data-dir=/var/thanos/store
            - --objstore.config-file=/etc/thanos/objstore.yaml
            - --index-cache-size=500MB
            - --chunk-pool-size=2GB
          volumeMounts:
            - name: data
              mountPath: /var/thanos/store
  volumeClaimTemplates:
    - metadata:
        name: data
      spec:
        accessModes: [ReadWriteOnce]
        resources:
          requests:
            storage: 100Gi

--index-cache-size и --chunk-pool-size — ключевые параметры производительности. На кластере с 1TB данных мы рекомендуем увеличить до 2GB и 8GB соответственно.

Querier конфигурируем так:

containers:
  - name: thanos-query
    image: quay.io/thanos/thanos:v0.35.0
    args:
      - query
      - --http-address=0.0.0.0:9090
      - --endpoint=dnssrv+_grpc._tcp.prometheus-operated.monitoring.svc.cluster.local
      - --endpoint=dnssrv+_grpc._tcp.thanos-store-gateway.monitoring.svc.cluster.local
      - --query.replica-label=replica
      - --query.auto-downsampling

--query.replica-label=replica — дедупликация по этому label.

Compactor: retention и downsampling

Compactor — единственный компонент, работающий в одном экземпляре. Он компактирует блоки и выполняет downsampling:

args:
  - compact
  - --wait
  - --wait-interval=5m
  - --objstore.config-file=/etc/thanos/objstore.yaml
  - --data-dir=/var/thanos/compact
  - --retention.resolution-raw=30d
  - --retention.resolution-5m=90d
  - --retention.resolution-1h=1y
  - --compact.concurrency=1
  - --delete-delay=48h

Downsampling: raw-данные (15s) 30 дней → 5-минутные агрегаты 90 дней → часовые 1 год. При запросе за прошлый год Thanos автоматически выбирает нужный resolution через --query.auto-downsampling.

Как настроить multi-cluster мониторинг?

Добавьте endpoints всех sidecar-ов в Querier:

--endpoint=sidecar.prod-eu.example.com:10901
--endpoint=sidecar.prod-us.example.com:10901
--endpoint=store-gateway.thanos.svc:10901

Запрос sum(rate(http_requests_total[5m])) by (cluster) вернёт данные со всех кластеров в одном результате.

Что входит в услугу внедрения Thanos

Мы предлагаем полный цикл: аудит текущей системы мониторинга, проектирование архитектуры, развёртывание компонентов в Kubernetes (sidecar, Store Gateway, Querier, Compactor), настройку IAM и S3, интеграцию с Grafana, документацию и обучение команды. Результат: надёжное долгосрочное хранение метрик с глобальным query-слоем. Наш опыт десяти лет работы с проектами любого масштаба гарантирует качество. Получите консультацию — обсудим ваш сценарий.

Сроки: 3–5 дней для кластера с HA и multi-cluster federation. Стоимость рассчитывается индивидуально после оценки объёма данных. Свяжитесь с нами, чтобы начать.

Официальная документация Thanos

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139