Чем Grafana отличается от VictoriaMetrics?

«Чем Grafana отличается от VictoriaMetrics?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Это принципиально разные инструменты, которые часто используются вместе в стеке мониторинга.

Аспект Grafana VictoriaMetrics
Основная роль Визуализация и дашборды (Dashboard & Alerting) Хранение и обработка метрик (Time-Series Database - TSDB)
Аналоги Kibana (для логов), Tableau Prometheus, InfluxDB, TimescaleDB
Хранит данные? Нет (за редким исключением локального кэша). Это клиент. Да. Это сервер/база данных.
Запросы Отправляет запросы к TSDB (PromQL, MetricsQL), получает данные, рисует графики. Принимает запросы (PromQL), выполняет их на своих данных и возвращает результаты.
Прием данных Не принимает метрики напрямую от агентов. Принимает метрики по протоколам Prometheus (/metrics, /api/v1/write), InfluxDB, Graphite, OpenTSDB.

Практическая аналогия:

  • VictoriaMetrics — это склад (хранит товары-метрики).
  • Grafana — это витрина и система отчетности (запрашивает товары со склада и красиво их показывает).

Пример типового стека:

  1. Сбор: Node Exporter, application metrics → Pushgateway или прямо в VictoriaMetrics.
  2. Хранение: VictoriaMetrics (как долгосрочное, масштабируемое хранилище).
  3. Визуализация и алертинг: Grafana, который в качестве источника данных (Data Source) указывает на VictoriaMetrics.

Конфигурация источника данных Grafana для VictoriaMetrics (docker-compose пример):

# grafana.datasources.yaml
apiVersion: 1
datasources:
  - name: VictoriaMetrics-Prod
    type: prometheus # VictoriaMetrics использует PromQL-совместимый API
    access: proxy
    url: http://victoriametrics:8428
    isDefault: true
    jsonData:
      timeInterval: 30s
      queryTimeout: 60s
      httpMethod: POST # Рекомендуется для сложных запросов

Таким образом, они не конкуренты, а互补ющие части пазла.