Оглавление12 разделов
Дашборд может обновляться каждую минуту и всё равно показывать вчерашнюю реальность. Freshness SLA описывает не частоту перерисовки, а путь события от возникновения до доступности в конкретной метрике. Для управления рекламой нужно знать минимум четыре времени: event, ingestion, processing и report availability. Без них падение FTD неотличимо от задержки postback или пересчёта витрины.
Fresh не значит matureСвежая строка быстро появилась в отчёте; зрелая строка с высокой вероятностью уже получила ожидаемые поздние события и корректировки. Это разные свойства.
1. Назовите часы
Event time приходит от источника, received time ставит приёмник, processed time — обработчик, available time — витрина. Все значения хранятся с часовым поясом или в UTC и конвертируются только для представления.
Если источник присылает время без зоны или с неверными часами, поле получает quality flag. Молчаливое исправление по текущему времени скрывает проблему.
2. Разложите задержку
Total freshness lag = доставка + очередь + обработка + публикация. Для каждого компонента есть владелец и наблюдаемый идентификатор batch или trace.
Общий p95 полезен для обещания, но расследование требует распределения по источнику, типу события и часу.
3. Определите SLI
Пример SLI: доля событий, доступных в витрине не позднее 10 минут после received time. Другой SLI — возраст последнего успешно обработанного event time. Они отвечают на разные вопросы и могут расходиться при редком потоке.
На источнике с нулевыми событиями нельзя измерить процент своевременной доставки; нужен heartbeat или синтетический контроль.
4. Задайте SLO по классу данных
Клики могут требоваться почти сразу для pacing, approved — приходить часами, выплаты — закрываться периодически. Один SLA для всех таблиц либо бессмысленно слаб, либо недостижимо строг.
Класс указывает бизнес-решение, нормальную задержку, аварийный порог и допустимую деградацию.
| Поле паспорта | Пример смысла | Зачем |
|---|---|---|
| event_time | Когда событие произошло у источника | Когорта и порядок |
| received_at | Когда приняли данные | Сетевая задержка |
| available_at | Когда строка появилась в витрине | Фактическая свежесть |
| watermark | До какого event time поток считается закрытым | Оценка полноты |
| revision | Какая версия пересчёта | Сопоставимость отчёта |
5. Используйте watermark
Watermark сообщает, до какого event time система считает поток достаточно обработанным. Он не обещает, что поздних событий больше не будет; правило допуска опозданий фиксируется отдельно.
Решения по незрелому хвосту ограничивают: например, не отключают источник только по последним 15 минутам, если watermark отстаёт на час.
6. Отмечайте preliminary и final
Статус preliminary показывает, что метрика может измениться. Final означает закрытие по редакционному или операционному правилу, а не абсолютную невозможность корректировки.
Позднее изменение final требует новой revision и объяснимой причины.
7. Следите за пересчётами
Backfill может обновить старые даты и не изменить текущий freshness lag. Поэтому отдельно измеряют revision lag: насколько далеко в прошлое и как сильно изменился отчёт после пересчёта.
Дашборд должен показывать время последней сборки и максимальную event date затронутой ревизией.
8. Не алертите на тишину без контекста
Ноль событий может быть нормой ночью или признаком остановки трафика. Алерт сравнивает поток с ожидаемым объёмом и проверяет heartbeat интеграции.
Отсутствие click при нулевом spend и отсутствие postback при активном spend — разные ситуации.
9. Введите режим деградации
При нарушении SLO автоматизация снижает доверие к метрике: замораживает агрессивное перераспределение, использует последний закрытый интервал или ограничивает изменение бюджета.
Нельзя просто подставить ноль вместо недоступных данных — алгоритм воспримет технический сбой как бизнес-провал.
10. Проверяйте конец в конец
Синтетическое событие с test namespace проходит разрешённый маршрут и исключается из бизнес-метрик. Оно проверяет приём, обработку и витрину, а не только доступность API.
Периодически реальную строку трассируют по batch ID и контрольным суммам.
SLA без владельца — декоративная цифраДля каждого этапа нужен владелец, источник времени, способ измерения, канал алерта и действие при нарушении. Иначе отчёт лишь сообщает о проблеме после ущерба.
11. Отчёт для медиабайера
Рядом с метрикой показывают data as of, watermark, expected completeness и revision. Пользователю не нужно понимать архитектуру очередей, но он должен видеть, можно ли принимать решение.
Красный статус объясняет затронутые источники и безопасный режим, а не только пишет «данные задерживаются».
Вывод
Freshness SLA превращает абстрактное «статистика тормозит» в измеримый контракт. Разделяйте времена события и обработки, задавайте SLO по классам, публикуйте watermark и revision, а автоматизацию переводите в безопасный режим при потере свежести. Тогда технический лаг не станет ложным сигналом остановки кампании.
Станьте партнёром и начните работать
Перейдите в партнёрскую программу, изучите актуальные условия и выберите подходящий формат сотрудничества.
СТАТЬ ПАРТНЁРОМ
