LINUX.ORG.RU
ФорумAdmin

тестирование rest-серевиса через k8s.

 , ,


2

2

Коллеги, вот чего мне хочется:
Выкладываю на git некий сценарий стрес-теста.
Запускаю некий контейнер, где в качестве input параметра показываю этот самый .git
Иду на docker_host_ip/grafana и смотрю красивый выхлоп c mps и success/error.
все это закидываю на кубер и могу грузить веб-сервис еще больше.
есть что-то готовое для этого ?

★★★★★

Ответ на: комментарий от eternal_sorrow

я думаю может какой-то готовый есть инструмент для этого.
т.е. кто-то из множества тулзов для тестирования работает и в докере (postman/soapui/jmeter/gatling и т.д)

dada ★★★★★
() автор топика
Последнее исправление: dada (всего исправлений: 1)
Ответ на: комментарий от dada

А то есть на самом деле ты спрашиваешь:

какие есть тестовые фреймвоки для стресс-теста REST API, которые масштабируются горизонтально.

alpha ★★★★★
()
Ответ на: комментарий от alpha

какие есть тестовые фреймвоки для стресс-теста REST API, которые масштабируются горизонтально.

ты прелесть.
да, именно это.

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

k6 ? в проде обычно loadrunner или jmeter(для бедных) используют. Докер тут хз при чем.

Кстати k6 в influx пишет данные, так что с графаной проблем не будет

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)
Ответ на: комментарий от dada

Масштабировать на самом деле проблемы нет, запихать в докер можно любой фреймворк и просто запустить N раз. А вот как лучше собирать в сводную таблицу результаты - это вопрос. Формат prometheus или Grafana классические инструменты не поддерживают.

Можно наверное просто завернуть ab или siege или любой другой стандартный способ в скрипт, который прочитает результаты и отформатирует в доступном для съедения аггрегатором виде, например в формате Prometheus-метрик.

Но можно и поискать что-то готовое.

Насколько я знаю jmeter поддерживает масштабирование, у него есть master-slave режим, когда множество агентов выполняют собственно запросы, а мастер собирает и анализирует данные. Тогда мастер можно запустить отдельно и держать как постоянно живущий сервис, а агенты контейнеризовать и запускать в нужном количестве на кластере.

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step....

alpha ★★★★★
()
Ответ на: комментарий от alpha

Формат prometheus или Grafana

какой еще формат Grafana, графана это клиент который присасывается к поддерживаемой БД. Формат прометеуса трудно поддерживать, потому что он сам вытягивает данные, да и НТшные результаты стоит хранить дольше чем 2 недели ибо их мало просто смотреть, нужно еще проверять что у тебя хуже не стало. Просто берешь БД поддерживающую запить http-запросами и графану. На моем опыте это Influx, но если influx один, а нагрузка большая (врятли это случай ОПа), то стоит еще спроксировать запросы к influx с помощью telegraf(пишешщь в него, он накапливает батчи точкb и отправляет в influx).

Но в реальности, какой-нибудь k6 умеет сам писать в influx, HP Perfomance center этому скоро научат, уверен еще куча инструментов которые умеют сами в БД писать, не обязательно Influx, может какой-нибудь MySQL или PostgreSQL (а где Postgre, там и TimescaleDB)

Dred ★★★★★
()
Ответ на: комментарий от Dred

какой еще формат Grafana

Спокойно, мне просто было лень смотреть не поддерживается ли там какой-нибудь fallback на excel или ещё что-нибудь такое странное.

И кстати оказывается там есть csv:

https://grafana.com/docs/features/datasources/testdata/

Формат прометеуса трудно поддерживать, потому что он сам вытягивает данные

Эм, как раз вроде просто, надо вывесить данные в том формате, в котором он их вытягивает. Но согласна что стресс-тестирование - это немного не то же что мониторинг и анализ данных там другой.

Но в реальности, какой-нибудь k6 умеет сам писать в influx, HP Perfomance center этому скоро научат, уверен еще куча инструментов которые умеют сами в БД писать, не обязательно Influx, может какой-нибудь MySQL или PostgreSQL (а где Postgre, там и TimescaleDB)

Да, я тут просто не в теме и про k6 первый раз слышу.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Эм, как раз вроде просто, надо вывесить

это совершенно не работает когда нужно не состояние, а весь временной ряд.

Dred ★★★★★
()
Ответ на: комментарий от Dred

Да, принято. Аггрегировать надо по-другому.

alpha ★★★★★
()
Ответ на: комментарий от dada

Если хочешь грузить сильно, посмотри на tsung, удавалось генерировать нагрузку которая не снилась всяким jmeter. Незнаю как там с графной, думаю будет не просто, но сам умеет рисовать графики в tsung_plotter или отдавать json.

WoozyMasta
()
Ответ на: комментарий от WoozyMasta

ну смотри, мне нужно «уложить» IBM-скую шину.
поднимал до 1k tps (это я нубовским методом, с локальных компов).
понял что нужно что-то поинтереснее.
Сейчас вроде настроил все это дело и оно вроде как работает.
Но результаты будут чуть позже.

dada ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.