Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shows missing "/usr/local/bin/locust" after building container #2744

Closed
satishdsb opened this issue Sep 21, 2022 · 5 comments · Fixed by #2784
Closed

Shows missing "/usr/local/bin/locust" after building container #2744

satishdsb opened this issue Sep 21, 2022 · 5 comments · Fixed by #2784
Assignees
Labels
good first issue These are great first issues. If you are looking for a place to start, start here! help wanted We would love help on these issues. Please come help us! kind/bug These are bugs.
Milestone

Comments

@satishdsb
Copy link

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<PROJECT>\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:
[0]: /usr/share/grafana/conf/defaults.ini
[1]: /etc/grafana/grafana.ini
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

  • Agones version:
  • Kubernetes version (use 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"
    }
    }
  • Cloud provider or hardware configuration: AWS
  • Install method (yaml/helm): yaml
  • Troubleshooting guide log(s):
  • Others:
@satishdsb satishdsb added the kind/bug These are bugs. label Sep 21, 2022
@satishdsb
Copy link
Author

Can someone let me know what's missing here to run locust tests for load testing Agones?

@markmandel
Copy link
Member

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?

@thomasklein-toptal
Copy link

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?

@markmandel
Copy link
Member

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.

@roberthbailey
Copy link
Member

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.

@roberthbailey roberthbailey added good first issue These are great first issues. If you are looking for a place to start, start here! help wanted We would love help on these issues. Please come help us! labels Sep 26, 2022
@mangalpalli mangalpalli self-assigned this Oct 17, 2022
This was referenced Oct 27, 2022
@mangalpalli mangalpalli added this to the 1.28.0 milestone Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue These are great first issues. If you are looking for a place to start, start here! help wanted We would love help on these issues. Please come help us! kind/bug These are bugs.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants