Giter Site home page Giter Site logo

mms-gianni / locust-admin Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 1.0 1.31 MB

GUI and API to parallelizing locust.io loadtests on kubernetes

License: MIT License

JavaScript 57.12% Dockerfile 0.39% HTML 0.90% Vue 37.43% Shell 0.12% Python 0.87% Mustache 3.17%
load-testing kubernetes locust locustio benchmark benchmarking load-test performance performance-testing performancetesting

locust-admin's Introduction

Locust Swarmadmin

Artifact Hub Docker Image Version (latest semver)

Locust 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.

This project solves this problem by adding a additional admin interface and API to dynamically start Locust instances in your kubernetes cluster.

All configurations are stored on your kubernetes cluster.

API Swagger documentation : https://mms-gianni.github.io/swarmadmin/swagger.html

Screenshot

Installation on Kubernetes

The Helm installation is based on Deliveryhero's helm charts. (Version 0.20.2)

cd k8s/
helm install -f values.yaml locustswarm . -n locustswarm --create-namespace
helm upgrade -f values.yaml locustswarm .

The results are exported and stored in Prometheus. They can easily be displayed on a grafana board

https://grafana.com/grafana/dashboards/15109 Screenshot

Docker container environment variables

For a full list of available environment variables, please visit .env.example

KUBECONFIG_BASE64

A base64 encoded kubeconfig

export KUBECONFIG_BASE64=$(cat kubeconfig | base64)

KUBECONFIG_PATH

Fallback if KUBECONFIG_PATH is empty

Development

running a local KiND cluster

kind create cluster --config kind.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
kind export kubeconfig --name superlocust --kubeconfig ./kubeconfig

Make sure you are using the internal kubeconfig for the ENV variable to configure the helm charts

export KUBECONFIG_BASE64=$(kind get kubeconfig --name superlocust --internal | base64)

start on local node

cd client && npm run build && cd .. && npm run serve

Possible future features

  • Store loadtest results in a database (MongoDB? or Prometheus? https://github.com/siimon/prom-client) or a Prometheus exporter
  • Add provision support for other clouds (AWS, Google, Azure, Digital Ocean ... ) won't be implemented since it would be to complicated to maintain

locust-admin's People

Contributors

mms-gianni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

andreilapkin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.