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 дней?
Процесс внедрения включает:
- Аудит текущего мониторинга: оценка объёма метрик, 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=48hDownsampling: 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. Стоимость рассчитывается индивидуально после оценки объёма данных. Свяжитесь с нами, чтобы начать.







