Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kyukhin/xk6-tarantool-example
📈 Extended example of xk6-tarantool usage
https://github.com/kyukhin/xk6-tarantool-example
tarantool-cartridge xk6 xk6-tarantool
Last synced: about 1 month ago
JSON representation
📈 Extended example of xk6-tarantool usage
- Host: GitHub
- URL: https://github.com/kyukhin/xk6-tarantool-example
- Owner: kyukhin
- License: gpl-3.0
- Created: 2021-04-21T10:41:38.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-05-02T15:33:22.000Z (over 3 years ago)
- Last Synced: 2024-11-14T22:35:09.330Z (about 1 month ago)
- Topics: tarantool-cartridge, xk6, xk6-tarantool
- Language: Lua
- Homepage:
- Size: 3.33 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# xk6-tarantool-example
Пример использования модуля [xk6-tarantool](https://github.com/hackfeed/xk6-tarantool) для системы
нагрузочного тестирования [k6](https://k6.io).## Сборка
### Требования
Для того, чтобы использовать данный пример, убедитесь, что у вас установлены:
* [Ansible](https://ansible.com)
* [ansible-cartridge](https://github.com/tarantool/ansible-cartridge)
* [Vagrant](https://vagrantup.com)
* [Docker](https://docker.com)
* [Cartridge CLI](https://github.com/tarantool/cartridge-cli)
* [Golang](https://golang.org)
* [Git](https://git-scm.com)### Развертка окружения
1. Соберите приложение **Tarantool Cartridge**:
```bash
cd cars
cartridge pack --use-docker rpm --version 1.0.0
```2. В файле `/ansible/hosts.yml` укажите путь до полученного пакета в переменной `cartridge_package_path`.
3. Поднимите виртуальное окружение и дождитесь настройки виртуальных машин:
```bash
vagrant up
```4. Разверните кластер **Tarantool Cartridge**:
```bash
ansible-playbook -i ansible/hosts.yml ansible/playbook.yml
```После завершения развертки кластер настроен и готов к работе. Перейдите по адресу [http://localhost:8181](http://localhost:8181)
и убедитесь, что Ваш кластер настроен так, как на изображении:![](/images/cluster.png)
5. Разверните средства мониторинга **Grafana + InfluxDB**:
```bash
docker-compose up -d
```Перейдите по адресу [http://localhost:3000](http://localhost:3000)
и убедитесь, что Ваш дашборд настроен так, как на изображении:![](/images/grafana.png)
6. Склонируйте репозиторий `xk6` для сборки `k6` с расширениями:
```bash
git clone https://github.com/k6io/xk6.git
cd xk6
```7. Соберите исполняемый файл:
```bash
CGO_ENABLED=1 go run ./cmd/xk6/main.go build master \
--with github.com/hackfeed/xk6-tarantool \
--with github.com/hackfeed/xk6-tarantool-example/modules/xk6-datagen=$(pwd)/../xk6-tarantool-example/modules/xk6-datagen
```8. При необходимости, внесите коррективы в сценарий тестирования `/scenarios/test.js`. Подробнее о написании сценариев смотрите в [документации](https://k6.io/docs/using-k6/)
9. Запустите тестирование:
```bash
./k6 run --out influxdb=http://localhost:8086/k6 ../xk6-tarantool-example/scenarios/test_scenarios_extended.js/\ |‾‾| /‾‾/ /‾‾/
/\ / \ | |/ / / /
/ \/ \ | ( / ‾‾\
/ \ | |\ \ | (‾) |
/ __________ \ |__| \__\ \_____/ .ioexecution: local
script: ../xk6-tarantool-example/scenarios/test_scenarios_extended.js
output: InfluxDBv1 (http://localhost:8086)scenarios: (100.00%) 2 scenarios, 200 max VUs, 40s max duration (incl. graceful stop):
* conn1test: 10000.00 iterations/s for 10s (maxVUs: 100, exec: conn1test, gracefulStop: 30s)
* conn2test: 10000.00 iterations/s for 10s (maxVUs: 100, exec: conn2test, gracefulStop: 30s)INFO[0000] Run data generation in the background source=console
WARN[0000] Insufficient VUs, reached 100 active VUs and cannot initialize more executor=constant-arrival-rate scenario=conn1test
WARN[0000] Insufficient VUs, reached 100 active VUs and cannot initialize more executor=constant-arrival-rate scenario=conn2test
INFO[0010] Testing complete source=consolerunning (10.0s), 000/200 VUs, 96483 complete and 0 interrupted iterations
conn1test ✓ [======================================] 100/100 VUs 10s 10000 iters/s
conn2test ✓ [======================================] 100/100 VUs 10s 10000 iters/s✓ is status OK
█ setup
█ teardown
✓ checks...............: 100.00% ✓ 96483 ✗ 0
data_received........: 0 B 0 B/s
data_sent............: 0 B 0 B/s
dropped_iterations...: 103517 10318.42/s
✓ iteration_duration...: avg=19.48ms min=66.97µs med=16.02ms max=207.6ms p(90)=33ms p(95)=44.53ms
iterations...........: 96483 9617.281382/s
vus..................: 200 min=200 max=200
vus_max..............: 200 min=200 max=200```
![](images/dashboard.png)