System Design Space
Граф знанийНастройки

Обновлено: 24 июня 2026 г. в 17:53

VictoriaMetrics: история и архитектура

средний

Разбор VictoriaMetrics в стиле системного дизайна: база данных временных рядов, длительное хранение метрик, Prometheus-совместимые интерфейсы, vmagent/vminsert/vmstorage/vmselect, кластерный режим и эксплуатационная стоимость.

VictoriaMetrics становится по-настоящему интересной, когда классическому стеку Prometheus уже тяжело из-за масштаба, длительного хранения метрик или дорогих исторических запросов.

В инженерной практике эта глава помогает увидеть, как сжатие, срок хранения, vmagent, vminsert и разделение путей записи и чтения превращаются в экономику мониторинга, а не только в набор технических деталей.

В интервью и архитектурных обсуждениях она особенно полезна, когда нужно объяснить, чем VictoriaMetrics отличается от базового Prometheus-подхода в сценариях, где масштаб и стоимость становятся равноправными требованиями.

Практическая польза главы

Экономика долгосрочных метрик

Проектируйте длительное хранение метрик с учётом сжатия, срока хранения и стоимости чтения исторических диапазонов.

Маршруты записи

Выстраивайте маршруты vmagent/vminsert под всплески входящих метрик и устойчивость к временным отказам.

Изоляция арендаторов

Моделируйте ограничения и квоты арендаторов, чтобы одна команда не ухудшала наблюдаемость для других.

Сравнение подходов

Аргументируйте отличие VictoriaMetrics от классического Prometheus в сценариях масштаба и стоимости.

Рамка выбора и редакторский фокус

Фокус главы

архитектуре VictoriaMetrics и экономичном хранении метрик

Профиль нагрузки

Начинайте с специализированного запроса: аналитика, поиск, временные ряды, графовые обходы, векторное извлечение или мониторинговые метрики.

Когда выбирать

Выбор оправдан, когда модель индекса или хранения напрямую совпадает с продуктовой задачей и разгружает источник истины.

Граница и риск

Опасность — превратить специализированный слой в универсальную БД и потерять границы консистентности, свежести и владения данными.

Связать дальше

Связывайте главу с источником транзакционных данных, конвейером данных, удержанием данных, компакцией и архитектурой слоя модели чтения.

Источник

VictoriaMetrics docs

Официальная документация по архитектуре, компонентам и эксплуатационной модели VictoriaMetrics.

Перейти на сайт

В этой главе VictoriaMetrics рассматривается как и для контура . Главные решения здесь связаны с , , , и .

VictoriaMetrics отвечает на конкретную боль: метрик становится всё больше, хранить их долго дорого, а оперативный контур начинает захлёбываться на высокой кардинальности. Это высокопроизводительная база данных временных рядов с упором на экономичное хранение и масштабируемый контур наблюдаемости. В практической карте баз данных временных рядов её обычно ставят рядом с Prometheus — как хранилище для длительной истории и высокой кардинальности метрик.

История: ключевые вехи

2018

Публичный запуск проекта

VictoriaMetrics выходит как открытая база данных временных рядов — заявка на то, чтобы хранить метрики плотнее и дешевле, чем привычный стек.

2019

Фокус на производительность и плотность хранения

Главный аргумент проекта — стоимость: та же история метрик умещается в меньший объём, поэтому VictoriaMetrics закрепляется как экономичная альтернатива для Prometheus-совместимого мониторинга.

2020

Стабилизация кластерного режима

Архитектура vmselect/vminsert/vmstorage разводит чтение и запись по отдельным ролям — это и есть то, что позволяет масштабироваться горизонтально, а не упираться в один узел.

2021

Рост экосистемы компонентов

Вокруг ядра вырастают vmagent, vmalert и мультиарендность — точки, в которых VictoriaMetrics перестаёт быть просто хранилищем и становится контуром сбора и оповещений.

2023

Массовые эксплуатационные сценарии

Миграция из Prometheus-контуров под длительное хранение метрик становится типовой задачей, а не экзотикой для энтузиастов.

2024+

Эволюция стека наблюдаемости

Кластерное развёртывание, контроль стоимости и встраивание в корпоративный мониторинг превращаются из проектных решений в устоявшуюся практику.

Что делает VictoriaMetrics особенной

Prometheus-совместимый интерфейс

Совместимость с Prometheus API, удалённой записью remote_write и удалённым чтением remote_read значит, что дашборды и алерты переезжают без переписывания — цена входа складывается в основном из настройки записи, а не из новой модели запросов.

Эффективное хранение метрик

Оптимизации хранения и фоновые слияния дают то, ради чего проект и выбирают: длительную историю метрик при заметно меньшем расходе диска. Прямое следствие — предсказуемый счёт за хранение на больших горизонтах.

Кластерная архитектура

Разделение на vmagent/vminsert/vmstorage/vmselect делает путь записи и путь чтения отдельными, наблюдаемыми участками. Когда упирается приём или замедляются запросы, понятно, какую роль масштабировать, а не приходится растить весь узел разом.

Правила и оповещения

vmalert и интеграция с Alertmanager собирают правила записи и правила оповещения в управляемый контур. Сигнал об инциденте при этом живёт рядом с метриками, а не в отдельной разрозненной подсистеме.

Архитектура VictoriaMetrics по слоям

