Prometheus + Grafana: стек мониторинга, который не сожрёт ваш бюджет

Datadog присылает счёт на $5,000 в месяц. New Relic радует $3,500. "Почему мониторинг стоит как зарплата двух инженеров?" — спрашиваете вы финдира. "Есть бесплатная альтернатива," — отвечает DevOps. "Prometheus + Grafana, open source, zero licensing costs." Звучит отлично, правда?

Через три месяца выясняется: "бесплатный" мониторинг требует выделенного SRE на полставки ($75,000/год), VPS за $200/месяц для хранения метрик, и проблемы с хранением данных которые никто не может решить. Полная стоимость владения оказывается не таким уж бесплатным.

Но история не заканчивается тут. Исследования показывают что правильно настроенный Prometheus + Grafana всё равно дешевле коммерческих решений в 3-5 раз для типичных сценариев. Ключевое слово — "правильно настроенный".

Эта статья — честное сравнение Prometheus + Grafana против Datadog/New Relic. Реальные затраты (не только инфраструктура), когда собственный хостинг выгоден, когда лучше платить за управляемый сервис, и как не провалить миграцию с коммерческого мониторинга.

Почему все хвалят Prometheus + Grafana

Открытый исходный код. Prometheus и Grafana — оба бесплатные проекты с открытым кодом. Скачал, установил, работает. Никаких лицензионных сборов, никаких ограничений на число метрик или хостов.

Стандарт индустрии для Kubernetes. Prometheus стал де-факто стандартом для мониторинга контейнеров. Встроенная интеграция с Kubernetes, автоматическое обнаружение сервисов работает из коробки, все экспортеры доступны.

Мощный язык запросов. PromQL позволяет делать сложные агрегации и вычисления. Процентили, вычисление скоростей, предсказания — всё встроено.

Гибкость визуализации. Grafana подключается к любому источнику данных. Prometheus, InfluxDB, Elasticsearch, PostgreSQL — всё на одной панели. Сообщество создало тысячи готовых дашбордов для популярных сервисов.

Отсутствие привязки к вендору. Данные хранятся локально, в стандартном формате. Захотели мигрировать — мигрируете куда угодно. С Datadog или New Relic миграция означает переписывание всех дашбордов и правил оповещений.

Реальная стоимость: не только инфраструктура

Datadog любит говорить что Prometheus "бесплатный но expensive to operate." Они правы, но давайте посчитаем честно.

Прямые инфраструктурные расходы

VPS для Prometheus. Минимум 4GB памяти для небольшого развёртывания (10-20 целей). Для 50-100 целей нужно 8-16GB. Типичная настройка: $40-80/месяц на Hetzner, DigitalOcean, Vultr.

Хранение данных. Prometheus хранит метрики локально. Хранение 15-30 дней обычно помещается в 50-100GB SSD. Для долгосрочного хранения нужны Thanos или Cortex, добавляющие расходы на S3 (~$5-10/месяц за 100GB).

Сервер Grafana. Можно запустить на том же VPS что Prometheus (совместный хостинг), или отдельно. Grafana легковесна, 1-2GB памяти достаточно. Совместное развёртывание экономит $10-20/месяц.

Alertmanager и дополнительные сервисы. Еще 1-2GB памяти. Обычно умещается на основной VPS.

Итого инфраструктура: $50-100/месяц для небольшого и среднего развёртывания (до 100 хостов/контейнеров).

Скрытые расходы: инженерное время

Начальная настройка. Конфигурация Prometheus, дашборды Grafana, правила оповещений. Первый раз занимает 20-40 часов для опытного инженера. Если учиться с нуля — добавьте 40-60 часов.

Обслуживание. Обновления Prometheus, управление дисковым пространством, решение проблем производительности. Аналитика показывает: 1-2 часа в неделю для стабильной системы. Это 50-100 часов в год.

Инциденты и отладка. Когда что-то ломается — нужно разбираться самостоятельно. Сообщество помогает, но ответственность на вас. Бюджетируйте 20-30 часов в год на диагностику проблем.

Если час senior SRE стоит $75-100, инженерное время обходится в $7,500-13,000 в год или ~$625-1,080/месяц.

