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 днів?
Процес впровадження включає:
- Аудит поточного моніторингу: оцінка обсягу метрик, retention, вартості зберігання.
- Проектування архітектури: вибір хмарного сховища, схеми реплікації, sizing Store Gateway.
- Розгортання Sidecar поряд з Prometheus у Kubernetes за допомогою маніфестів.
- Налаштування Store Gateway і Querier з DNS-based discovery для multi-cluster.
- Запуск Compactor з downsampling і retention політиками.
- Інтеграція з 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 федерацією. Вартість розраховується індивідуально після оцінки обсягу даних. Зв'яжіться з нами, щоб почати.







