https://github.com/ragul28/jmeter-k8s-cluster
JMeter cluster on k8s with Grafana monitoring
https://github.com/ragul28/jmeter-k8s-cluster
distrubuted grafana grafana-reporter influxdb jmeter jmeter-cluster kubernetes loadtesting
Last synced: 23 days ago
JSON representation
JMeter cluster on k8s with Grafana monitoring
- Host: GitHub
- URL: https://github.com/ragul28/jmeter-k8s-cluster
- Owner: ragul28
- License: apache-2.0
- Created: 2019-05-28T06:38:04.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T14:51:46.000Z (almost 2 years ago)
- Last Synced: 2024-05-02T10:00:28.194Z (almost 2 years ago)
- Topics: distrubuted, grafana, grafana-reporter, influxdb, jmeter, jmeter-cluster, kubernetes, loadtesting
- Language: Shell
- Homepage:
- Size: 105 KB
- Stars: 9
- Watchers: 1
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Jmeter Cluster in Kubernetes
## Prerequisits
- Kubernetes Cluster version 1.27+
- Kubectl access
## Setup Guide
* Create jmeter cluster. Script inputs are `namespace` (for default press enter) & `Slave count` (Default count depends on worker nodes).
```bash
./jmeter_cluster_create.sh
```
* Create grafana, reporter & Influxdb for dashboard (optional)
```
./dashboard.sh
```
* To access the Grafana dashboard use LB url from grafana service. Or use Kube port-forward to access.
```bash
kubectl port-forward svc/jmeter-grafana 3000
```
* To generate Grafana-reporter add reporter endpoint `http://:8686/api/v5/report/ltaas` as dashboard link. [Visual guide](https://github.com/IzakMarais/reporter/blob/master/demo/report_v5.gif). Or use port-forward both to access.
```bash
kubectl port-forward svc/jmeter-grafana 3000 8686
```
* To Start jmeter load test
```bash
./start_test.sh
```
### Start load-test with csv
* To run the load test
```bash
./start_csv_copy.sh
./start_csv_test.sh
```
* To copy the results file as `tar.gz`
```bash
./copy_results.sh
```
* To stop the load test during the execution
```bash
./jmetet_stop.sh
```
## Changelog
- Edited namespace as default
- Added grafana-reporter as a sidecar container in grafana's k8s deployment
- Grafana datasource (influxdb) & dashboard provisioning automated
- Added LB support to grafana service
- Move kube manifest separate directory
- Separated csv copy & load test function
- Added support to generate native jmeter report & copy back to local
## Reference
- "Load Testing Jmeter On Kubernetes" medium blog post: https://goo.gl/mkoX9E
- Original Github repo: https://github.com/kubernauts/jmeter-kubernetes
- Grafana-reporter - https://github.com/IzakMarais/reporter