Полная стоимость владения: честное сравнение

Собственный хостинг Prometheus + Grafana: $50-100/месяц инфраструктура + $625-1,080 инженерного времени = $675-1,180/месяц.

Для сравнения, Datadog для 20 хостов: ~$400/месяц базовый план + APM + logs легко вырастает до $1,500-2,500/месяц.

Экономия существует, но она не "free vs paid." Реально — в 2-3 раза дешевле при правильной настройке.

Когда Prometheus + Grafana выгоден

У вас Kubernetes или контейнеры. Prometheus создавался для этого. Native integration, лучший tooling, все metrics exporters доступны. Для Kubernetes это де-факто standard.

Есть DevOps/SRE ресурсы. Кто-то должен настраивать, поддерживать, troubleshoot. Если такого человека нет — инвестиция в Prometheus превратится в headache.

Нужна гибкость и кастомизация. Специфичные метрики, custom exporters, интеграция с внутренними системами. Коммерческие решения часто ограничивают кастомизацию.

Бюджет ограничен. Стартапы, некоммерческие организации, small businesses. Разница между $100 и $2,000 в месяц критична.

Данные должны остаться внутри. Compliance, regulations, paranoia. Self-hosted означает данные под вашим контролем.

Много данных/метрик. С коммерческими решениями стоимость растёт с объёмом. У Prometheus нет оплаты за метрику — только расходы на инфраструктуру.

Реальный кейс: миграция с Datadog

Компания с 80 EC2 инстансов платила Datadog $4,200/месяц. Мигрировали на Prometheus + Grafana:

Инфраструктура: $120/месяц (выделенный VPS 16GB + хранилище S3) Инженерное время: ~60 часов начальной настройки + 6 часов в месяц обслуживания Экономия: ~$3,500/месяц = $42,000/год

Инвестиция окупилась за два месяца.

Когда лучше платить за Datadog/New Relic

Нет DevOps экспертизы. Если некому настраивать и поддерживать, управляемый сервис дешевле чем найм SRE ($150,000+/год).

Нужна готовая функциональность. APM с трассировкой на уровне кода, мониторинг реальных пользователей, синтетические тесты. Prometheus это не делает изначально, нужны дополнительные инструменты.

Критична скорость внедрения. Datadog работает через 15 минут после установки агента. Prometheus требует конфигурации, дашбордов, правил оповещений.

Небольшая инфраструктура. Для 5-10 серверов бесплатный уровень Datadog или минимальный план ($200-300/месяц) может быть дешевле чем инженерное время на Prometheus.

Нужна интеграция всего. Datadog поддерживает 600+ интеграций, работающих из коробки. Prometheus требует находить или писать экспортеры.

Мультиоблачность с разными сервисами. AWS, Azure, GCP, собственная инфраструктура — всё на одной панели. С Prometheus придётся собирать стек из нескольких инструментов.

Ограничения Prometheus: что нужно знать

Prometheus одноузловой по дизайну. Не распределённая база данных. Это означает ограничения масштабируемости. Один экземпляр Prometheus справляется с 100,000-200,000 временных рядов, потом начинает тормозить.

Решение: федерация (несколько экземпляров Prometheus) или Thanos/Cortex для горизонтального масштабирования. Но это добавляет сложность.

Нет долгосрочного хранения. Prometheus хранит данные локально на диске, период хранения обычно 15-30 дней. Для исторических данных нужно внешнее хранилище (Thanos, Cortex, VictoriaMetrics).

Модель pull может быть проблемой. Prometheus опрашивает цели. Если цель за NAT или файрволом, нужны обходные пути (pushgateway, обратные прокси).

Нет встроенных логов. Prometheus только метрики. Для логов нужен Loki (стек Grafana) или ELK. Datadog делает метрики + логи + трассировки в одном инструменте.

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

Масштабирование Prometheus: от простого к сложному

Этап 1: Одиночный экземпляр (до 100K временных рядов)

Один сервер Prometheus, одна Grafana. Всё на одном VPS 8-16GB памяти. Хранение 15 дней. Простая конфигурация, легко поддерживать.

Подходит для: небольших развёртываний, стартапов, одиночного кластера Kubernetes.

