2.5 KiB
2.5 KiB
Tsung — нагрузка EventHub
Профили
| Файл | Назначение |
|---|---|
eventhub_ift_smoke.xml |
Короткий smoke на IFT после prepare |
eventhub_ift.xml |
Mix: auth_browse 60% + create_flow 40%, фазы warmup/ramp/peak |
eventhub_tsung.xml |
Legacy localhost (thinktime там в секундах — не использовать для IFT) |
eventhub_http.xml |
Legacy короткий localhost |
Цель IFT: HTTPS api.ift.eventhub.local:443 (Traefik).
Auth path: POST /v1/register → POST /v1/verify → POST /v1/login.
На стендах (EVENTHUB_ENV ≠ prod) register отдаёт verification_token (без почты).
Перед прогоном (хост IFT)
# 1 нода (default)
EVENTHUB_REPLICAS=1 bash /opt/eventhub-ift/devops/scripts/ift-loadtest-prepare.sh
# или N нод
EVENTHUB_REPLICAS=2 bash /opt/eventhub-ift/devops/scripts/ift-loadtest-prepare.sh
Оставляет traefik + eventhub×N, гасит admin-ui / bot / observability / fallback.
Дех-машина (WSL)
- DNS:
api.ift.eventhub.local→ IP IFT (тот же, что в OpenWRT). - Установка:
sudo apt install tsung(или документация Tsung). - TLS: самоподписанный сертификат стенда — импортировать CA из
EventHubDevOps/ift/traefik/certsв trust store WSL, либо временно положить CA в/usr/local/share/ca-certificates/иupdate-ca-certificates. Проверка:curl -sf https://api.ift.eventhub.local/health. - Запуск из корня
EventHubBack:
# smoke (~1 мин)
tsung -f test/tsung/eventhub_ift_smoke.xml start
# полный прогон (~6 мин фаз)
tsung -f test/tsung/eventhub_ift.xml start
Отчёт: ~/.tsung/log/<timestamp>/ → tsung_stats.pl / HTML.
После прогона
bash /opt/eventhub-ift/devops/scripts/ift-loadtest-restore.sh
Настройка интенсивности
В eventhub_ift.xml блок <load>: interarrival (сек между стартами пользователей) и duration фаз.
thinktime — секунды (не мс).
Что сознательно убрано из hot path
- dummy
/v1/refresh - reports / tickets (шум модерации)
- завышенные thinktime (старый
eventhub_tsung.xml)