AB-Labz Runner
Self-hosted движок вычислений для обработки экспериментов в вашей инфраструктуре.
Что такое Runner
AB-Labz Runner — это Docker-контейнер, который работает в вашей инфраструктуре, обрабатывает данные экспериментов локально и отправляет в облако AB-Labz только агрегированные статистические результаты.
Архитектура
┌─────────────────────────────────┐
│ AB-Labz Cloud │
│ • Создаёт задачи │
│ • Получает агрегированную │
│ статистику │
│ • Отображает результаты в UI │
└────────────┬────────────────────┘
│
│ HTTPS (только результаты)
│ • p-value, CI, эффекты
│ • Счётчики (без user_id)
│ • SRM статистика
▼
┌─────────────────────────────────┐
│ AB-Labz Runner │
│ (в вашей инфраструктуре) │
│ │
│ • Polling задач по расписанию │
│ • Чтение локальных CSV │
│ • Статистические расчёты │
│ • Отправка результатов │
└────────────┬────────────────────┘
│
│ Чтение (read-only)
│
▼
┌─────────────────────────────────┐
│ Ваши данные (CSV файлы) │
│ /data/experiments/ │
│ │
│ • homepage_test.csv │
│ • checkout_v2.csv │
│ • onboarding_flow.csv │
└─────────────────────────────────┘Что передаётся в облако
Передаётся:
- Статистика: p-value, z-score, t-statistic, доверительные интервалы
- Агрегированные метрики: средние значения, конверсии по группам
- Счётчики: количество пользователей в группах (без идентификаторов)
- SRM анализ: распределение по вариантам (без user_id)
- Метаданные: названия метрик, количество дней, даты
НЕ передаётся:
- Сырые CSV файлы
- user_id пользователей
- Индивидуальные записи событий
- Email, телефоны, IP-адреса
- Любые PII (Personally Identifiable Information)
Быстрый старт
1. Получите Runner Key
- Войдите в AB-Labz Workbench
- Перейдите в раздел Runner
- Нажмите "Создать ключ"
- Скопируйте ключ (показывается только один раз!)
2. Установите Runner
Вы получите архив runner-client-v1.x.x.zip с файлами:
runner-client-v1.x.x/
├── ab-labz-runner-v1.x.x.tar # Docker образ
├── docker-compose.yml # Конфигурация запуска
├── config.yaml # Настройки Runner
├── .env.example # Шаблон переменных
└── experiments/ # Папка для CSV (пустая)3. Настройте окружение
Распакуйте архив runner-client-v1.x.x.zip. Скопируйте файл .env.example и создайте из него файл .env. Отредактируйте файл config.yaml под ваши настройки.
Добавьте ваш ключ в .env:
API_URL=https://workbench.ab-labz.com
RUNNER_KEY=abn_runner_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4. Укажите путь к данным
Отредактируйте docker-compose.yml:
services:
runner:
volumes:
# ЗАМЕНИТЕ на путь к вашим CSV файлам!
- /path/to/your/experiments:/data/experiments:roВажно: используйте режим :ro (read-only) для безопасности.
5. Загрузите образ и запустите
# Загрузите образ
docker load -i ab-labz-runner-v1.x.x.tar
# Запустите Runner
docker-compose up -dВ логах вы должны увидеть:
AB-Labz Runner initialized
API URL: https://workbench.ab-labz.com
Experiments path: /data/experiments
Runner started successfully6. Проверьте статус
В интерфейсе AB-Labz (раздел Runner):
- Статус: Online
- Последняя активность: только что
- Обнаруженные файлы: список ваших экспериментов
Конфигурация
config.yaml
Настройки работы Runner:
# Путь к папке с CSV (внутри контейнера)
experiments_path: /data/experiments
# Интервал проверки задач (секунды)
poll_interval: 60
# Интервал проверки файлов (секунды)
file_check_interval: 300Когда изменять:
- Увеличьте
poll_intervalдля снижения нагрузки - Уменьшите
file_check_intervalдля более частых обновлений
.env
Секретные данные:
# URL платформы AB-Labz
API_URL=https://workbench.ab-labz.com
# Ваш Runner Key
RUNNER_KEY=abn_runner_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxМониторинг файлов
Runner автоматически отслеживает изменения файлов:
При обнаружении изменений:
- Обновляется информация о размере выборки
- Пересчитываются метрики SRM
Процесс обновления:
- Вы обновляете файл
experiment_001.csv(добавили новые данные за день) - Runner обнаруживает изменение mtime файла
- Облако AB-Labz получает уведомление
- Новая версия анализируется при следующем запуске
Интервал проверки: каждые 5 минут (настраивается в config.yaml)
Безопасность
Рекомендации:
Read-only доступ
yamlvolumes: - /data/experiments:/data/experiments:roОграничение сетевого доступа
- Runner должен иметь HTTPS доступ только к
workbench.ab-labz.com - Настройте firewall для исходящих соединений
- Runner должен иметь HTTPS доступ только к
Регулярные обновления
- Обновляйте Docker образ при выходе новых версий
- Следите за security notices
Управление
Обновление версии
- Скачайте новый архив
runner-client-v1.x.x.zip - Загрузите новый образ:bash
docker load -i ab-labz-runner-v1.x.x.tar - Обновите
docker-compose.yml(версия image) - Перезапустите:bash
docker-compose down docker-compose up -d
Решение проблем
Runner не подключается
Ошибка: Failed to send initial heartbeat
Решение:
- Проверьте
RUNNER_KEYв.env - Убедитесь что ключ начинается с
abn_runner_ - Проверьте доступ к
API_URL(ping, curl) - Проверьте статус лицензии в AB-Labz
Файлы не обнаруживаются
Ошибка: Experiments path does not exist
Решение:
- Проверьте путь в
docker-compose.yml - Убедитесь что папка существует на хосте
- Проверьте права доступа Docker к папке
- Путь внутри контейнера:
/data/experiments
Задачи не обрабатываются
Ошибка: Experiment file not found
Решение:
- Имя файла =
<experiment_id>.csv - Проверьте формат CSV (user_id, variant, date)
- Убедитесь что файл не пустой
- Проверьте кодировку (UTF-8)
Системные требования
Минимальные:
- Docker 20.10+
- Docker Compose 1.29+
- 1 GB RAM
- 1 CPU core
- 5 GB дисковое пространство
Рекомендуемые:
- 2 GB RAM
- 2 CPU cores
- 10 GB дисковое пространство
- Linux host (для production)
Поддерживаемые платформы:
- Linux (AMD64, ARM64)
- macOS (Intel, Apple Silicon)
- Windows (с WSL2)