Этап 2: Федерация (100K-500K временных рядов)

Несколько экземпляров Prometheus, каждый собирает данные с части инфраструктуры. Центральный экземпляр Prometheus собирает агрегированные данные через федерацию.

Сложность увеличивается: нужно управлять несколькими экземплярами, конфигурировать правила федерации.

Этап 3: Thanos или Cortex (500K+ временных рядов)

Распределённое долгосрочное хранение. Thanos сохраняет данные в S3/GCS, даёт неограниченное хранение и глобальный обзор по экземплярам Prometheus.

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

Это уже готовая к продакшену конфигурация требующая серьёзной операционной экспертизы.

Альтернатива: управляемый Prometheus в Grafana Cloud

Grafana Cloud предлагает управляемый Prometheus от $29/месяц. Устраняет операционные накладные расходы, но добавляет затраты на основе использования.

Ценообразование: $6.50 за 1,000 активных рядов (низкое разрешение) или $16 (высокое разрешение).

Для 50,000 активных рядов: ~$325-800/месяц. Дешевле Datadog, но дороже собственного хостинга.

Grafana: визуализация без ограничений

Grafana бесплатна с открытым исходным кодом. Неограниченные дашборды, неограниченные пользователи, неограниченные источники данных.

Grafana Cloud vs собственный хостинг

Собственный хостинг Grafana: бесплатно, но вы управляете сервером, обновлениями, резервными копиями. Для небольших команд это тривиально.

Бесплатный уровень Grafana Cloud: 10K рядов метрик, 50GB логов, 3 пользователя, хранение 14 дней. Достаточно для тестирования.

Grafana Cloud Pro: $19/месяц базовый + использование ($8 за активного пользователя, $6.50 за 1K рядов).

Enterprise: $299/месяц + использование. Корпоративные плагины, поддержка 24/7.

Большинство компаний используют собственный хостинг Grafana даже если применяют управляемый Prometheus. Grafana легковесна и проста в управлении.

Дашборды сообщества экономят время

Библиотека дашбордов Grafana содержит тысячи готовых дашбордов. Node Exporter, Kubernetes, PostgreSQL, Nginx — всё есть.

Импортируйте дашборд по ID, подключите источник данных — готово. Экономия часов на создании дашбордов с нуля.

Экспортеры Prometheus: метрики для всего

Экспортер собирает метрики из системы и предоставляет в формате Prometheus. Официальные экспортеры существуют для:

Node Exporter — системные метрики (CPU, память, диск, сеть) Blackbox Exporter — проверка доступности HTTP/TCP/ICMP Экспортеры MySQL/PostgreSQL — метрики баз данных Экспортеры Nginx/Apache — статистика веб-серверов Kubernetes — встроенный, работает изначально

Сообщество создало экспортеры для сотен систем. Нет нужного? Написать собственный экспортер на Go или Python занимает 2-4 часа.

Миграция с Datadog/New Relic: практический план

Подготовка (неделя 1-2)

Инвентаризируйте что мониторите. Какие метрики критичны? Какие дашборды используются ежедневно? Какие правила оповещений настроены?

Создайте тестовое окружение Prometheus. Не мигрируйте продакшен сразу. Протестируйте на разработке и тестовой среде.

Настройте базовые экспортеры. Node exporter на всех хостах, специфичные для приложений экспортеры где нужны.

Параллельный запуск (неделя 3-4)

Запустите Prometheus параллельно с Datadog. Собирайте одни данные в обе системы. Это позволяет сравнить и убедиться что ничего не пропущено.

Воссоздайте критичные дашборды в Grafana. Начните с самых важных, остальное добавите позже.

Настройте оповещения в Alertmanager. Дублируйте правила которые есть в Datadog/New Relic.

Переход (неделя 5-6)

Переключите оповещения на Prometheus. Но держите правила Datadog как запасной вариант.

Переведите команду на дашборды Grafana. Обучите как использовать, где искать данные.

Мониторьте обе системы неделю-две. Ищите пробелы, пропущенные данные, ложные срабатывания в оповещениях.

Отключение старого (неделя 7+)

Когда уверены что Prometheus покрывает всё — отключайте агенты Datadog/New Relic.

