Coder Social home page Coder Social logo

jmeter-kubernetes's People

Contributors

arashkaffamanesh avatar brentchang avatar davidkaz avatar double16 avatar infinitydon avatar oajamiehkfz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jmeter-kubernetes's Issues

Run on ARM64

Hi, i need help to run kubernauts pods on Apple M1 Arm64, when i check with k get -n kubernauts pod i have all pods in CrashLoopBackOff. How i can fix it?

reporter Dockerfile fail to build

Dockerfile fail at below step:
https://github.com/kubernauts/jmeter-kubernetes/blob/master/Dockerfile-reporter#L10

Error:
---> 6d935b41319b
Step 7/9 : RUN PACKAGES="wget libswitch-perl" && apt-get update && apt-get install -y -qq $PACKAGES --no-install-recommends && wget -qO- http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz |tar xz && cd install-tl-* && ./install-tl -profile /texlive.profile && rm -rf install-tl-* && apt-get remove --purge -y -qq $PACKAGES && apt-get autoremove --purge -y -qq && rm -rf /var/lib/apt/lists/* && mkdir /var/tex
---> Running in 820647b9f379

...

Processing triggers for libc-bin (2.24-11+deb9u4) ...
Profile not readable or not a file, continuing in interactive mode.
Loading https://mirrors.concertpass.com/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb
�[91m
./install-tl: TLPDB::from_file could not initialize from: https://mirrors.concertpass.com/tex-archive/systems/texlive/tlnet/tlpkg/texlive.tlpdb
./install-tl: Maybe the repository setting should be changed.
./install-tl: More info: https://tug.org/texlive/acquire.html
�[0mThe command '/bin/sh -c PACKAGES="wget libswitch-perl" && apt-get update && apt-get install -y -qq $PACKAGES --no-install-recommends && wget -qO- http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz |tar xz && cd install-tl-* && ./install-tl -profile /texlive.profile && rm -rf install-tl-* && apt-get remove --purge -y -qq $PACKAGES && apt-get autoremove --purge -y -qq && rm -rf /var/lib/apt/lists/* && mkdir /var/tex' returned a non-zero code: 1

Please advise on how to fix this issue. Thank you!

Error during installation

When I follow the instructions to run jmeter_cluster.sh, I get following errors -

error: unable to recognize "/home/amit/jmeter-kubernetes/jmeter_slaves_deploy.yaml": no matches for kind "Deployment" in version "apps/v1beta2"
service "jmeter-slaves-svc" created
Creating Jmeter Master
configmap "jmeter-load-test" created
error: unable to recognize "/home/amit/jmeter-kubernetes/jmeter_master_deploy.yaml": no matches for kind "Deployment" in version "apps/v1beta2"
Creating Influxdb and the service
configmap "influxdb-config" created
error: unable to recognize "/home/amit/jmeter-kubernetes/jmeter_influxdb_deploy.yaml": no matches for kind "Deployment" in version "apps/v1beta2"

Java Version Upgrade

Hello,

Are there any efforts in progress to upgrade the latest java version on Jmeter Master/Slave Codebase?
This tool is really helpful and would like to know if we can look for the latest docker image release.

Appreciate all your efforts.

Thanks!

Unable to Create New Native Thread

Hi, I'm having some issues with java OOM when trying to run with 60+ jmeter slaves. These errors don't occur when running 40 jmeter slaves. The errors I'm getting seem to be happening on the jmeter master pod. When starting my test, I am seeing a ton of:
May 07, 2019 5:21:13 PM sun.rmi.transport.tcp.TCPTransport$AcceptLoop executeAcceptLoop
WARNING: RMI TCP Accept-0: accept loop for ServerSocket[addr=0.0.0.0/0.0.0.0,localport=41335] throws
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:717)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:957)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1378)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:420)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
at java.lang.Thread.run(Thread.java:748)

I've tried playing around with Xms, Xmx, & Xss when starting jmeter, but to no avail. I scaled my jmster-master pod up to 4g of memory for limits, but I'm still having the same issues. Does anyone have any thoughts on what/how resources to scale up?

How to edit Test Plan settings

Hi,
Which file do i need to edit to edit the test execution. The current config is running with 2 users but i want to exert more load. Can you guide how to do that or is that a change i need to make via the jmeter ui? Thanks!!

Cannot load JDBC driver class error during Jmeter test

i have mssql-jdbc-7.0.0.jre8.jar copied into master and slave containers, which have openjdk:8-jdk-slim as base image.
When I run the jmeter script on master and slaves locally, they run fine. But when I try to remote start the test from master on the Slaves, they error with message : " Response message: java.sql.SQLException: Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' "

Do i need to add the jar to CLASSPATH on master and slaves? what am i missing?

curl not installed on grafana container

When running ./dashboard.sh, I get the following output:

Creating Influxdb jmeter Database
Creating the Influxdb data source
OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: "curl": executable file not found in $PATH": unknown
command terminated with exit code 126

When I use kubectl exec to connect to the jmeter-grafana container and try to run curl, I see the following output:

sh: 1: curl: not found

It appears as if curl is not installed in the container. Running apt-get install curl requires root password.

[Q] Passing parameters to jmeter scripts

Start the load testing by executing start_test.sh script

How to pass command line parameters to jmeter scripts (which makes scripts more flexible and give possibility to run same script with different parameters).

thx!

Unable to get results in Grafana

I have setup the same in my Kubernetes Cluster. But Nothing showing in the grafana. How can I show the hit/test results in Grafana. I already configured the DataSource in Grafana. But nothing showing in the Grafana.Please help.

Failure when running sample load test

Hi,

I have been stepping through the great article you guys provided at medium but when I get to the stage when I run the sample load test:

./start_test.sh 

I get the following back:

Error: Missing argument to option -R
Usage
	--?
		print command line options and exit
	-h, --help
		print usage information and exit
	-v, --version
		print the version information and exit
	-p, --propfile <argument>
		the jmeter property file to use
	-q, --addprop <argument>
		additional JMeter property file(s)
	-t, --testfile <argument>
		the jmeter test(.jmx) file to run. "-t LAST" will load last
		used file
	-l, --logfile <argument>
		the file to log samples to
	-i, --jmeterlogconf <argument>
		jmeter logging configuration file (log4j2.xml)
	-j, --jmeterlogfile <argument>
		jmeter run log file (jmeter.log)
	-n, --nongui
		run JMeter in nongui mode
	-s, --server
		run the JMeter server
	-H, --proxyHost <argument>
		Set a proxy server for JMeter to use
	-P, --proxyPort <argument>
		Set proxy server port for JMeter to use
	-N, --nonProxyHosts <argument>
		Set nonproxy host list (e.g. *.apache.org|localhost)
	-u, --username <argument>
		Set username for proxy server that JMeter is to use
	-a, --password <argument>
		Set password for proxy server that JMeter is to use
	-J, --jmeterproperty <argument>=<value>
		Define additional JMeter properties
	-G, --globalproperty <argument>=<value>
		Define Global properties (sent to servers)
		e.g. -Gport=123
		 or -Gglobal.properties
	-D, --systemproperty <argument>=<value>
		Define additional system properties
	-S, --systemPropertyFile <argument>
		additional system property file(s)
	-f, --forceDeleteResultFile
		force delete existing results files before start the test
	-L, --loglevel <argument>=<value>
		[category=]level e.g. jorphan=INFO, jmeter.util=DEBUG or com
		.example.foo=WARN
	-r, --runremote
		Start remote servers (as defined in remote_hosts)
	-R, --remotestart <argument>
		Start these remote servers (overrides remote_hosts)
	-d, --homedir <argument>
		the jmeter home directory to use
	-X, --remoteexit
		Exit the remote servers at end of test (non-GUI)
	-g, --reportonly <argument>
		generate report dashboard only, from a test results file
	-e, --reportatendofloadtests
		generate report dashboard after load test
	-o, --reportoutputfolder <argument>
		output folder for report dashboard

This happens even when running the command directly and from within the pod:

kubectl exec -n $tenant $master_pod /jmeter/load_test cloudssky.jmx

The only change I had to make was the version in the deployment yamls from apiVersion: apps/v1beta2 to apiVersion: apps/v1beta1 because I am running on an older version of k8.

(This is all on a minikube environment)

Can anyone help me out?

Metrics not sent to InfluxDB

Hi,
I successfully deployed all the setup (without ingress) and I manage to run load tests.
However, metrics do not reach the InfluxDB.
I've checked the DB logs that the queries from Grafana do reach it, I checked that jmeter database is presented, but I can't figure out why the metrics don't arrive.

I have also tried to figure out which pods I need to debug, but I can't find out whether the metrics are sent from the master from the reporter, and in any way, I have no clue how to check why they don't hit the DB.

Any tips regarding how to fix this?

chmod: changing permissions of '/root/load_test': Read-only file system

Following the steps from here: https://blog.kubernauts.io/load-testing-as-a-service-with-jmeter-on-kubernetes-fc5288bb0c8b

While launching the dashboard script...

$ ./dashboard.sh
Creating Influxdb jmeter Database
Creating the Influxdb data source
chmod: changing permissions of '/root/load_test': Read-only file system
command terminated with exit code 1
{"datasource":{"id":1,"orgId":1,"name":"jmeterdb","type":"influxdb","typeLogoUrl":"","access":"proxy","url":"http://jmeter-influxdb:8086","password":"admin","user":"admin","database":"jmeter","basicAuth":false,"basicAuthUser":"","basicAuthPassword":"","withCredentials":false,"isDefault":true,"secureJsonFields":{},"version":1,"readOnly":false},"id":1,"message":"Datasource added","name":"jmeterdb"}

$ kubelet --version
Kubernetes v1.9.6

It's not possible to run the tests.

Why my jmeter-slave pod could not running

Could you please help to check why my jmeter-slave couldn't run up. The status is Error or CrashLoopBackOff after I run the commands:
kubectl create -n $tenant -f $working_dir/jmeter_slaves_deploy.yaml
kubectl create -n $tenant -f $working_dir/jmeter_slaves_svc.yaml

I modified the apiVersion: apps/v1 In the jmeter_slaves_deploy.yaml file.
jmeter-slave status error

Grafana Link not working/ Containers are timing out while trying to ping them from local

HI,
So looks like all the steps are working for me. I wanted to know which ip/link should i use for accessing Grafana. Also, i have minkube installed but i want the grafana to be accessible to any user who wants to run a test. It would be great if you could answer these questions for me. Really appreciate your help. Thanks!!

  1. My assumption is that every user who wants to run a test should clone the repo and add the
    test script in there? Is that correct?
  2. Currently i have done this entire setup on my local with minikube but the same can be replicated with kubernetes running on the cloud?
  3. Grafana link for jmeter service is accessible to all users or any kind of set up needs to be done for any user? The idea is to get the cluster running and folks can just come in and execute the test by starting the ./start_test.sh (once i have initialized the cluster then they should not have to repeat this).
    Lastly, my original question regarding the grafana link. Below is the output . Could you guide me as to how i can access grafana via the jmeter service?

s-MacBook-Air:jmeter-operator $ ./initialize_cluster.sh
Enter the Jmeter Namespace: tqa
Creating Influxdb jmeter Database
Creating the Influxdb data source
{"datasource":{"id":1,"orgId":1,"name":"jmeterdb","type":"influxdb","typeLogoUrl":"","access":"proxy","url":"http://tqa-loadtest-influxdb:8086","password":"admin","user":"admin","database":"jmeter","basicAuth":false,"basicAuthUser":"","basicAuthPassword":"","withCredentials":false,"isDefault":true,"secureJsonFields":{},"version":1,"readOnly":false},"id":1,"message":"Datasource added","name":"jmeterdb"}s-MacBook-Air:jmeter-operator $ kubectl -n tqa get all
NAME READY STATUS RESTARTS AGE
pod/tqa-loadtest-grafana-7b8db9bdb5-v2rr4 1/1 Running 0 39m
pod/tqa-loadtest-influxdb-745b76b6d6-r6c49 1/1 Running 0 39m
pod/tqa-loadtest-jmeter-master-6cd6d7df46-4mm84 1/1 Running 0 40m
pod/tqa-loadtest-jmeter-slaves-768d8c4dc9-gj9 1/1 Running 0 39m
pod/tqa-loadtest-jmeter-slaves-768d8c4dc9-pbnhl 1/1 Running 0 39m

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/tqa-loadtest-grafana LoadBalancer 10.102.185.69 3000:31762/TCP 39m
service/tqa-loadtest-influxdb ClusterIP 10.96.154.198 8083/TCP,8086/TCP,2003/TCP 39m
service/tqa-loadtest-jmeter-slaves-svc ClusterIP None 1099/TCP,50000/TCP 39m

NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/tqa-loadtest-grafana 1/1 1 1 39m
deployment.apps/tqa-loadtest-influxdb 1/1 1 1 39m
deployment.apps/tqa-loadtest-jmeter-master 1/1 1 1 40m
deployment.apps/tqa-loadtest-jmeter-slaves 2/2 2 2 39m

NAME DESIRED CURRENT READY AGE
replicaset.apps/tqa-loadtest-grafana-7b8db9bdb5 1 1 1 39m
replicaset.apps/tqa-loadtest-influxdb-745b76b6d6 1 1 1 39m
replicaset.apps/tqa-loadtest-jmeter-master-6cd6d7df46 1 1 1 40m
replicaset.apps/tqa-loadtest-jmeter-slaves-768d8c4dc9 2

Looks like i dont have the grafana peice working as expected:
kubectl delete svc jmeter-grafana
Error from server (NotFound): services "jmeter-grafana" not found
s-MacBook-Air:jmeter-kubernetes asasd$ kubectl expose deployment jmeter-grafana --port=3000 --external-ip=$192.168.99.100 --type=NodePort
Error from server (NotFound): deployments.extensions "jmeter-grafana" not found

Trying to ping influx/grafana container is timing out from my local but containers are running:
ping 172.17.0.15
PING 172.17.0.15 (172.17.0.15): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2

--- 172.17.0.15 ping statistics ---
9 packets transmitted, 0 packets received, 100.0% packet loss
s-MacBook-Air:jmeter-kubernetes asdasd$ ping 172.17.0.14
PING 172.17.0.14 (172.17.0.14): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

Engine is busy

I have run the jmeter_stop.sh and if I rerun the script again its not working its just show engine is busy

Logs:
Starting the test @ Thu Apr 27 15:03:41 UTC 2023 (1682607821419)
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Engine is busy - please try later
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445

Error: Missing argument to option -R

I'm getting the error message "Error: Missing argument to option -R".
I'm using the "jmeter-kubernetes" to create a workload, i.e. WordPress client, and am collecting metrics on how the workload performs under various network stresses.
I'm running iperf3 to create network stress on the same host as the WordPress server.
When I set the iperf3 -w parameter to 1m I'm getting the error message "Error: Missing argument to option -R". Any ideas about the cause? What changes to start_test.sh to get more information?

master out of memory

is there a easy way to increase the memory allocation?

: "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"

or should we just uncomment this because we are running in DOCKER?


# Uncomment this if you run JMeter in DOCKER (need Java SE 8u131 or JDK 9)
# see https://blogs.oracle.com/java-platform-group/java-se-support-for-docker-cpu-and-memory-limits
# RUN_IN_DOCKER="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"

error during JRMP connection establishment; nested exception is: java.net.SocketException: Connection reset

Error when I run jmx scritp:

./load_test script.jmx
Creating summariser <summary>
Created the tree successfully using script.jmx
Configuring remote engine: 10.96.112.219
error during JRMP connection establishment; nested exception is:
	java.net.SocketException: Connection reset
Failed to configure 10.96.112.219
Stopping remote engines
Remote engines have been stopped
Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[10.96.112.219]
An error occurred: Error in NonGUIDriver Following remote engines could not be configured:[10.96.112.219]

Benchmarks Tesing with K8s Slave pods

@infinitydon , I have a requirement, raise 200k connections in 5min and send events to my environments. How can I check this Benchmark testing. How many slave pods I need to launch for generating 200k and send events.

Influxdb Permission denied issue

I have been trying to connect influxdb via kubernetes pod, its throwing me permissions denied messages like below:

I have no name!@influxdb-jmeter-645d9db66-qdzvd:/$ influx -username admin -password admin
Connected to http://localhost:8086 version 1.8.3
InfluxDB shell version: 1.8.3

use jmeter
Using database jmeter
There was an error writing history file: open /.influx_history: permission denied

Source of plugins folder

In the dockerfile of base image, there is such a line:
ADD jmeter-plugins/lib /jmeter/apache-jmeter-$JMETER_VERSION/lib

What is the content of the jmeter-plugins/lib folder? I can see the content in the docker image but I don't know from where I can download. I want to make the docker build process reproducible.

./dashboard.sh terminates with exit code 1

When the following command is executed

./dashboard.sh

I get the error

Error: unknown shorthand flag: 'e' in -execute
See 'influx -h' for help
command terminated with exit code 1

which is thrown from the line

kubectl exec -ti -n $tenant $influxdb_pod -- influx -execute 'CREATE DATABASE jmeter'

How do I solve this?

LICENSE file is missing

Could you please add LICENSE file? I have an open source project idea and I think I can use this repo as a base. I need it. Thanks.

master gui

I would like to use the jmeter GUI to create my own master plans. How would you expose the master's gui in the cluster created by your scripts?

influxdb cannot start

deployed to openshift 3.9

influxdb pod cannot start, log shows:

ts=2018-10-31T14:03:14.074095Z lvl=info msg="InfluxDB starting" log_id=0BUboP6G000 version=1.6.4 branch=1.6 commit=c75cdfdfa6f71a08473fefcec71f6cbcbdef1ff4
--
  | ts=2018-10-31T14:03:14.074200Z lvl=info msg="Go runtime" log_id=0BUboP6G000 version=go1.10.3 maxprocs=8
  | run: create server: mkdir all: mkdir /var/lib/influxdb/meta: permission denied

Selenium Integration

I have been trying to implement jmeter in kubernetes with webdriver/selenium. I am new jmeter, can you please provide some guidance to implement this integration.

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.