Общий поток можно читать так: приём метрик -> маршрутизация записи -> части данных и фоновые слияния -> параллельное чтение -> правила и оповещения -> внешние интеграции.

Слой приёма метрик
vmagentопрос Prometheusremote_writeпереписывание меток
Переход между слоями
Маршрутизация записи
vminsertмаршрут к шардумаршрут по арендаторураздача на реплики
Переход между слоями
Хранение
vmstorageсжатые части данныхфоновые слиянияочистка по сроку хранения
Переход между слоями
Выполнение запросов
vmselectпараллельное чтениеудаление дублейMetricsQL/PromQL
Переход между слоями
Правила и оповещения
vmalertправила записиправила оповещенияAlertmanager
Переход между слоями
Интеграции и эксплуатация
один узел или кластерGrafanavmauthрезервные копии

Ключевые особенности

VictoriaMetrics оптимизирована под экономичное хранение метрик, Prometheus-совместимые API и рост от одного узла к кластеру.

Сжатие и хранение

Высокая плотность храненияСлияние частей данныхДлительная история метрик

Prometheus-совместимость

PromQL-совместимый APIremote_write и remote_readЭкспорт в Grafana

Масштабирование

Кластерный режимИзоляция арендаторовГоризонтальный рост

Конфигурация и данные в VictoriaMetrics

Как и у большинства баз данных временных рядов, в VictoriaMetrics нет классического слоя языка структурированных запросов (SQL) с командами определения и изменения данных (DDL и DML). Поэтому при разборе системы удобнее держать в голове две разные плоскости: изменения конфигурации и топологии — отдельно, операции с данными (приём точек метрик, запись, хранение, чтение через запросы) — отдельно. Смешивать их при проектировании — верный способ запутаться в том, что и когда меняется.

Как меняются конфигурация и данные в VictoriaMetrics

Конфигурация меняет топологию. Данные проходят путь от приёма точек метрик до чтения запросом.

Интерактивный прогонШаг 1/5

1. Приём точек метрик

Метрики и запросы

vmagent или remote_write отправляет новые значения метрик в точку записи.

2. Разбор и переписывание меток

Метрики и запросы

Точки метрик разбираются, получают нужные метки и готовятся к маршрутизации.

3. Маршрутизация через vminsert

Метрики и запросы

vminsert распределяет поток по узлам vmstorage с учётом хеша и арендатора.

4. Запись и слияние в vmstorage

Метрики и запросы

vmstorage добавляет точки в локальные части данных и фоново объединяет их для чтения.

5. Чтение через vmselect

Метрики и запросы

vmselect параллельно читает шарды, удаляет дубли, агрегирует данные и возвращает результат.

Активный шаг

1. Приём точек метрик

vmagent или remote_write отправляет новые значения метрик в точку записи.

Поток данных и запросов

  • Путь данных покрывает приём точек метрик, хранение, уплотнение и выполнение запросов.
  • В кластерном режиме путь записи и путь чтения масштабируются горизонтально по шардам.
  • Кардинальность меток и перекос по арендаторам определяют задержку и стоимость системы.

Источник

Prometheus docs

Сравнительный контекст для Prometheus-совместимого стека наблюдаемости.

Перейти на сайт

VictoriaMetrics и Prometheus: практическое сравнение

Базовый контур

VictoriaMetrics: Центр тяжести — экономичное хранение и раздельно масштабируемые пути записи и чтения при сохранении совместимости с Prometheus.

Prometheus: Канонический стек мониторинга с моделью опроса, языком запросов PromQL и встроенной базой временных рядов для оперативного контура.

Язык и запросы

VictoriaMetrics: PromQL-совместимые запросы плюс язык запросов MetricsQL, который добавляет функции для эксплуатационной аналитики поверх привычного синтаксиса.

Prometheus: PromQL как базовый язык запросов и анализа временных рядов с фокусом на оповещения и правила записи.

Масштабирование

VictoriaMetrics: Кластерный режим через vminsert/vmstorage/vmselect рассчитан на большие объёмы и длительное хранение метрик — рост закладывается в архитектуру, а не достраивается сбоку.

Prometheus: Чаще развёртывание на одном узле плюс федерация Prometheus или внешнее хранилище для роста.

Операционная модель

VictoriaMetrics: Часто берёт на себя роль единого хранилища метрик в больших платформах наблюдаемости — той точки, куда стекаются данные с многих контуров.

Prometheus: Часто выступает как основной движок опроса и правил с интеграцией внешнего длительного хранилища.

Когда VictoriaMetrics выбирают в эксплуатации

Когда выбор в пользу VictoriaMetrics обоснован — короткие сигналы для системного дизайна:

  • Главный довод в пользу VictoriaMetrics — стоимость: высокая эффективность хранения делает счёт за длительную историю метрик предсказуемым на годы вперёд.
  • Совместимость с Prometheus снижает цену миграции — существующие дашборды и алерты переезжают как есть, и переход не превращается в проект переписывания.
  • Раздельные пути записи и чтения через vmagent/vminsert/vmstorage/vmselect масштабируются по шардам независимо, поэтому узкое место лечится точечно, а не наращиванием всего кластера.
  • Один узел на старте и кластер при росте — переход между режимами даёт маршрут от небольшой установки к крупному развёртыванию без смены технологии.

Источники

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки