Sentry или Datadog: один чинит код, другой объясняет сбой всей инфраструктуры

|Автор: Редакция QUASA|6 мин чтения
Sentry или Datadog: один чинит код, другой объясняет сбой всей инфраструктуры

Если команда чаще расследует исключения в приложении и ищет место исправления в коде, ей ближе Sentry. Если во время сбоя нужно связать задержку запроса с работой нескольких сервисов и узлов, полезнее Datadog. Сравнение Better Stack описывает именно такое разделение задач: Sentry собирает контекст вокруг ошибки и может предложить исправление через Seer, а Datadog охватывает прикладной и инфраструктурный уровни.

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

Где начинается расследование сбоя

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

Datadog связывает сигналы разных уровней: состояние узла, работу сервиса, журналы и трассировку запроса. Обзор TechRadar отмечает возможность сопоставлять сетевые и прикладные данные, а также предупреждает, что добавление модулей и рост объёма данных усложняют бюджет. Такой охват нужен, когда ошибка в приложении может быть лишь видимым следствием задержки в зависимом сервисе или проблемы на узле.

Это различие задаёт выбор по типичному вопросу во время инцидента. Если команда спрашивает, какое исключение получили пользователи и где менять код, прикладной путь Sentry короче. Если она сначала выясняет, какой компонент замедлился и какие соседние сигналы изменились, широта Datadog приносит больше пользы.

Ошибки, журналы и трассировки пересекаются, но считаются по-разному

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

С журналами различие заметно по единицам тарификации. Описание журналов Sentry указывает включённые 5 ГБ в месяц и $0,50 за каждый дополнительный гигабайт; записи можно смотреть в связи с ошибками и трассировками. Для Datadog важно отдельно задать объём принятых журналов и число записей, сохраняемых для поиска. Два сервиса могут отправить одинаковый объём в гигабайтах, но оставить для поиска разное число записей.

Участок трассировки, или спан, описывает отдельную операцию внутри запроса. Запрос к веб-сервису может включать обращение к базе данных и вызов другого сервиса, поэтому число спанов нельзя подменять числом запросов. В Datadog для трассировок важны также объём принятых спанов и число проиндексированных спанов: квота на их сохранение для поиска не означает безлимитный приём.

Какие ставки заложены в модели

Разбор тарифа Sentry Team приводит $26 в месяц при годовой оплате, 50 тысяч включённых событий ошибок, 5 миллионов спанов и 5 ГБ журналов. Платный план допускает участников без отдельной платы за каждое место; расходы сверх квот зависят от вида данных. Для модели используются базовая ставка и доплата за журналы, а все ошибки и спаны в примерах остаются внутри названных квот.

Тарифы Datadog при годовой оплате указывают $15 в месяц за узел инфраструктуры Pro и $31 за узел с базовым мониторингом производительности приложения при подключённом мониторинге инфраструктуры; приём журналов стоит $0,10 за гигабайт, а хранение для поиска миллиона записей на 15 дней — $1,70. Базовый мониторинг приложения включает миллион проиндексированных спанов на узел; для их приёма действует отдельная квота по объёму. Модуль управления инцидентами стоит $30 в месяц за участника, которому нужны права активной работы с инцидентом.

Оба примера — условные месячные модели по указанным ставкам с годовой оплатой, постоянным числом узлов и объёмом принятых спанов внутри квоты Datadog. В них нет налогов, дополнительных метрик, воспроизведения сеансов, превышения квот трассировки и индивидуальных скидок. Строка за управление инцидентами добавляется только там, где такие права действительно нужны.

Небольшой веб-сервис

Предположим, сервис работает на двух наблюдаемых узлах, и оба отправляют трассировки. За месяц он передаёт 20 тысяч событий ошибок, миллион спанов и 10 ГБ журналов без сжатия. Из этих журналов для поиска в Datadog сохраняют миллион записей на 15 дней; с данными наблюдаемости работают четыре разработчика.

В модели Sentry Team ошибки и спаны остаются в пределах включённого объёма. За дополнительные 5 ГБ журналов получается $2,50, вместе с базовым планом — $28,50 в месяц. Четыре разработчика не увеличивают эту сумму за счёт числа мест. Это счёт за выбранный прикладной набор данных, без мониторинга узлов.

Для Datadog два узла дают $30 за инфраструктуру и $62 за мониторинг приложения. Приём 10 ГБ журналов добавляет $1, хранение миллиона записей — $1,70. Миллион проиндексированных спанов укладывается в суммарную квоту двух узлов, поэтому условный итог составляет $94,70 в месяц. Здесь оплачивается и наблюдение за инфраструктурой, которого нет в расчёте Sentry.

Чтение сигналов четырьмя разработчиками само по себе не добавляет в эту модель платные места Datadog. Если каждому нужны права менять состояние инцидента и дополнять его хронологию, четыре места управления инцидентами прибавят $120 в месяц. Это отдельная функция, а не обязательная плата за доступ разработчиков к метрикам и журналам.

Распределённая система

Во втором условном примере инфраструктурные метрики передают 12 узлов, а трассировки приложения — восемь из них. За месяц поступают 40 тысяч событий ошибок, 4 миллиона спанов и 100 ГБ журналов без сжатия. В Datadog для поиска оставляют 20 миллионов журнальных записей на 15 дней. Предполагается, что объём принятых спанов не превышает включённый предел.

У Sentry Team ошибки и спаны снова укладываются в квоты. Сверх включённых 5 ГБ журналов остаётся 95 ГБ: доплата составляет $47,50, а общий условный счёт — $73,50 в месяц. Увеличение потока журналов здесь заметно сильнее влияет на результат, чем количество разработчиков.

У Datadog 12 узлов инфраструктуры дают $180, восемь узлов мониторинга приложения — $248, приём журналов — $10, а хранение записей для поиска — $34. Всего получается $472 в месяц. Четыре миллиона проиндексированных спанов укладываются в суммарную квоту восьми узлов. Если 15 разработчикам нужны места управления инцидентами, это добавит ещё $450; если они только изучают сигналы, этой строки в модели нет.

Итоги этих примеров нельзя читать как цену одинаковых услуг: в расчёт Datadog входят метрики узлов. При изменении нагрузки счёт тоже меняется неодинаково. Новый узел с трассировками затрагивает две узловые строки Datadog, рост журналов влияет на приём и выбранное хранение для поиска, а увеличение потока ошибок или спанов может вывести Sentry за включённые квоты.

Когда оправданы обе платформы

Совместное использование разумно, если разработчикам нужен подробный путь от исключения к исправлению, а команде эксплуатации — связь этого симптома с узлами и зависимыми сервисами. В такой схеме Sentry может собирать ошибки и нужный прикладной контекст, а Datadog — инфраструктурные метрики и те журналы или трассировки, которые помогают локализовать сбой.

Состав данных важнее формального наличия двух подписок. Если отправлять полный поток журналов и трассировок в обе системы, обе будут учитывать его в своих тарифных единицах. Для выбора одной платформы определяющим остаётся вопрос, на который команда чаще не может ответить при сбое: где исправить код приложения или где в цепочке сервисов возникла неисправность.

Читайте также:

Поделиться:

Подпишитесь на рассылку

Получайте свежие новости Web3, AI и криптовалют прямо на вашу почту.

0