8 мин чтенияИнтеграции

Мониторинг URL в Datadog

Мониторинг URL в Datadog для коротких ссылок: логи и метрики кликов, которые шлёт Elido, дашборд задержки редиректа на Synthetics.

Marius Voß
DevRel · edge infra

Мониторинг URL в Datadog для коротких ссылок Elido строится на двух источниках. Сам Elido отправляет данные о кликах: один лог на клик в приёмник Datadog Logs плюс три метрики числа кликов, сбрасываемые каждые 60 секунд. Задержку редиректа и коды статуса он не отправляет. Для них вы направляете HTTP-тест Datadog Synthetics на канареечную короткую ссылку, и дашборд задержки редиректа, мониторы и SLO стоят на этой паре.

Это разделение и есть весь замысел. Сторона кликов говорит, сколько людей прошло по вашим ссылкам и откуда, а синтетическая сторона - ответил ли редирект, как быстро и с каким статусом. Этот материал описывает точные формы метрик и логов, как их подключить, что поставить на дашборд и где всё это заканчивается.

Если вы здесь из-за задержки, сначала прочтите как работает бюджет p95 до 15 мс. Он объясняет, как выглядит здоровое число, прежде чем вы выберете порог.

Что на самом деле Elido отправляет в Datadog

Каждый клик в подключённом рабочем пространстве идёт двумя путями. Путь логов отправляет пакет из одной записи на https://http-intake.logs.<site>/api/v2/logs сразу после записи клика. Путь метрик увеличивает счётчик в памяти, а сбрасыватель раз в минуту отправляет значения на https://api.<site>/api/v2/series. Оба аутентифицируются заголовком DD-API-KEY.

СигналИмя в DatadogПериодичностьТеги и поля
Лог кликаsource:elido, сообщение начинается с link_clickОдин на кликworkspace_id, link_id, slug, country, device, destination, ip, timestamp
Число кликовelido.clicksКаждые 60 сworkspace_id, vendor:elido
Клики по странамelido.clicks_by_countryКаждые 60 свыше плюс country
Клики по устройствамelido.clicks_by_deviceКаждые 60 свыше плюс device

Метрики - gauge, и значение - это число кликов, учтённых с предыдущего сброса. Точка 37 означает 37 кликов примерно за последнюю минуту. Это естественная единица для операционного графика, и это значит, что для итогов вы суммируете по времени, а не применяете as_count(). Обратите внимание, чего нет: у метрик нет тегов link_id и slug. Я бы назвал это разумным решением по стоимости, потому что Datadog тарифицирует пользовательские метрики по числу уникальных комбинаций тегов, а тег слага в загруженном рабочем пространстве умножил бы число рядов на число ссылок.

Лог тоже несёт link_id как тег Datadog и помечен service:click-ingester с хостом elido-edge, так что именно это имя сервиса нужно фильтровать. Поля приходят вложенными в объект attributes, поэтому в Log Explorer фасеты выглядят как @attributes.slug и @attributes.country. Раскройте один лог, прежде чем что-то строить. Десять секунд, которые избавят от сломанного запроса.

Подключение Datadog в рабочем пространстве Elido

Настройка состоит из двух полей. Нужны API-ключ Datadog (не ключ приложения) и сайт, на котором работает ваша организация.

  1. В Datadog откройте Organization Settings, затем API Keys и создайте ключ с именем вроде elido-forwarder.
  2. Проверьте свой сайт. Руководство по сайтам Datadog сопоставляет каждый URL входа с сайтом; app.datadoghq.eu означает, что вы вводите datadoghq.eu, а us5.datadoghq.com означает, что вы вводите ровно его.
  3. В Elido откройте Integrations, выберите Datadog, вставьте ключ, введите сайт и сохраните. Ключ шифруется при хранении.
  4. Подождите до пяти минут, потому что пересылающий сервис кэширует настройки интеграции рабочего пространства, затем кликните по одной из своих ссылок с телефона и найдите source:elido в Log Explorer.

Оставьте сайт пустым, и Elido предположит datadoghq.com. Для организации из ЕС это классический тихий сбой. Опечатка даёт то же самое. Каждый POST падает, и никто не видит ошибки.

Кнопка Test connection отправляет один тестовый лог (помеченный elido_test: true) на ваш сайт Datadog и показывает ответ Datadog, поэтому неверный ключ или сайт падает прямо здесь с 403 от Datadog. Успех доказывает, что ключ работает, но не то, что ваши пайплайны и индексы сохраняют логи, поэтому настоящее доказательство - всё равно лог клика, появившийся в системе. То же правило, что и для пересылки кликов в Mixpanel: настоящий клик, иначе считайте, что ничего не было.

Построение дашборда задержки редиректа, который измеряет шаг

