{"id":13728236,"url":"https://github.com/mms-gianni/locust-admin","last_synced_at":"2025-07-26T19:13:00.111Z","repository":{"id":46208430,"uuid":"404769627","full_name":"mms-gianni/locust-admin","owner":"mms-gianni","description":"GUI and API to parallelizing locust.io loadtests on kubernetes","archived":false,"fork":false,"pushed_at":"2023-08-17T12:55:57.000Z","size":1344,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T13:44:30.901Z","etag":null,"topics":["benchmark","benchmarking","kubernetes","load-test","load-testing","locust","locustio","performance","performance-testing","performancetesting"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mms-gianni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-09-09T15:12:48.000Z","updated_at":"2024-10-17T21:31:53.000Z","dependencies_parsed_at":"2022-07-23T10:34:29.142Z","dependency_job_id":"32aedc35-b021-4378-a0d0-d3b6482b69a9","html_url":"https://github.com/mms-gianni/locust-admin","commit_stats":null,"previous_names":["mms-gianni/locust-admin"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mms-gianni/locust-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2Flocust-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2Flocust-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2Flocust-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2Flocust-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mms-gianni","download_url":"https://codeload.github.com/mms-gianni/locust-admin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2Flocust-admin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267213587,"owners_count":24053912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","benchmarking","kubernetes","load-test","load-testing","locust","locustio","performance","performance-testing","performancetesting"],"created_at":"2024-08-03T02:00:39.025Z","updated_at":"2025-07-26T19:13:00.030Z","avatar_url":"https://github.com/mms-gianni.png","language":"JavaScript","funding_links":[],"categories":["Tools \u0026 Integrations"],"sub_categories":["Distributed"],"readme":"\n## Locust Swarmadmin\n\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/locust-swarmadmin)](https://artifacthub.io/packages/search?repo=locust-swarmadmin)\n![Docker Image Version (latest semver)](https://img.shields.io/docker/v/gicara/swarmadmin?color=blue\u0026sort=semver)\n\n[Locust](https://www.locust.io) is an easy to use, scriptable and scalable performance testing tool. But it is not very flexible. Specially when it comes to run multiple different configured loadtests in kubernetes cloud. \n\nThis project solves this problem by adding a additional admin interface and API to dynamically start Locust instances in your kubernetes cluster.\n\nAll configurations are stored on your kubernetes cluster. \n\nAPI Swagger documentation : https://mms-gianni.github.io/swarmadmin/swagger.html \n\n![Screenshot](docs/swarmadmin.png) \n## Installation on Kubernetes\nThe Helm installation is based on [Deliveryhero's](https://github.com/deliveryhero/helm-charts/tree/master/stable/locust) helm charts. (Version 0.20.2)\n\n```\ncd k8s/\nhelm install -f values.yaml locustswarm . -n locustswarm --create-namespace\nhelm upgrade -f values.yaml locustswarm .\n```\n\nThe results are exported and stored in Prometheus. They can easily be displayed on a grafana board\n\nhttps://grafana.com/grafana/dashboards/15109\n![Screenshot](docs/grafana.png) \n\n## Docker container environment variables\nFor a full list of available environment variables, please visit [.env.example](.env.example)\n\n#### KUBECONFIG_BASE64 \nA base64 encoded kubeconfig \n```\nexport KUBECONFIG_BASE64=$(cat kubeconfig | base64)\n```\n#### KUBECONFIG_PATH\nFallback if KUBECONFIG_PATH is empty\n\n## Development \n### running a local KiND cluster\n```\nkind create cluster --config kind.yaml\nkubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml\nkind export kubeconfig --name superlocust --kubeconfig ./kubeconfig\n```\nMake sure you are using the internal kubeconfig for the ENV variable to configure the helm charts\n```\nexport KUBECONFIG_BASE64=$(kind get kubeconfig --name superlocust --internal | base64)\n```\n\n### start on local node\n```\ncd client \u0026\u0026 npm run build \u0026\u0026 cd .. \u0026\u0026 npm run serve\n```\n\n\n\n## Possible future features\n- [x] ~~Store loadtest results in a database (MongoDB? or Prometheus? https://github.com/siimon/prom-client) or a Prometheus exporter~~\n- [ ] ~~Add provision support for other clouds (AWS, Google, Azure, Digital Ocean ... )~~ won't be implemented since it would be to complicated to maintain\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmms-gianni%2Flocust-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmms-gianni%2Flocust-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmms-gianni%2Flocust-admin/lists"}