Довгострокове зберігання метрик Prometheus через 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 федерацію через спільний S3 bucket. Приклад: у нашому проекті з 20 кластерами Thanos Querier віддає запити за 90 днів без зміни PromQL — швидкість відповіді падає всього на 10% порівняно з локальними даними.

Критерій Thanos Remote_write (VictoriaMetrics)
Архітектура Sidecar, без заміни Prometheus Повна заміна Prometheus
Дедуплікація Так (через replica label) Немає вбудованої
Multi-cluster Нативна федерація через S3 Вимагає окремого налаштування
Єдина точка відмови Ні Так (один backend)

Як працює Thanos

Компонент Функція
Sidecar Завантажує блоки в 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 федерацією. Вартість розраховується індивідуально після оцінки обсягу даних. Зв'яжіться з нами, щоб почати.

Офіційна документація Thanos

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

Останні роботи

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