Поскольку Elido не отправляет тайминги, данные о задержке должны приходить от того, что делает запросы. HTTP-тест Datadog Synthetics - подходящий инструмент, и он измеряет то, что ощущает посетитель, включая DNS и TLS.

Поток данных мониторинга URL в Datadog: клики настоящих посетителей идут через редирект Elido и пересылаются как логи кликов и поминутная метрика elido.clicks, а проба Datadog Synthetics запрашивает канареечную короткую ссылку с выключенными редиректами и записывает статус и время ответа.

Вот тест, который я настраиваю в каждом рабочем пространстве:

  • URL: отдельная канареечная ссылка, лучше на вашем собственном домене, указывающая на что-то скучное и стабильное.
  • Следование редиректам: выключено. Если включить, вы измеряете свой лендинг, и медленная картинка в шапке разбудит вас в 3 часа ночи из-за редиректа, который был в порядке.
  • Проверки: код статуса 302 (по умолчанию; используйте 301 или 307, если задали их, а компромисс объясняет материал 301 и 302), заголовок location содержит ваш адрес назначения, а время ответа ниже порога.
  • Локации: минимум три, одна из них в регионе ЕС, где ваша аудитория. Запуск каждую минуту.
  • Заголовок: User-Agent, содержащий bot, чтобы Elido счёл пробу ботом и пропустил событие клика.

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

Затем дашборду нужны четыре виджета. Время ответа по локациям как временной ряд синтетического теста. Доля пройденных проверок. Клики в минуту из elido.clicks. И топ стран.

# Clicks per minute across the workspace (gaps become zeros)
default_zero(sum:elido.clicks{workspace_id:42})

# Hourly click totals
sum:elido.clicks{workspace_id:42}.rollup(sum, 3600)

# Top 10 countries over the dashboard window
top(sum:elido.clicks_by_country{workspace_id:42} by {country}, 10, 'sum', 'desc')

Зачем default_zero? Потому что минута без кликов не даёт точки вовсе, и без функции интерполяции Datadog проводит прямую линию через разрыв. Эта линия врёт.

Мониторы для падения кликов и сломанных коротких ссылок

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

Редирект сломан или медленный. Синтетический тест уже сам является монитором. Поднимайте алерт, когда два или больше местоположений падают в одном запуске, чтобы одна нестабильная проба региона никого не будила. Любой ответ, кроме вашего 302, не проходит проверку статуса, поэтому удалённая, истёкшая или приостановленная канареечная ссылка проявится здесь как 404 или 410.

Трафик остановился. Создайте метрический монитор на sum:elido.clicks{workspace_id:42} и включите уведомление об отсутствии данных, скажем, через 30 минут. Поскольку Elido ничего не шлёт в тихую минуту, "нет данных" здесь действительно значит "нет кликов", а это именно то событие, которое важно во время кампании.

Трафик странный. Монитор аномалий на той же метрике с направлением "ниже" ловит кампанию, которая обычно даёт 4000 кликов в час, а вдруг даёт 200. Я видел этот сценарий трижды, и каждый раз причина лежала вне ссылки: отклонённое объявление, рассылка, ушедшая не тому сегменту, QR-плакат за строительными лесами. Дайте ему пару недель истории, прежде чем доверять его границам.

Нужны алерты по отдельным ссылкам? Метрики этого не умеют, а логи умеют. Создайте метрику на основе логов из source:elido, сгруппированную по @attributes.slug, и получите число кликов по слагам, которое можно мониторить. Ограничьте её отфильтрованным набором слагов кампаний, иначе цена кардинальности вернётся через чёрный ход.

SLO, который можно защитить

Цель уровня сервиса для короткой ссылки что-то значит, только если её источник измеряет редирект. Стройте её на синтетическом тесте. Подойдёт SLO на основе монитора, где единственный такой тест служит монитором.

Макет дашборда задержки редиректа в Datadog: синтетическое время ответа по локациям, доля пройденных проверок, elido.clicks в минуту с default_zero, топ стран из elido.clicks_by_country, три монитора на сломанный редирект.

Я бы начал с 99.9% за 30 дней. Это около 43 минут неудачных проверок в месяц, и такой бюджет можно объяснить руководителю маркетинга одним предложением. Не стройте его на объёме кликов. Клики измеряют спрос, а не здоровье; ссылка, по которой никто не кликает, прекрасно доступна.

Если ровной линии на этом виджете SLO вам и не хватало, заведите рабочее пространство, направьте канарейку на свой домен и запустите на неделю, прежде чем ставить цель.

Elido на своём хостинге: сбор счётчиков редиректа

