Files
EventHubBack/test/tsung

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/registerPOST /v1/verifyPOST /v1/login.
На стендах (EVENTHUB_ENVprod) 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)

  1. DNS: api.ift.eventhub.local → IP IFT (тот же, что в OpenWRT).
  2. Установка: sudo apt install tsung (или документация Tsung).
  3. 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.
  4. Запуск из корня 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)