Отметим: когда Prometheus начинает потреблять терабайты диска на коротком retention, а Thanos или Cortex кажутся избыточными, приходит время VictoriaMetrics. Этот TSDB принимает remote_write от любого числа Prometheus, хранит данные годами и тратит в 5–10 раз меньше памяти, чем родной TSDB. По данным официального репозитория на GitHub, сжатие данных в VictoriaMetrics достигает 0.4–0.8 байта на точку — для кластера с 500 000 активных серий это экономия диска до 80% по сравнению с нативным Prometheus. MetricsQL полностью совместим с PromQL, так что ваши дашборды Grafana продолжат работать без изменений.
Мы уже разворачивали VictoriaMetrics для инфраструктур с 2 млн активных серий и запросной нагрузкой 3000 QPS. После перехода время запроса к хранилищу сократилось с 3 с до 50 мс, а затраты на диск упали в 5 раз. Свяжитесь с нами, чтобы получить аналогичные результаты.
Как настроить remote_write между Prometheus и VictoriaMetrics?
Конфигурация сводится к двум шагам. Запускаем VictoriaMetrics:
services:
victoriametrics:
image: victoriametrics/victoria-metrics:v1.101.0
ports:
- "8428:8428"
volumes:
- vm-data:/storage
command:
- -storageDataPath=/storage
- -retentionPeriod=12
- -httpListenAddr=:8428
- -dedup.minScrapeInterval=15s
Добавляем remote_write в Prometheus:
remote_write: - url: http://victoriametrics:8428/api/v1/write queue_config: max_samples_per_send: 10000 max_shards: 8 Всё. Никаких Sidecar, Store Gateway, Distributor, Compactor. VictoriaMetrics сразу получает данные, сразу хранит, сразу отвечает на запросы. Один процесс, один volume. В Grafana — datasource типа Prometheus, URL http://victoriametrics:8428.
Почему VictoriaMetrics эффективнее Prometheus по хранению?
VictoriaMetrics использует свой формат хранения с лучшей компрессией: данные временных рядов с маленькой дельтой между точками сжимаются до 0.4–0.8 байт на точку против 1–2 байт у Prometheus TSDB. На год метрик с 200k активных серий это несколько сотен гигабайт против терабайтов у Prometheus. Дополнительно включена дедупликация duplicate-данных при HA-сборе. Как говорит одна из документаций, VictoriaMetrics достигает таких показателей за счёт битовой компрессии и алгоритма Gorilla.
Single-node или кластер: что выбрать?
| Параметр | Single-node | Кластер (victoriametrics/cluster) |
|---|---|---|
| Макс. ingestion | ~1M samples/sec | >1M samples/sec |
| Отказоустойчивость | Нет встроенной | Да (replicationFactor) |
| Сложность развёртывания | Минимальная | Средняя (4 компонента) |
| Рекомендуемый сценарий | До 5 Prometheus, on-premise | Высоконагруженные системы, облако |
Single-node подходит для большинства on-premise инфраструктур малого и среднего масштаба. Кластер нужен когда ingestion превышает ~1M samples/sec или требуется горизонтальная масштабируемость хранилища.
Кластерная версия
Архитектура кластера:
vmagent (scraping / remote_write forwarding) |
vminsert (ingestion, stateless, N replicas) |
vmstorage (хранение, StatefulSet, шардинг по label hash) |
vmselect (query, stateless, N replicas)Развёртывается через Helm:
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm install victoria-metrics-cluster vm/victoria-metrics-cluster \
-f values.yaml \
--namespace monitoringКлючевые параметры values.yaml:
vmstorage:
replicaCount: 2
persistentVolume:
size: 500Gi
extraArgs:
retentionPeriod: "12"
dedup.minScrapeInterval: "15s"
vminsert:
replicaCount: 2
extraArgs:
replicationFactor: "2"
vmselect:
replicaCount: 2
extraArgs:
dedup.minScrapeInterval: "15s"replicationFactor: 2 — каждая точка данных записывается на 2 vmstorage ноды. dedup.minScrapeInterval должен совпадать на insert и select.
Типичные ошибки при внедрении VictoriaMetrics
- Не настроена дедупликация. Если два экземпляра Prometheus скрейпят одни и те же таргеты, дубликаты накапливаются. Обязательно укажите
-dedup.minScrapeIntervalна storage и select. - Неправильный retention. Задайте
-retentionPeriodв месяцах, иначе по умолчанию данные хранятся всего 30 дней. - Отсутствие мониторинга самой VictoriaMetrics. Установите официальный Grafana dashboard ID
10229, отслеживайтеvm_rows_ignored_total(out-of-order точки) иvm_slow_row_inserts_total. - Игнорирование параметров очереди remote_write. При большом потоке увеличьте
max_shardsиmax_samples_per_send, чтобы избежать задержек.
Что входит в работу по внедрению?
- Аудит текущей системы мониторинга (Prometheus, таргеты, retention, нагрузка).
- Проектирование архитектуры: single-node или кластер, расчёт storage.
- Развёртывание VictoriaMetrics (docker-compose, Helm или bare metal).
- Настройка remote_write на всех Prometheus-инстансах.
- Мониторинг VictoriaMetrics: дашборды Grafana, алерты (например, низкий free disk).
- Миграция исторических данных из Prometheus с помощью
vmctl. - Обучение команды администрированию и типовым операциям.
- Передача документации: схемы, runbook по инцидентам, конфигурации.
Сроки и стоимость
Сроки: от 2 до 5 рабочих дней в зависимости от сложности (количество инстансов, объём данных, необходимость миграции). Стоимость рассчитывается индивидуально после аудита. Закажите консультацию — мы оценим вашу инфраструктуру и подберём оптимальное решение. Наш опыт: 5+ лет на рынке, десятки внедрений VictoriaMetrics в production. Сертифицированные инженеры гарантируют надёжность и производительность.
Пример расчёта экономии
| Метрика | Prometheus TSDB (год) | VictoriaMetrics (год) | Экономия |
|---|---|---|---|
| 500 000 серий, 15s scrape | 4.5 TB | 0.9 TB | 80% |
| 2 млн серий, 30s scrape | 10 TB | 2 TB | 80% |
Критерии выбора VictoriaMetrics
Для большинства on-premise инфраструктур малого и среднего масштаба (до 5–10 Prometheus инстансов, до нескольких миллионов активных серий) single-node VictoriaMetrics — самый простой и эффективный путь. Кластер рекомендуется при необходимости горизонтального масштабирования или высокой отказоустойчивости. VictoriaMetrics также отлично работает как замена Thanos в облачных средах (AWS, GCP, Yandex Cloud).
Получите консультацию — мы поможем выбрать конфигурацию, развернём систему и настроим мониторинг от начала до конца.