Если вы запускаете сервис редиректа сами (возможно только как развертывание по контракту Enterprise в вашей инфраструктуре; Elido не продаётся как скачиваемый продукт для самостоятельного хостинга), появляется ещё один источник. Сервис редиректа отдаёт эндпоинт Prometheus на /metrics, и проверка OpenMetrics агента Datadog может его собирать. Полезный ряд - elido_edge_redirect_total, счётчик с метками fleet и outcome, где исходы включают ok, notfound, expired, paused, disabled, blocked, capped и error.

Это даёт то, чего не даёт интеграция SaaS: реальную долю 404 по всему трафику, вычисляемую как notfound к общему числу. Второй счётчик, edge_redirect_clicks_filtered_bot_total, показывает, сколько редиректов отдано ботам без события клика. Гистограммы задержки на этом эндпоинте нет. Задержка по-прежнему берётся из Synthetics, на своём хостинге или нет. Где этот эндпоинт находится в развёртывании, описывает плейбук самостоятельного хостинга на k3s.

Где интеграция Datadog заканчивается

Теперь ограничения, о которые вы споткнётесь первыми.

Доставка best effort и идёт из конвейера кликов, поэтому может отставать от редиректа на мгновение. Неудачный POST лога повторяется один раз через секунду и затем отбрасывается. Неудачный сброс метрик не повторяется вовсе; эта минута потеряна, и следующее окно начинается с чистого листа. Относитесь к elido.clicks как к линии тренда и сверяйте итоги с собственной аналитикой кликов Elido, которая является источником истины.

Логи несут IP посетителя и полный URL назначения, включая UTM-метки. Если ваша организация Datadog в США, это персональные данные, покидающие ЕС, а как это взвесить, разбирает руководство по резидентности данных в ЕС для маркетинговых команд. Как минимум выбирайте сайт ЕС, если он у вас есть.

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

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

Страницы документации Datadog, на которые даны ссылки выше, просмотрены 2026-10-25. Бюджет задержки за редиректом описан в материале о p95 до 15 мс.

Связанные материалы в блоге

Частые вопросы

Можно ли мониторить короткие ссылки в Datadog?

Да, с двух сторон. Elido пересылает каждый клик в Datadog как лог и отправляет счётчики кликов по минутам как метрики, что покрывает объём трафика. Для доступности и задержки вы добавляете HTTP-тест Datadog Synthetics на канареечную короткую ссылку, который измеряет редирект снаружи так, как его видит посетитель.

Какие метрики Elido отправляет в Datadog?

Три метрики-gauge, сбрасываемые раз в минуту на рабочее пространство: elido.clicks с числом кликов за окно, elido.clicks_by_country с тегом страны и elido.clicks_by_device с тегом устройства. Все несут теги workspace_id и vendor:elido. Помимо них каждый клик отправляется как лог с source elido.

Отправляет ли Elido в Datadog задержку редиректа?

Нет. Интеграция отправляет клики, а не тайминги, и метрик задержки или кода статуса в нагрузке нет. Стройте дашборд задержки редиректа по HTTP-тесту Datadog Synthetics с отключённым следованием редиректам, чтобы время ответа на графике было временем самого шага редиректа, а не вашего лендинга.

Какой сайт Datadog должно использовать рабочее пространство в ЕС?

Используйте сайт, на котором живёт ваша организация Datadog, указанный как голый домен, например datadoghq.eu для сайта ЕС. Если оставить поле пустым, Elido подставляет datadoghq.com, сайт США, и организация из ЕС ничего из попавшего туда не увидит.

Почему метрика кликов Elido показывает отсутствие данных, а не ноль?

Elido отправляет точку только за минуту, в которую у рабочего пространства был хотя бы один клик. Тихая минута не даёт точки вовсе, поэтому Datadog показывает разрыв. Оборачивайте запрос в default_zero() на дашбордах и используйте алерт на отсутствие данных, когда хотите поймать полную остановку трафика.

Считаются ли синтетические проверки Datadog кликами в Elido?

Могут. Elido пропускает событие клика для user-agent из своего списка ботов, например содержащих слово bot или распространённые HTTP-библиотеки. Задайте в синтетическом тесте собственный заголовок User-Agent со словом bot и направьте тест на отдельную канареечную ссылку, чтобы пробы никогда не раздували цифры кампаний.

Попробуйте Elido

Вставьте URL - получите короткую ссылку

Без регистрации. Ссылка живёт 30 дней. Зарегистрируйтесь, чтобы оставить её навсегда.

Без регистрации. Зарегистрируйтесь бесплатно и получите 50 ссылок в месяц.

Попробуйте Elido

URL-сокращатель с хостингом в ЕС: собственные домены, глубокая аналитика, открытый API. Бесплатный тариф - без банковской карты.

Теги
datadog url monitoring
redirect latency dashboard
monitor short links in datadog
datadog synthetic monitoring
datadog slo for redirects
short link click metrics

Читать дальше