Closed satishdsb closed 2 years ago
Can someone let me know what's missing here to run locust tests for load testing Agones?
We should really remove those locust tests, I don't think we've used them in forrrreeever, so I'm not surprised that they are broken.
https://github.com/googleforgames/agones/tree/main/test/load/allocation/grpc
Is the most recent load test suite we've been using.
@roberthbailey should we move that to the top level load
folder, and get rid of the rest? We're not using any of it I don't think / not sure if it really works anymore. WDYT?
Hi @markmandel! Thanks for your response.
(from the README under /test/load)
Locust provides a good framework for testing a system under heavy load. It provides a light-weight mechanism to launch thousands of workers that run a given test.
If Locust is not recommended for performance tests can the allocation
test suite/approach replace it?
If Locust is not recommended for performance tests can the allocation test suite/approach replace it?
Yes, I'm suggesting that https://github.com/googleforgames/agones/tree/main/test/load/allocation/grpc replace the whole set of other tests that are in the /load
folder.
I checked with Parya (who originally wrote tho locust tests) and I don't think they cover anything particularly special that we need to keep. We haven't run them in a long time (years at this point) and run the allocation load tests when we want to exercise Agones under load.
So I think it makes sense to re-work the test/load directory a bit to remove the locust tests and update the documentation for how to load test the system.
What happened: After building container, when I run this command "docker run --rm --network="host" -e "LOCUST_FILE=gameserver_allocation.py" -e "TARGET_HOST=http://127.0.0.1:8001" -p 8089:8089 locust-files:latest", it is showing "missing /usr/local/bin/locust"
What you expected to happen: I expect locust tests running on game server allocation.
How to reproduce it (as minimally and precisely as possible): These is the output of all commands I run on Windows: `PS D:\Projects\\git\test-load-agones\agones\test\load> docker build -t locust-files .
[+] Building 2.4s (12/12) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 32B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/hopsoft/graphite-statsd:latest 2.2s
=> [auth] hopsoft/graphite-statsd:pull token for registry-1.docker.io 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 170B 0.0s
=> [1/6] FROM docker.io/hopsoft/graphite-statsd@sha256:40d36394594e4d0a6d0497e6609c48b652b0a3e230b735dcd5b140fe76daa 0.0s
=> CACHED [2/6] RUN pip install locust 0.0s
=> CACHED [3/6] RUN mkdir /etc/service/locust 0.0s
=> CACHED [4/6] COPY /locust-files ./ 0.0s
=> CACHED [5/6] COPY /run.sh /etc/service/locust/run 0.0s
=> CACHED [6/6] RUN chmod +x /etc/service/locust/run 0.0s
=> exporting to image 0.1s
=> => exporting layers 0.0s
=> => writing image sha256:b788dd11d570472ecdbc8be25c61e11454790e0c4c2ca642412b9f263000e477 0.0s
=> => naming to docker.io/library/locust-files 0.0s
PS D:\Projects\PROJECT\git\test-load-agones\agones\test\load> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
PS D:\Projects\PROJECT\git\test-load-agones\agones\test\load> docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41df2a23f4da docker/getting-started "/docker-entrypoint.…" 7 days ago Exited (0) 6 hours ago compassionate_greider
PS D:\Projects\PROJECT\git\test-load-agones\agones\test\load> docker build -t locust-files .
[+] Building 1.2s (11/11) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 32B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/hopsoft/graphite-statsd:latest 1.1s
=> [1/6] FROM docker.io/hopsoft/graphite-statsd@sha256:40d36394594e4d0a6d0497e6609c48b652b0a3e230b735dcd5b140fe76daa 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 170B 0.0s
=> CACHED [2/6] RUN pip install locust 0.0s
=> CACHED [3/6] RUN mkdir /etc/service/locust 0.0s
=> CACHED [4/6] COPY /locust-files ./ 0.0s
=> CACHED [5/6] COPY /run.sh /etc/service/locust/run 0.0s
=> CACHED [6/6] RUN chmod +x /etc/service/locust/run 0.0s
=> exporting to image 0.1s
=> => exporting layers 0.0s
=> => writing image sha256:b788dd11d570472ecdbc8be25c61e11454790e0c4c2ca642412b9f263000e477 0.0s
=> => naming to docker.io/library/locust-files 0.0s
PS D:\Projects\PROJECT\git\test-load-agones\agones\test\load> docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
PS D:\Projects\PROJECT\git\test-load-agones\agones\test\load> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
locust-files latest b788dd11d570 6 hours ago 1.26GB
docker/getting-started latest cb90f98fd791 5 months ago 28.8MB
PS D:\Projects\PROJECT\git\test-load-agones\agones\test\load> docker run --rm --network="host" -e "LOCUST_FILE=gameserver_allocation.py" -e "TARGET_HOST=http://127.0.0.1:8001" -p 8089:8089 locust-files:latest
WARNING: Published ports are discarded when using host network mode
Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
Running /etc/my_init.d/01_conf_init.sh...
Running /etc/rc.local...
Booting runit daemon...
*** Runit started as PID 15
/usr/local/bin/locust -f gameserver_allocation.py --host=http://127.0.0.1:8001
./run: line 17: /usr/local/bin/locust: No such file or directory
Sep 21 10:46:10 docker-desktop syslog-ng[20]: syslog-ng starting up; version='3.5.6'
2022/09/21 10:46:10 [I] Starting Grafana
2022/09/21 10:46:10 [I] Version: master, Commit: NA, Build date: 1970-01-01 00:00:00 +0000 UTC
2022/09/21 10:46:10 [I] Configuration Info
Config files:
Paths: home: /usr/share/grafana data: /usr/share/grafana/data logs: /var/log/grafana
2022/09/21 10:46:10 [I] Database: sqlite3 2022/09/21 10:46:10 [I] Migrator: Starting DB migration 2022/09/21 10:46:10 [I] Migrator: exec migration id: create migration_log table 2022/09/21 10:46:10 [I] Migrator: exec migration id: create user table 2022/09/21 10:46:10 [I] Migrator: exec migration id: add unique index user.login 2022/09/21 10:46:10 [I] Migrator: exec migration id: add unique index user.email 2022/09/21 10:46:10 [I] Migrator: exec migration id: drop index UQE_user_login - v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: drop index UQE_user_email - v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: Rename table user to user_v1 - v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: create user table v2 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index UQE_user_login - v2 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index UQE_user_email - v2 2022/09/21 10:46:10 [I] Migrator: exec migration id: copy data_source v1 to v2 2022/09/21 10:46:10 [I] Migrator: exec migration id: Drop old table user_v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: create temp user table v1-7 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index IDX_temp_user_email - v1-7 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index IDX_temp_user_org_id - v1-7 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index IDX_temp_user_code - v1-7 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index IDX_temp_user_status - v1-7 2022/09/21 10:46:10 [I] Migrator: exec migration id: create star table 2022/09/21 10:46:10 [I] Migrator: exec migration id: add unique index star.user_id_dashboard_id 2022/09/21 10:46:10 [I] Migrator: exec migration id: create org table v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index UQE_org_name - v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: create org_user table v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index IDX_org_user_org_id - v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: create index UQE_org_user_org_id_user_id - v1 2022/09/21 10:46:10 [I] Migrator: exec migration id: copy data account to org 2022/09/21 10:46:10 [I] Migrator: skipping migration id: copy data account to org, condition not fulfilled 2022/09/21 10:46:10 [I] Migrator: exec migration id: copy data account_user to org_user 2022/09/21 10:46:10 [I] Migrator: skipping migration id: copy data account_user to org_user, condition not fulfilled 2022/09/21 10:46:10 [I] Migrator: exec migration id: Drop old table account 2022/09/21 10:46:10 [I] Migrator: exec migration id: Drop old table account_user 2022/09/21 10:46:10 [I] Migrator: exec migration id: create dashboard table 2022/09/21 10:46:11 [I] Migrator: exec migration id: add index dashboard.account_id 2022/09/21 10:46:11 [I] Migrator: exec migration id: add unique index dashboard_account_id_slug 2022/09/21 10:46:11 [I] Migrator: exec migration id: create dashboard_tag table 2022/09/21 10:46:11 [I] Migrator: exec migration id: add unique index dashboard_tag.dasboard_id_term 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop index UQE_dashboard_tag_dashboard_id_term - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: Rename table dashboard to dashboard_v1 - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: create dashboard v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index IDX_dashboard_org_id - v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index UQE_dashboard_org_id_slug - v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: copy dashboard v1 to v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop table dashboard_v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: alter dashboard.data to mediumtext v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: create data_source table 2022/09/21 10:46:11 [I] Migrator: exec migration id: add index data_source.account_id 2022/09/21 10:46:11 [I] Migrator: exec migration id: add unique index data_source.account_id_name 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop index IDX_data_source_account_id - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop index UQE_data_source_account_id_name - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: Rename table data_source to data_source_v1 - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: create data_source table v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index IDX_data_source_org_id - v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index UQE_data_source_org_id_name - v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: copy data_source v1 to v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: Drop old table data_source_v1 #2 2022/09/21 10:46:11 [I] Migrator: exec migration id: Add column with_credentials 2022/09/21 10:46:11 [I] Migrator: exec migration id: create api_key table 2022/09/21 10:46:11 [I] Migrator: exec migration id: add index api_key.account_id 2022/09/21 10:46:11 [I] Migrator: exec migration id: add index api_key.key 2022/09/21 10:46:11 [I] Migrator: exec migration id: add index api_key.account_id_name 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop index IDX_api_key_account_id - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop index UQE_api_key_key - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop index UQE_api_key_account_id_name - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: Rename table api_key to api_key_v1 - v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: create api_key table v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index IDX_api_key_org_id - v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index UQE_api_key_key - v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index UQE_api_key_org_id_name - v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: copy api_key v1 to v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: Drop old table api_key_v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: create dashboard_snapshot table v4 2022/09/21 10:46:11 [I] Migrator: exec migration id: drop table dashboard_snapshot_v4 #1 2022/09/21 10:46:11 [I] Migrator: exec migration id: create dashboard_snapshot table v5 #2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index UQE_dashboard_snapshot_key - v5 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index UQE_dashboard_snapshot_delete_key - v5 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index IDX_dashboard_snapshot_user_id - v5 2022/09/21 10:46:11 [I] Migrator: exec migration id: alter dashboard_snapshot to mediumtext v2 2022/09/21 10:46:11 [I] Migrator: exec migration id: create quota table v1 2022/09/21 10:46:11 [I] Migrator: exec migration id: create index UQE_quota_org_id_user_id_target - v1 2022/09/21 10:46:11 [I] Created default admin user: admin 2022/09/21 10:46:11 [I] Listen: http://0.0.0.0:3000 /usr/local/bin/locust -f gameserver_allocation.py --host=http://127.0.0.1:8001 ./run: line 17: /usr/local/bin/locust: No such file or directory /usr/local/bin/locust -f gameserver_allocation.py --host=http://127.0.0.1:8001 ./run: line 17: /usr/local/bin/locust: No such file or directory /usr/local/bin/locust -f gameserver_allocation.py --host=http://127.0.0.1:8001 ./run: line 17: /usr/local/bin/locust: No such file or directory`
Anything else we need to know?:
Environment: WINDOWS
kubectl version
):{ "clientVersion": { "major": "1", "minor": "25", "gitVersion": "v1.25.0", "gitCommit": "a866cbe2e5bbaa01cfd5e969aa3e033f3282a8a2", "gitTreeState": "clean", "buildDate": "2022-08-23T17:44:59Z", "goVersion": "go1.19", "compiler": "gc", "platform": "windows/amd64" }, "kustomizeVersion": "v4.5.7", "serverVersion": { "major": "1", "minor": "22+", "gitVersion": "v1.22.11-eks-18ef993", "gitCommit": "b9628d6d3867ffd84c704af0befd31c7451cdc37", "gitTreeState": "clean", "buildDate": "2022-07-06T18:06:23Z", "goVersion": "go1.16.15", "compiler": "gc", "platform": "linux/amd64" } }