Экспортируйте исторические данные если нужны (API Datadog позволяет экспорт).

Отпразднуйте экономию затрат.

Alertmanager: оповещения без привязки к вендору

Prometheus Alertmanager управляет оповещениями. Маршрутизация, группировка, заглушение, подавление — всё настраивается через YAML конфигурацию.

Интеграции: Email, Slack, PagerDuty, Opsgenie, веб-хуки. Всё что вам нужно поддерживается.

Преимущество: правила определены в коде (инфраструктура как код). Версионируются, воспроизводимы, проходят ревью.

Недостаток: нет GUI для создания правил. Нужно писать YAML и PromQL запросы. Кривая обучения.

Loki для логов: дополнение к Prometheus

Prometheus — только метрики. Для логов добавьте Loki.

Loki создан Grafana Labs как "Prometheus для логов." Похожая архитектура, индексация на основе меток, язык запросов похожий на PromQL (LogQL).

Преимущества Loki:

Дешёвое хранение. Индексирует только метки, не весь текст. Хранилище S3 стоит копейки. Интеграция с Grafana. Логи и метрики на одной панели, корреляция простая. Дружелюбен к Kubernetes. Извлечение меток из метаданных подов автоматическое.

Недостатки:

Меньше возможностей чем ELK. Полнотекстовый поиск ограничен, аналитика слабее. Меньше сообщество чем Elasticsearch.

Для большинства сценариев Loki достаточен. Для сложной аналитики логов рассмотрите ELK.

Лицензирование AGPLv3: важное изменение

Grafana, Loki, Tempo перешли на AGPLv3 в 2021. Это copyleft лицензия требующая что модификации кода должны быть опубликованы с открытым кодом.

Для большинства пользователей это не проблема — вы используете программное обеспечение как есть, не модифицируете.

Проблема если: модифицируете код и предлагаете как сервис. AGPLv3 требует публиковать изменения.

Prometheus остаётся под лицензией Apache 2.0 (разрешительная).

Практики для продакшена

Планирование хранения. Определите сколько дней хранения данных нужно. 15-30 дней в Prometheus, долгосрочное в Thanos/S3.

Высокая доступность. Запустите два экземпляра Prometheus, собирающих одни данные. Если один падает, второй работает. Alertmanager автоматически убирает дубликаты оповещений.

Резервное копирование конфигурации. Конфигурация Prometheus, дашборды Grafana, правила оповещений — всё в git. Версионируйте, делайте резервные копии.

Мониторинг мониторинга. Используйте внешнюю проверку (например, Uptime Robot) для контроля доступности Grafana. Иначе как узнаете что мониторинг упал?

Ограничения ресурсов. Настройте лимиты CPU/памяти для Prometheus в Kubernetes. Неограниченное использование памяти может убить узел.

Регулярные обновления. Prometheus и Grafana активно развиваются. Патчи безопасности, новые возможности, исправления ошибок. Обновляйте хотя бы раз в квартал.

Главные выводы

Prometheus + Grafana действительно дешевле коммерческих решений. Но "бесплатно" это миф. Реальная экономия 2-3x после учёта инженерного времени.

Собственный хостинг оправдан когда есть DevOps expertise, Kubernetes/контейнеры, нужна гибкость или много метрик. Для небольших команд без экспертизы управляемый сервис может быть дешевле по полной стоимости.

Операционные накладные расходы реальны. Начальная настройка 20-40 часов, текущее обслуживание 50-100 часов в год. Бюджетируйте время или готовьтесь к проблемам.

Prometheus имеет ограничения. Ограничения масштабирования одного узла, нет встроенных логов, кривая обучения на PromQL. Знайте что выбираете.

Grafana Cloud — компромисс между собственным хостингом и Datadog. Управляемая инфраструктура, ценообразование на основе использования, но дешевле коммерческих альтернатив.

Миграция с Datadog/New Relic требует планирования. Параллельный запуск, воссоздание дашбордов и правил, обучение команды. Бюджетируйте 4-8 недель.

Стек Prometheus + Grafana + Loki даёт полную наблюдаемость (метрики + логи) за долю стоимости коммерческих решений. Но требует инвестиций в экспертизу и инфраструктуру.

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