From 1074b38595f70b72fbcb28613cfb39b61d361074 Mon Sep 17 00:00:00 2001 From: daweins Date: Fri, 10 Jan 2020 20:51:41 +0000 Subject: [PATCH 01/24] Load testing success! --- jmeter.log | 45 +++++++ jmx/aksjmeterprops.txt | 2 + jmx/al.jmx | 109 +++++++++++++++++ jmx/alaws.jmx | 109 +++++++++++++++++ jmx/jmeter.log | 194 ++++++++++++++++++++++++++++++ jmx/main.jmx | 116 +++++++++--------- jmx/mainnokeepalive.jmx | 93 ++++++++++++++ k8sDefs/jmeter_master_deploy.yaml | 8 +- k8sDefs/jmeter_master_svc.yaml | 15 +++ start_testLoop.sh | 8 +- temp/testDefs/currentTests.csv | 12 +- temp/testDefs/steadylow.txt | 2 + temp/testDefs/testlimitlow.txt | 19 +-- 13 files changed, 645 insertions(+), 87 deletions(-) create mode 100644 jmeter.log create mode 100644 jmx/aksjmeterprops.txt create mode 100644 jmx/al.jmx create mode 100644 jmx/alaws.jmx create mode 100644 jmx/jmeter.log create mode 100644 jmx/mainnokeepalive.jmx create mode 100644 k8sDefs/jmeter_master_svc.yaml create mode 100644 temp/testDefs/steadylow.txt diff --git a/jmeter.log b/jmeter.log new file mode 100644 index 0000000..e023920 --- /dev/null +++ b/jmeter.log @@ -0,0 +1,45 @@ +2020/01/10 14:05:07 INFO - jmeter.util.JMeterUtils: Setting Locale to en +2020/01/10 14:05:08 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties +2020/01/10 14:05:08 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties +2020/01/10 14:05:08 INFO - jmeter.JMeter: Copyright (c) 1998-2015 The Apache Software Foundation +2020/01/10 14:05:08 INFO - jmeter.JMeter: Version 2.13.20170723 +2020/01/10 14:05:08 INFO - jmeter.JMeter: java.version=11.0.5 +2020/01/10 14:05:08 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM +2020/01/10 14:05:08 INFO - jmeter.JMeter: os.name=Linux +2020/01/10 14:05:08 INFO - jmeter.JMeter: os.arch=amd64 +2020/01/10 14:05:08 INFO - jmeter.JMeter: os.version=5.0.0-1027-azure +2020/01/10 14:05:08 INFO - jmeter.JMeter: file.encoding=UTF-8 +2020/01/10 14:05:08 INFO - jmeter.JMeter: Default Locale=English +2020/01/10 14:05:08 INFO - jmeter.JMeter: JMeter Locale=English +2020/01/10 14:05:08 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter +2020/01/10 14:05:08 INFO - jmeter.JMeter: user.dir =/home/daweins/code/laas/LaaSFork/LaaS +2020/01/10 14:05:08 INFO - jmeter.JMeter: PWD =/home/daweins/code/laas/LaaSFork/LaaS +2020/01/10 14:05:08 INFO - jmeter.JMeter: IP: 10.0.0.4 Name: perminfrubuntugnome FullName: perminfrubuntugnome +2020/01/10 14:05:08 INFO - jmeter.gui.action.LookAndFeelCommand: Using look and feel: javax.swing.plaf.metal.MetalLookAndFeel [Metal, CrossPlatform] +2020/01/10 14:05:08 INFO - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties +2020/01/10 14:05:09 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' +2020/01/10 14:05:09 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' +2020/01/10 14:05:10 INFO - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 +2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default +2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is +2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is +2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is +2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is +2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser +2020/01/10 14:05:10 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui +2020/01/10 14:05:10 INFO - jorphan.exec.KeyToolUtils: keytool found at 'keytool' +2020/01/10 14:05:10 INFO - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /usr/share/jmeter/bin/proxyserver.jks +2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times +2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 +2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true +2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 +2020/01/10 14:05:34 INFO - jmeter.services.FileServer: Default base='/home/daweins/code/laas/LaaSFork/LaaS' +2020/01/10 14:05:34 INFO - jmeter.gui.action.Load: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx +2020/01/10 14:05:34 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' +2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 +2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Using SaveService properties version 2.8 +2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Using SaveService properties file version 1656252 +2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 +2020/01/10 14:05:34 INFO - jmeter.save.SaveService: All converter versions present and correct +2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx +2020/01/10 14:05:34 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' diff --git a/jmx/aksjmeterprops.txt b/jmx/aksjmeterprops.txt new file mode 100644 index 0000000..397c350 --- /dev/null +++ b/jmx/aksjmeterprops.txt @@ -0,0 +1,2 @@ +# Increase the lifetime of a TCP connection to avoid SNAT port exhaustion due to AKS' use of Load Balancer +httpclient4.time_to_live=200000 \ No newline at end of file diff --git a/jmx/al.jmx b/jmx/al.jmx new file mode 100644 index 0000000..7003147 --- /dev/null +++ b/jmx/al.jmx @@ -0,0 +1,109 @@ + + + + + + false + true + + + + + + + + startnextloop + + false + -1 + + 20 + 0 + true + 6000 + + true + + + + 1 + 1200 + + + + + + + 52.167.17.34 + 80 + http + + ?marco + GET + false + false + false + false + + 1000 + 1000 + + + + + + + influxdbMetricsSender + org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender + = + + + influxdbUrl + http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter + = + + + application + cloudssky + = + + + measurement + jmeter + = + + + summaryOnly + false + = + + + samplersRegex + .* + = + + + percentiles + 90;95;99 + = + + + testTitle + Test name + = + + + eventTags + + = + + + + org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient + + + + + + + diff --git a/jmx/alaws.jmx b/jmx/alaws.jmx new file mode 100644 index 0000000..b7df948 --- /dev/null +++ b/jmx/alaws.jmx @@ -0,0 +1,109 @@ + + + + + + false + true + + + + + + + + startnextloop + + false + -1 + + 20 + 0 + true + 6000 + + true + + + + 1 + 1200 + + + + + + + Metrics-ALB-US-East-2-538738870.us-east-2.elb.amazonaws.com + 80 + http + + ?marco + GET + false + false + false + false + + 1000 + 1000 + + + + + + + influxdbMetricsSender + org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender + = + + + influxdbUrl + http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter + = + + + application + cloudssky + = + + + measurement + jmeter + = + + + summaryOnly + false + = + + + samplersRegex + .* + = + + + percentiles + 90;95;99 + = + + + testTitle + Test name + = + + + eventTags + + = + + + + org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient + + + + + + + diff --git a/jmx/jmeter.log b/jmx/jmeter.log new file mode 100644 index 0000000..3a148f1 --- /dev/null +++ b/jmx/jmeter.log @@ -0,0 +1,194 @@ +2020/01/09 15:04:38 INFO - jmeter.util.JMeterUtils: Setting Locale to en +2020/01/09 15:04:38 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties +2020/01/09 15:04:38 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties +2020/01/09 15:04:38 INFO - jmeter.JMeter: Copyright (c) 1998-2015 The Apache Software Foundation +2020/01/09 15:04:38 INFO - jmeter.JMeter: Version 2.13.20170723 +2020/01/09 15:04:38 INFO - jmeter.JMeter: java.version=11.0.5 +2020/01/09 15:04:38 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM +2020/01/09 15:04:38 INFO - jmeter.JMeter: os.name=Linux +2020/01/09 15:04:38 INFO - jmeter.JMeter: os.arch=amd64 +2020/01/09 15:04:38 INFO - jmeter.JMeter: os.version=5.0.0-1027-azure +2020/01/09 15:04:38 INFO - jmeter.JMeter: file.encoding=UTF-8 +2020/01/09 15:04:38 INFO - jmeter.JMeter: Default Locale=English +2020/01/09 15:04:38 INFO - jmeter.JMeter: JMeter Locale=English +2020/01/09 15:04:38 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter +2020/01/09 15:04:38 INFO - jmeter.JMeter: user.dir =/home/daweins/code/laas/LaaSFork/LaaS/jmx +2020/01/09 15:04:38 INFO - jmeter.JMeter: PWD =/home/daweins/code/laas/LaaSFork/LaaS/jmx +2020/01/09 15:04:38 INFO - jmeter.JMeter: IP: 10.0.0.4 Name: perminfrubuntugnome FullName: perminfrubuntugnome +2020/01/09 15:04:38 INFO - jmeter.services.FileServer: Default base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' +2020/01/09 15:04:38 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' +2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 +2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Using SaveService properties version 2.8 +2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Using SaveService properties file version 1656252 +2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 +2020/01/09 15:04:38 INFO - jmeter.save.SaveService: All converter versions present and correct +2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Loading file: main.jmx +2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default +2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is +2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is +2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is +2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is +2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser +2020/01/09 15:04:38 INFO - jmeter.JMeter: Creating summariser +2020/01/09 15:04:38 INFO - jmeter.engine.StandardJMeterEngine: Listeners will be started after enabling running version +2020/01/09 15:04:38 INFO - jmeter.engine.StandardJMeterEngine: To revert to the earlier behaviour, define jmeterengine.startlistenerslater=false +2020/01/09 15:04:38 INFO - jmeter.engine.StandardJMeterEngine: Running the test! +2020/01/09 15:04:38 INFO - jmeter.samplers.SampleEvent: List of sample_variables: [] +2020/01/09 15:04:38 INFO - jmeter.samplers.SampleEvent: List of sample_variables: [] +2020/01/09 15:04:38 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' +2020/01/09 15:04:38 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' +2020/01/09 15:04:39 INFO - jmeter.JMeter: Running test (1578582279067) +2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Main +2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: Starting 100 threads for group Main. +2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error +2020/01/09 15:04:39 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 100 ramp-up 1 perThread 10.0 delayedStart=false +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: jmeterthread.startearlier=true (see jmeter.properties) +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Running PostProcessors in forward order +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-1 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-2 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-3 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-4 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-5 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-6 +2020/01/09 15:04:39 INFO - jmeter.protocol.http.sampler.HTTPHCAbstractImpl: Local host = perminfrubuntugnome +2020/01/09 15:04:39 INFO - jmeter.protocol.http.sampler.HTTPHC4Impl: HTTP request retry count = 0 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-7 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-8 +2020/01/09 15:04:39 INFO - jmeter.protocol.http.sampler.HTTPHC4Impl: Setting up HTTPS TrustAll scheme +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-9 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-10 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-11 +2020/01/09 15:04:39 INFO - jmeter.util.JsseSSLManager: Using default SSL protocol: TLS +2020/01/09 15:04:39 INFO - jmeter.util.JsseSSLManager: SSL session context: per-thread +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-12 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-13 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-14 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-15 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-16 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-17 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-19 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-18 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-20 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-21 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-23 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-22 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-24 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-25 +2020/01/09 15:04:39 INFO - jmeter.threads.ThreadGroup: Started thread group number 1 +2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-26 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-27 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-28 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-29 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-30 +2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times +2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 +2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true +2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-31 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-32 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-33 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-34 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-35 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-36 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-37 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-38 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-39 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-40 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-41 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-42 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-43 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-44 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-45 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-46 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-47 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-48 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-49 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-50 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-51 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-52 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-53 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-54 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-56 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-55 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-57 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-58 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-59 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-60 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-61 +2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-62 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-63 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-64 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-65 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-66 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-67 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-68 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-69 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-70 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-71 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-72 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-73 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-74 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-75 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-76 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-77 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-78 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-79 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-80 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-81 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-82 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-83 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-84 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-85 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-86 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-87 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-88 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-89 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-90 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-91 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-92 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-93 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-94 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-95 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-96 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-97 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-98 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-99 +2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-100 +2020/01/09 15:05:00 INFO - jmeter.reporters.Summariser: summary + 2059 in 21s = 98.3/s Avg: 555 Min: 541 Max: 872 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:05:30 INFO - jmeter.reporters.Summariser: summary + 2999 in 30s = 100.0/s Avg: 550 Min: 541 Max: 623 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:05:30 INFO - jmeter.reporters.Summariser: summary = 5058 in 51s = 99.3/s Avg: 552 Min: 541 Max: 872 Err: 0 (0.00%) +2020/01/09 15:06:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 551 Min: 541 Max: 626 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:06:00 INFO - jmeter.reporters.Summariser: summary = 8058 in 81s = 99.6/s Avg: 552 Min: 541 Max: 872 Err: 0 (0.00%) +2020/01/09 15:06:30 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.0/s Avg: 555 Min: 541 Max: 881 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:06:30 INFO - jmeter.reporters.Summariser: summary = 11059 in 111s = 99.7/s Avg: 553 Min: 541 Max: 881 Err: 0 (0.00%) +2020/01/09 15:07:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 553 Min: 541 Max: 878 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:07:00 INFO - jmeter.reporters.Summariser: summary = 14059 in 141s = 99.7/s Avg: 553 Min: 541 Max: 881 Err: 0 (0.00%) +2020/01/09 15:07:30 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 551 Min: 541 Max: 681 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:07:30 INFO - jmeter.reporters.Summariser: summary = 17059 in 171s = 99.8/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) +2020/01/09 15:08:00 INFO - jmeter.reporters.Summariser: summary + 2999 in 30s = 100.0/s Avg: 551 Min: 541 Max: 605 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:08:00 INFO - jmeter.reporters.Summariser: summary = 20058 in 201s = 99.8/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) +2020/01/09 15:08:30 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.0/s Avg: 553 Min: 541 Max: 621 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:08:30 INFO - jmeter.reporters.Summariser: summary = 23059 in 231s = 99.8/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) +2020/01/09 15:09:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 553 Min: 541 Max: 596 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:09:00 INFO - jmeter.reporters.Summariser: summary = 26059 in 261s = 99.9/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) +2020/01/09 15:09:30 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 556 Min: 541 Max: 1032 Err: 3 (0.10%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:09:30 INFO - jmeter.reporters.Summariser: summary = 29059 in 291s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 3 (0.01%) +2020/01/09 15:10:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 554 Min: 541 Max: 1002 Err: 1 (0.03%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:10:00 INFO - jmeter.reporters.Summariser: summary = 32059 in 321s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 4 (0.01%) +2020/01/09 15:10:30 INFO - jmeter.reporters.Summariser: summary + 2999 in 30s = 100.0/s Avg: 553 Min: 541 Max: 1002 Err: 2 (0.07%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:10:30 INFO - jmeter.reporters.Summariser: summary = 35058 in 351s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.02%) +2020/01/09 15:11:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 553 Min: 541 Max: 622 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:11:00 INFO - jmeter.reporters.Summariser: summary = 38058 in 381s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.02%) +2020/01/09 15:11:30 INFO - jmeter.reporters.Summariser: summary + 3002 in 30s = 100.0/s Avg: 552 Min: 541 Max: 596 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:11:30 INFO - jmeter.reporters.Summariser: summary = 41060 in 411s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.01%) +2020/01/09 15:12:00 INFO - jmeter.reporters.Summariser: summary + 2998 in 30s = 100.0/s Avg: 552 Min: 541 Max: 604 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:12:00 INFO - jmeter.reporters.Summariser: summary = 44058 in 441s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.01%) +2020/01/09 15:12:30 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.0/s Avg: 554 Min: 541 Max: 635 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:12:30 INFO - jmeter.reporters.Summariser: summary = 47059 in 471s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.01%) +2020/01/09 15:13:00 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.1/s Avg: 552 Min: 541 Max: 1002 Err: 1 (0.03%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:13:00 INFO - jmeter.reporters.Summariser: summary = 50060 in 501s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 7 (0.01%) +2020/01/09 15:13:30 INFO - jmeter.reporters.Summariser: summary + 2998 in 30s = 99.9/s Avg: 553 Min: 541 Max: 618 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 +2020/01/09 15:13:30 INFO - jmeter.reporters.Summariser: summary = 53058 in 531s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 7 (0.01%) +2020/01/09 15:13:46 INFO - jmeter.reporters.ResultCollector: Shutdown hook started +2020/01/09 15:13:46 INFO - jmeter.reporters.ResultCollector: Shutdown hook ended diff --git a/jmx/main.jmx b/jmx/main.jmx index 31471fe..105ffd2 100644 --- a/jmx/main.jmx +++ b/jmx/main.jmx @@ -1,10 +1,10 @@ - + - + false - true + false @@ -12,81 +12,81 @@ - startnextloop + continue false -1 - ${__P(numUsers,5)} - ${__P(ramp,0)} + ${__P(numUsers,100)} + 1 + 1578521449000 + 1578521449000 true - ${__P(duration,90)} + ${__P(duration,600)} - true - - 1 - ${__P(throughputPerMin,300)} - - - + - ${__P(targetIP,20.41.60.31)} + ${__P(targetIP,52.167.17.34)} 80 - http + 1000 + 1000 + ${__P(path,/?marco)} GET false false - false + true false + HttpClient4 + false - 1000 - 1000 - - - false - - saveConfig - - - true - true - true - - true - true - true - false - false - false - false - true - false - false - true - false - false - true - true - 10 - true - true - true - true - true - true - - - ${__P(outFile,C:\Users\gobibearAdmin\Desktop\results\resultsMultiVMs.csv)} - - - + + + 4 + ${__P(throughputPerMin,6000)} + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + false + true + false + false + false + true + false + false + false + false + 0 + true + true + true + true + + + ${__P(outFile,/tmp/j.txt)} + + diff --git a/jmx/mainnokeepalive.jmx b/jmx/mainnokeepalive.jmx new file mode 100644 index 0000000..fea60cd --- /dev/null +++ b/jmx/mainnokeepalive.jmx @@ -0,0 +1,93 @@ + + + + + + false + false + + + + + + + + continue + + false + -1 + + ${__P(numUsers,100)} + 1 + 1578521449000 + 1578521449000 + true + ${__P(duration,600)} + + + + + + + + ${__P(targetIP,52.167.17.34)} + 80 + 1000 + 1000 + + + ${__P(path,/?marco)} + GET + false + false + false + false + HttpClient4 + false + + + + + 4 + ${__P(throughputPerMin,6000)} + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + false + true + false + false + false + true + false + false + false + false + 0 + true + true + true + true + + + ${__P(outFile,/tmp/j.txt)} + + + + + + diff --git a/k8sDefs/jmeter_master_deploy.yaml b/k8sDefs/jmeter_master_deploy.yaml index ec3f87d..0ba5e2f 100644 --- a/k8sDefs/jmeter_master_deploy.yaml +++ b/k8sDefs/jmeter_master_deploy.yaml @@ -19,15 +19,15 @@ spec: env: - name: 'JVM_ARGS' value: '-Xms756M -Xmx756M' - image: kubernautslabs/jmeter_master:latest + image: daweins/jmeterbase:v1 imagePullPolicy: IfNotPresent resources: requests: memory: "1024Mi" - cpu: "2000m" + cpu: "500m" limits: - memory: "1500Mi" - cpu: "4000m" + memory: "1024Mi" + cpu: "1000m" command: [ "/bin/bash", "-c", "--" ] args: [ "while [ ! -f /tmp/isdone ]; do sleep 30; done;" ] volumeMounts: diff --git a/k8sDefs/jmeter_master_svc.yaml b/k8sDefs/jmeter_master_svc.yaml new file mode 100644 index 0000000..78655d4 --- /dev/null +++ b/k8sDefs/jmeter_master_svc.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: jmeter-master + labels: + app: jmeter-master +spec: + loadBalancerIP: 51.143.5.25 + type: LoadBalancer + ports: + - port: 80 + name: http + targetPort: 80 + selector: + app: jmeter-master \ No newline at end of file diff --git a/start_testLoop.sh b/start_testLoop.sh index e3135f7..6e19435 100755 --- a/start_testLoop.sh +++ b/start_testLoop.sh @@ -125,7 +125,7 @@ do # Check if job is currently running kubectl -n $workloadTenant get pods podStatus=`kubectl -n $workloadTenant get pods` - if [[ $podStatus == *Running* ]] + if [[ $podStatus == *Running* || $podStatus == *Image* ]] then echo Job is still running in $workloadTenant else @@ -163,9 +163,9 @@ do # TODO - Talk to Al about this - should probably be done in the image. Al agrees - - kubectl exec -i -n $workloadTenant $master_pod -- apt-get update - kubectl exec -i -n $workloadTenant $master_pod -- apt install curl -y --fix-missing + # Moved to the image + #kubectl exec -i -n $workloadTenant $master_pod -- apt-get update + #kubectl exec -i -n $workloadTenant $master_pod -- apt install curl -y --fix-missing # Not needed - using Azure Files to upload rather than blob kubectl exec -i -n $workloadTenant $master_pod -- curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash # run the script diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv index ba3862d..486c8b4 100644 --- a/temp/testDefs/currentTests.csv +++ b/temp/testDefs/currentTests.csv @@ -1,13 +1,9 @@ CurTest, Enabled, CurEndPoint,Path, CurTestName bing,FALSE,www.bing.com,,testlimit.txt -azcatsynthappbaseline,FALSE,52.138.116.190,?marco,jediprod.txt -azcatsynthappbaseline,FALSE,52.138.116.190,?marco,steady.txt -azcatsynthappbaseline,FALSE,52.138.116.190,?marco,testlimit.txt -azcatsynthappnocrasha,FALSE,52.167.17.34,?marco,testlimitlow.txt -azcatsynthappnocrashb,FALSE,52.167.17.34,?marco,testlimitlow.txt -azcatsynthappnocrashc,FALSE,52.167.17.34,?marco,testlimitlow.txt -azcatsynthappnocrashd,FALSE,52.167.17.34,?marco,steady.txt -helloworld,TRUE,azcathelloworld.azurewebsites.net,?marco,steady.txt +azcatsynthappnocrash,TRUE,52.167.17.34,?marco,jediprod.txt +azcatsynthappbaseline,TRUE,52.138.116.190,?marco,jediprod.txt +helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt + diff --git a/temp/testDefs/steadylow.txt b/temp/testDefs/steadylow.txt new file mode 100644 index 0000000..53060b1 --- /dev/null +++ b/temp/testDefs/steadylow.txt @@ -0,0 +1,2 @@ +NumUsers, DurationSeconds, RampSeconds +1,1800,1 \ No newline at end of file diff --git a/temp/testDefs/testlimitlow.txt b/temp/testDefs/testlimitlow.txt index 2e1ba59..d5d85e9 100644 --- a/temp/testDefs/testlimitlow.txt +++ b/temp/testDefs/testlimitlow.txt @@ -1,14 +1,7 @@ NumUsers, DurationSeconds, RampSeconds -1,60,0 -2,60,0 -3,60,0 -4,60,0 -5,60,0 -6,60,0 -7,60,0 -8,60,0 -9,60,0 -10,60,0 -50,60,0 -100,60,0 -200,60,0 \ No newline at end of file +10,60,1 +50,60,1 +100,60,1 +200,60,1 +400,60,1 +800,60,1 \ No newline at end of file From 786ab8919b5f489c44cb0f9d5fcb8fac46a18952 Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 13 Jan 2020 16:54:26 +0000 Subject: [PATCH 02/24] Working! --- jmeter.log | 90 +++++++++++++++++----------------- jmx/main.jmx | 14 +++--- payload_script.sh | 2 +- temp/testDefs/currentTests.csv | 6 ++- 4 files changed, 58 insertions(+), 54 deletions(-) diff --git a/jmeter.log b/jmeter.log index e023920..3908930 100644 --- a/jmeter.log +++ b/jmeter.log @@ -1,45 +1,45 @@ -2020/01/10 14:05:07 INFO - jmeter.util.JMeterUtils: Setting Locale to en -2020/01/10 14:05:08 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties -2020/01/10 14:05:08 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties -2020/01/10 14:05:08 INFO - jmeter.JMeter: Copyright (c) 1998-2015 The Apache Software Foundation -2020/01/10 14:05:08 INFO - jmeter.JMeter: Version 2.13.20170723 -2020/01/10 14:05:08 INFO - jmeter.JMeter: java.version=11.0.5 -2020/01/10 14:05:08 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM -2020/01/10 14:05:08 INFO - jmeter.JMeter: os.name=Linux -2020/01/10 14:05:08 INFO - jmeter.JMeter: os.arch=amd64 -2020/01/10 14:05:08 INFO - jmeter.JMeter: os.version=5.0.0-1027-azure -2020/01/10 14:05:08 INFO - jmeter.JMeter: file.encoding=UTF-8 -2020/01/10 14:05:08 INFO - jmeter.JMeter: Default Locale=English -2020/01/10 14:05:08 INFO - jmeter.JMeter: JMeter Locale=English -2020/01/10 14:05:08 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter -2020/01/10 14:05:08 INFO - jmeter.JMeter: user.dir =/home/daweins/code/laas/LaaSFork/LaaS -2020/01/10 14:05:08 INFO - jmeter.JMeter: PWD =/home/daweins/code/laas/LaaSFork/LaaS -2020/01/10 14:05:08 INFO - jmeter.JMeter: IP: 10.0.0.4 Name: perminfrubuntugnome FullName: perminfrubuntugnome -2020/01/10 14:05:08 INFO - jmeter.gui.action.LookAndFeelCommand: Using look and feel: javax.swing.plaf.metal.MetalLookAndFeel [Metal, CrossPlatform] -2020/01/10 14:05:08 INFO - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties -2020/01/10 14:05:09 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' -2020/01/10 14:05:09 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' -2020/01/10 14:05:10 INFO - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 -2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default -2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is -2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is -2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is -2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is -2020/01/10 14:05:10 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser -2020/01/10 14:05:10 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui -2020/01/10 14:05:10 INFO - jorphan.exec.KeyToolUtils: keytool found at 'keytool' -2020/01/10 14:05:10 INFO - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /usr/share/jmeter/bin/proxyserver.jks -2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times -2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 -2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true -2020/01/10 14:05:11 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 -2020/01/10 14:05:34 INFO - jmeter.services.FileServer: Default base='/home/daweins/code/laas/LaaSFork/LaaS' -2020/01/10 14:05:34 INFO - jmeter.gui.action.Load: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx -2020/01/10 14:05:34 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' -2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 -2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Using SaveService properties version 2.8 -2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Using SaveService properties file version 1656252 -2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 -2020/01/10 14:05:34 INFO - jmeter.save.SaveService: All converter versions present and correct -2020/01/10 14:05:34 INFO - jmeter.save.SaveService: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx -2020/01/10 14:05:34 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' +2020/01/13 16:07:54 INFO - jmeter.util.JMeterUtils: Setting Locale to en +2020/01/13 16:07:55 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties +2020/01/13 16:07:55 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties +2020/01/13 16:07:55 INFO - jmeter.JMeter: Copyright (c) 1998-2015 The Apache Software Foundation +2020/01/13 16:07:55 INFO - jmeter.JMeter: Version 2.13.20170723 +2020/01/13 16:07:55 INFO - jmeter.JMeter: java.version=11.0.5 +2020/01/13 16:07:55 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM +2020/01/13 16:07:55 INFO - jmeter.JMeter: os.name=Linux +2020/01/13 16:07:55 INFO - jmeter.JMeter: os.arch=amd64 +2020/01/13 16:07:55 INFO - jmeter.JMeter: os.version=5.0.0-1027-azure +2020/01/13 16:07:55 INFO - jmeter.JMeter: file.encoding=UTF-8 +2020/01/13 16:07:55 INFO - jmeter.JMeter: Default Locale=English +2020/01/13 16:07:55 INFO - jmeter.JMeter: JMeter Locale=English +2020/01/13 16:07:55 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter +2020/01/13 16:07:55 INFO - jmeter.JMeter: user.dir =/home/daweins/code/laas/LaaSFork/LaaS +2020/01/13 16:07:55 INFO - jmeter.JMeter: PWD =/home/daweins/code/laas/LaaSFork/LaaS +2020/01/13 16:07:55 INFO - jmeter.JMeter: IP: 10.0.0.4 Name: perminfrubuntugnome FullName: perminfrubuntugnome +2020/01/13 16:07:55 INFO - jmeter.gui.action.LookAndFeelCommand: Using look and feel: javax.swing.plaf.metal.MetalLookAndFeel [Metal, CrossPlatform] +2020/01/13 16:07:55 INFO - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties +2020/01/13 16:07:56 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' +2020/01/13 16:07:56 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' +2020/01/13 16:07:56 INFO - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 +2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default +2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is +2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is +2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is +2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is +2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser +2020/01/13 16:07:57 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui +2020/01/13 16:07:57 INFO - jorphan.exec.KeyToolUtils: keytool found at 'keytool' +2020/01/13 16:07:57 INFO - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /usr/share/jmeter/bin/proxyserver.jks +2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times +2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 +2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true +2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 +2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Default base='/home/daweins/code/laas/LaaSFork/LaaS' +2020/01/13 16:08:03 INFO - jmeter.gui.action.Load: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx +2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' +2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 +2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties version 2.8 +2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties file version 1656252 +2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 +2020/01/13 16:08:03 INFO - jmeter.save.SaveService: All converter versions present and correct +2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx +2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' diff --git a/jmx/main.jmx b/jmx/main.jmx index 105ffd2..b02043b 100644 --- a/jmx/main.jmx +++ b/jmx/main.jmx @@ -48,7 +48,7 @@ - 4 + 1 ${__P(throughputPerMin,6000)} @@ -61,18 +61,18 @@ true true true - + true - true + false true - true + false false false - true + false false false false - true + false false false false @@ -80,7 +80,9 @@ 0 true true + true true + true true diff --git a/payload_script.sh b/payload_script.sh index d465989..7ee9445 100644 --- a/payload_script.sh +++ b/payload_script.sh @@ -41,7 +41,7 @@ done echo 10 second sleep sleep 10 echo Moving Output -mv $tmpDir*.csv $destDir*.csv +mv $tmpDir*.csv $destDir echo Waiting to allow files to sync to Azure sleep 60 diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv index 486c8b4..a6a49f8 100644 --- a/temp/testDefs/currentTests.csv +++ b/temp/testDefs/currentTests.csv @@ -1,8 +1,10 @@ CurTest, Enabled, CurEndPoint,Path, CurTestName bing,FALSE,www.bing.com,,testlimit.txt -azcatsynthappnocrash,TRUE,52.167.17.34,?marco,jediprod.txt -azcatsynthappbaseline,TRUE,52.138.116.190,?marco,jediprod.txt +azcatsynthappnocrash,FALSE,52.167.17.34,?marco,jediprod.txt +azcatsynthappbaseline,FALSE,52.138.116.190,?marco,jediprod.txt helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt +azcatsynthappnocrashminimal,TRUE,52.167.17.34,?marco,minimaltest.txt +azcatsynthappbaselineminimal,TRUE,52.138.116.190,?marco,minimaltest.txt From c333f3febbd3fea4b25b94462cb34d54fa9e9309 Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 13 Jan 2020 17:59:00 +0000 Subject: [PATCH 03/24] Moved output to BLOB for easier ingestion --- k8sDefs/jmeter_master_deploy.yaml | 15 +++++++-------- payload_script.sh | 13 +++++++------ start_testLoop.sh | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/k8sDefs/jmeter_master_deploy.yaml b/k8sDefs/jmeter_master_deploy.yaml index 0ba5e2f..88b5923 100644 --- a/k8sDefs/jmeter_master_deploy.yaml +++ b/k8sDefs/jmeter_master_deploy.yaml @@ -19,7 +19,7 @@ spec: env: - name: 'JVM_ARGS' value: '-Xms756M -Xmx756M' - image: daweins/jmeterbase:v1 + image: daweins/jmeterbase:v3 imagePullPolicy: IfNotPresent resources: requests: @@ -34,8 +34,9 @@ spec: - name: loadtest mountPath: /load_test subPath: "load_test" - - name: azure - mountPath: "/mnt/azure" + - name: azblob + mountPath: "/etc/azblob" + readOnly: true ports: - containerPort: 60000 restartPolicy: OnFailure @@ -43,8 +44,6 @@ spec: - name: loadtest configMap: name: jmeter-load-test - - name: azure - azureFile: # https://docs.microsoft.com/en-us/azure/aks/azure-files-volume - secretName: jmeterlogsecret - shareName: jmeterlogs - readOnly: false \ No newline at end of file + - name: azblob + secret: + secretName: azblob \ No newline at end of file diff --git a/payload_script.sh b/payload_script.sh index 7ee9445..eb227b4 100644 --- a/payload_script.sh +++ b/payload_script.sh @@ -38,12 +38,13 @@ do done # Upload to storage -echo 10 second sleep -sleep 10 +echo 1 second sleep +sleep 1 echo Moving Output -mv $tmpDir*.csv $destDir - -echo Waiting to allow files to sync to Azure -sleep 60 +#mv $tmpDir*.csv $destDir +echo Copying to BLOB +blobToken=`cat /etc/azblob/azblobsas` +az storage blob upload-batch --account-name storannandale -s $tmpDir -d aksjmeter --pattern *.csv --sas-token $blobToken +#sleep 60 echo Signal completion echo Complete >> /tmp/isdone diff --git a/start_testLoop.sh b/start_testLoop.sh index 6e19435..0cd35a6 100755 --- a/start_testLoop.sh +++ b/start_testLoop.sh @@ -137,7 +137,7 @@ do kubectl create namespace $workloadTenant echo Cloning Secret # TODO - Talk to Al if this is reasonable. Note assumption that there is a secret to clone from. Al says I can do this with permissions across namespaces - kubectl get secret jmeterlogsecret -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - + kubectl get secret azblob -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - # Create Master pod details echo "Creating Jmeter Master" From 794dbb36d32ee7891bb4297d206902bc03e5aafd Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 17:27:36 +0000 Subject: [PATCH 04/24] Cleaned up --- GrafanaJMeterTemplate.json | 1609 ------------------------ jmeter.log | 45 - jmeter_cluster_deploy_monitoring.sh | 90 -- jmeter_cluster_deploy_test_rig.sh | 99 -- jmx/aksjmeterprops.txt | 2 - jmx/al.jmx | 109 -- jmx/alaws.jmx | 109 -- jmx/baseline.jmx | 109 -- jmx/jmeter.log | 194 --- jmx/main2.jmx | 93 -- jmx/main_std.jmx | 93 -- jmx/mainnokeepalive.jmx | 93 -- jmx/parameterized.jmx | 93 -- jmx/parameterizedramp.jmx | 98 -- jmx/ramp.jmx | 98 -- jmx/standard-run.jmx | 113 -- jmx/testload-three.jmx | 113 -- jmx/testload-two.jmx | 113 -- k8sDefs/jmeter_grafana_deploy.yaml | 36 - k8sDefs/jmeter_grafana_svc.yaml | 13 - k8sDefs/jmeter_influxdb_configmap.yaml | 21 - k8sDefs/jmeter_influxdb_deploy.yaml | 34 - k8sDefs/jmeter_influxdb_svc.yaml | 19 - k8sDefs/jmeter_master_deploy.yaml | 2 +- k8sDefs/jmeter_slaves_deploy.yaml | 23 - k8sDefs/jmeter_slaves_svc.yaml | 17 - payload_script.sh | 17 +- start_full_test.sh | 145 --- start_jmeterPods.sh | 102 -- start_test.sh | 33 - start_testLoop.sh | 3 + temp/testDefs/1minutepause.txt | 2 - temp/testDefs/5minutepause.txt | 2 - temp/testDefs/annandaleignite.txt | 5 - temp/testDefs/annandaleignitelong.txt | 3 - temp/testDefs/awsTest.txt | 12 - temp/testDefs/currentTests.csv | 7 +- temp/testDefs/eastus1-dynamo.txt | 2 - temp/testDefs/eastus1-peek.txt | 2 - temp/testDefs/eastus1-rds.txt | 2 - temp/testDefs/eastus1-s3.txt | 2 - temp/testDefs/eastus2-dynamo.txt | 2 - temp/testDefs/eastus2-peek.txt | 2 - temp/testDefs/eastus2-rds.txt | 2 - temp/testDefs/eastus2-s3.txt | 2 - temp/testDefs/flatLoad.txt | 2 - temp/testDefs/jedi_short.txt | 8 - temp/testDefs/jedilikeaws.txt | 6 - temp/testDefs/minimaltest.txt | 2 - temp/testDefs/ramptest.txt | 6 - temp/testDefs/singlepoke.txt | 2 - temp/testDefs/steady.txt | 2 - temp/testDefs/steadylow.txt | 2 - temp/testDefs/testlimit.txt | 41 +- temp/testDefs/testlimitlow.txt | 7 - temp/testDefs/westus1-dynamo.txt | 2 - temp/testDefs/westus1-peek.txt | 2 - temp/testDefs/westus1-rds.txt | 2 - temp/testDefs/westus1-s3.txt | 2 - temp/testDefs/westus2-dynamo.txt | 2 - temp/testDefs/westus2-peek.txt | 2 - temp/testDefs/westus2-rds.txt | 2 - temp/testDefs/westus2-s3.txt | 2 - test_manual.sh | 31 - test_runs/testRunConfig.txt | 3 - testrun.sh | 40 - workloadTenant_export | 1 - 67 files changed, 21 insertions(+), 3933 deletions(-) delete mode 100755 GrafanaJMeterTemplate.json delete mode 100644 jmeter.log delete mode 100755 jmeter_cluster_deploy_monitoring.sh delete mode 100755 jmeter_cluster_deploy_test_rig.sh delete mode 100644 jmx/aksjmeterprops.txt delete mode 100644 jmx/al.jmx delete mode 100644 jmx/alaws.jmx delete mode 100644 jmx/baseline.jmx delete mode 100644 jmx/jmeter.log delete mode 100644 jmx/main2.jmx delete mode 100644 jmx/main_std.jmx delete mode 100644 jmx/mainnokeepalive.jmx delete mode 100644 jmx/parameterized.jmx delete mode 100644 jmx/parameterizedramp.jmx delete mode 100644 jmx/ramp.jmx delete mode 100644 jmx/standard-run.jmx delete mode 100644 jmx/testload-three.jmx delete mode 100644 jmx/testload-two.jmx delete mode 100644 k8sDefs/jmeter_grafana_deploy.yaml delete mode 100644 k8sDefs/jmeter_grafana_svc.yaml delete mode 100644 k8sDefs/jmeter_influxdb_configmap.yaml delete mode 100644 k8sDefs/jmeter_influxdb_deploy.yaml delete mode 100644 k8sDefs/jmeter_influxdb_svc.yaml delete mode 100644 k8sDefs/jmeter_slaves_deploy.yaml delete mode 100644 k8sDefs/jmeter_slaves_svc.yaml delete mode 100755 start_full_test.sh delete mode 100755 start_jmeterPods.sh delete mode 100755 start_test.sh delete mode 100644 temp/testDefs/1minutepause.txt delete mode 100644 temp/testDefs/5minutepause.txt delete mode 100644 temp/testDefs/annandaleignite.txt delete mode 100644 temp/testDefs/annandaleignitelong.txt delete mode 100644 temp/testDefs/awsTest.txt delete mode 100644 temp/testDefs/eastus1-dynamo.txt delete mode 100644 temp/testDefs/eastus1-peek.txt delete mode 100644 temp/testDefs/eastus1-rds.txt delete mode 100644 temp/testDefs/eastus1-s3.txt delete mode 100644 temp/testDefs/eastus2-dynamo.txt delete mode 100644 temp/testDefs/eastus2-peek.txt delete mode 100644 temp/testDefs/eastus2-rds.txt delete mode 100644 temp/testDefs/eastus2-s3.txt delete mode 100644 temp/testDefs/flatLoad.txt delete mode 100644 temp/testDefs/jedi_short.txt delete mode 100644 temp/testDefs/jedilikeaws.txt delete mode 100644 temp/testDefs/minimaltest.txt delete mode 100644 temp/testDefs/ramptest.txt delete mode 100644 temp/testDefs/singlepoke.txt delete mode 100644 temp/testDefs/steady.txt delete mode 100644 temp/testDefs/steadylow.txt delete mode 100644 temp/testDefs/testlimitlow.txt delete mode 100644 temp/testDefs/westus1-dynamo.txt delete mode 100644 temp/testDefs/westus1-peek.txt delete mode 100644 temp/testDefs/westus1-rds.txt delete mode 100644 temp/testDefs/westus1-s3.txt delete mode 100644 temp/testDefs/westus2-dynamo.txt delete mode 100644 temp/testDefs/westus2-peek.txt delete mode 100644 temp/testDefs/westus2-rds.txt delete mode 100644 temp/testDefs/westus2-s3.txt delete mode 100755 test_manual.sh delete mode 100644 test_runs/testRunConfig.txt delete mode 100755 testrun.sh delete mode 100644 workloadTenant_export diff --git a/GrafanaJMeterTemplate.json b/GrafanaJMeterTemplate.json deleted file mode 100755 index d887fc6..0000000 --- a/GrafanaJMeterTemplate.json +++ /dev/null @@ -1,1609 +0,0 @@ -{ - "__inputs": [ - { - "name": "DS_JMETERDB", - "label": "jmeterdb", - "description": "", - "type": "datasource", - "pluginId": "influxdb", - "pluginName": "InfluxDB" - } - ], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "5.2.0" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "5.0.0" - }, - { - "type": "datasource", - "id": "influxdb", - "name": "InfluxDB", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "singlestat", - "name": "Singlestat", - "version": "5.0.0" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - }, - { - "datasource": "${DS_JMETERDB}", - "enable": true, - "iconColor": "rgb(237, 18, 18)", - "iconSize": 17, - "lineColor": "rgb(0, 21, 255)", - "name": "Annotation", - "query": "select text,tags,title from \"$retention\".\"events\" where application =~ /$app/ AND $timeFilter", - "showLine": true, - "tagsColumn": "tags", - "textColumn": "text", - "titleColumn": "title" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "id": null, - "iteration": 1552478455724, - "links": [ - { - "asDropdown": true, - "icon": "dashboard", - "includeVars": true, - "keepTime": true, - "tags": [], - "targetBlank": true, - "tooltip": "", - "type": "dashboards", - "url": "" - } - ], - "panels": [ - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 35, - "panels": [], - "repeat": null, - "title": "Jmeter Metrics", - "type": "row" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 0, - "y": 1 - }, - "id": 19, - "interval": "$granularity", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": " users", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT last(\"startedT\") FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity) fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "meanAT" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - } - ] - } - ], - "thresholds": "", - "title": "Active Users", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 8, - "y": 1 - }, - "id": 17, - "interval": "", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": " TPS", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - } - ], - "measurement": "jmeter", - "policy": "default", - "query": "SELECT sum(\"hit\") / 30 FROM \"$retention\".\"jmeter\" WHERE \"application\" = '$app' AND \"transaction\" = 'all' AND $timeFilter GROUP BY time(30s)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "hit" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [ - " / 5" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": "", - "title": "Currents hits per Second", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "percentunit", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 21, - "interval": "$granularity", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT sum(\"countError\") / sum(\"count\") FROM \"$retention\".\"jmeter\" WHERE \"application\" =~ /$app$/ AND \"transaction\" = 'all' AND $timeFilter", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "countError" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / sum(\"count\")" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": "0.1,0.2", - "title": "% Errors", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "total" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 4, - "w": 8, - "x": 0, - "y": 5 - }, - "id": 27, - "interval": "$granularity", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "Hits", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT last(\"hit\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity) fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "hit" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [ - " / 5" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Hits per Second", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": false, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 8, - "y": 5 - }, - "id": 22, - "interval": "$granularity", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT \"hit\" FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND \"statut\" = 'all' AND $timeFilter", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "hit" - ], - "type": "field" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": "", - "title": "Total Hits", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "total" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 5 - }, - "id": 28, - "interval": "$granularity", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "Errors", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "0" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT mean(\"countError\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity) fill(0)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "countError" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - " / 5" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Errors per Second", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": false, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 36, - "panels": [], - "repeat": null, - "title": "Application Metrics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 10 - }, - "height": "", - "id": 25, - "interval": "$granularity", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - } - ], - "hide": false, - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT mean(\"avg\") FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity), \"transaction\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "avg" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Average Response Time", - "tooltip": { - "msResolution": false, - "shared": false, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 28 - }, - "height": "", - "id": 26, - "interval": "$granularity", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "30s" - ], - "type": "time" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT mean(\"count\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND \"transaction\" <> 'all' AND $timeFilter GROUP BY time($granularity), \"transaction\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "count" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / 30" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "<>", - "value": "all" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Transaction Per Second", - "tooltip": { - "msResolution": false, - "shared": false, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ops", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 46 - }, - "height": "", - "id": 29, - "interval": "$granularity", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "30s" - ], - "type": "time" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT last(\"count\") / 30 FROM \"$retention\".\"jmeter\" WHERE \"application\" =~ /$app$/ AND \"statut\" = 'ko' AND $timeFilter GROUP BY time(30s), \"transaction\" fill(null)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "count" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / 30" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "ko" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Error Per Second", - "tooltip": { - "msResolution": false, - "shared": false, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ops", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 64 - }, - "height": "", - "id": 34, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 1, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction - $tag_responseCode : $tag_responseMessage", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "30s" - ], - "type": "time" - }, - { - "params": [ - "responseMessage" - ], - "type": "tag" - }, - { - "params": [ - "responseCode" - ], - "type": "tag" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT sum(\"count\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND \"statut\" = 'ko' AND $timeFilter GROUP BY time($granularity), \"responseCode\" fill(null)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "count" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / 30" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "responseCode", - "operator": "!~", - "value": "/^0$|^$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "=~", - "value": "/$transaction/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Error detail", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "30s", - "schemaVersion": 16, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allValue": ".*", - "current": {}, - "datasource": "${DS_JMETERDB}", - "hide": 0, - "includeAll": false, - "label": null, - "multi": true, - "name": "app", - "options": [], - "query": "SHOW TAG VALUES FROM \"process\" WITH KEY = \"application\"", - "refresh": 2, - "regex": "", - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "SHOW TAG VALUES FROM \"events\" WITH KEY = \"tags\"", - "type": "query", - "useTags": false - }, - { - "allFormat": "regex wildcard", - "auto": false, - "auto_count": 10, - "auto_min": "10s", - "current": { - "text": "1m", - "value": "1m" - }, - "datasource": "jmeterdb", - "hide": 0, - "includeAll": true, - "label": "", - "multi": false, - "multiFormat": "glob", - "name": "granularity", - "options": [ - { - "selected": true, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "5s", - "value": "5s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": false, - "text": "30s", - "value": "30s" - } - ], - "query": "1m,5m,1h,5s,15s,30s", - "refresh": 2, - "regex": "", - "type": "interval" - }, - { - "allValue": null, - "current": {}, - "datasource": "${DS_JMETERDB}", - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "retention", - "options": [], - "query": "SHOW RETENTION POLICIES ON \"jmeterdb\"", - "refresh": 1, - "regex": "", - "sort": 0, - "tagValuesQuery": null, - "tags": [], - "tagsQuery": null, - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": {}, - "datasource": "${DS_JMETERDB}", - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "name": "transaction", - "options": [], - "query": "SHOW TAG VALUES FROM \"jmeter\" WITH KEY IN (\"transaction\",\"application\") where application =~ /$app/ and transaction !~ /all/", - "refresh": 2, - "regex": "", - "sort": 0, - "tagValuesQuery": null, - "tags": [], - "tagsQuery": null, - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "JMeter Metric Template", - "uid": "ltaas", - "version": 1 -} \ No newline at end of file diff --git a/jmeter.log b/jmeter.log deleted file mode 100644 index 3908930..0000000 --- a/jmeter.log +++ /dev/null @@ -1,45 +0,0 @@ -2020/01/13 16:07:54 INFO - jmeter.util.JMeterUtils: Setting Locale to en -2020/01/13 16:07:55 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties -2020/01/13 16:07:55 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties -2020/01/13 16:07:55 INFO - jmeter.JMeter: Copyright (c) 1998-2015 The Apache Software Foundation -2020/01/13 16:07:55 INFO - jmeter.JMeter: Version 2.13.20170723 -2020/01/13 16:07:55 INFO - jmeter.JMeter: java.version=11.0.5 -2020/01/13 16:07:55 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM -2020/01/13 16:07:55 INFO - jmeter.JMeter: os.name=Linux -2020/01/13 16:07:55 INFO - jmeter.JMeter: os.arch=amd64 -2020/01/13 16:07:55 INFO - jmeter.JMeter: os.version=5.0.0-1027-azure -2020/01/13 16:07:55 INFO - jmeter.JMeter: file.encoding=UTF-8 -2020/01/13 16:07:55 INFO - jmeter.JMeter: Default Locale=English -2020/01/13 16:07:55 INFO - jmeter.JMeter: JMeter Locale=English -2020/01/13 16:07:55 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter -2020/01/13 16:07:55 INFO - jmeter.JMeter: user.dir =/home/daweins/code/laas/LaaSFork/LaaS -2020/01/13 16:07:55 INFO - jmeter.JMeter: PWD =/home/daweins/code/laas/LaaSFork/LaaS -2020/01/13 16:07:55 INFO - jmeter.JMeter: IP: 10.0.0.4 Name: perminfrubuntugnome FullName: perminfrubuntugnome -2020/01/13 16:07:55 INFO - jmeter.gui.action.LookAndFeelCommand: Using look and feel: javax.swing.plaf.metal.MetalLookAndFeel [Metal, CrossPlatform] -2020/01/13 16:07:55 INFO - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties -2020/01/13 16:07:56 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' -2020/01/13 16:07:56 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' -2020/01/13 16:07:56 INFO - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser -2020/01/13 16:07:57 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui -2020/01/13 16:07:57 INFO - jorphan.exec.KeyToolUtils: keytool found at 'keytool' -2020/01/13 16:07:57 INFO - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /usr/share/jmeter/bin/proxyserver.jks -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 -2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Default base='/home/daweins/code/laas/LaaSFork/LaaS' -2020/01/13 16:08:03 INFO - jmeter.gui.action.Load: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx -2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties version 2.8 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties file version 1656252 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: All converter versions present and correct -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx -2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' diff --git a/jmeter_cluster_deploy_monitoring.sh b/jmeter_cluster_deploy_monitoring.sh deleted file mode 100755 index 9f64397..0000000 --- a/jmeter_cluster_deploy_monitoring.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env bash -#Create multiple Jmeter namespaces on an existing kuberntes cluster -#Started On January 23, 2018 - -working_dir=`pwd` -monitoringTenant='jmeter-monitoring' - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo - -#Check If namespace exists - -kubectl get namespace $monitoringTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $monitoringTenant already exists, please delete this namespace and rerun this script" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo - -echo "Creating Namespace: $monitoringTenant" - -kubectl create namespace $monitoringTenant - -echo "Namspace $monitoringTenant has been created" - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -echo "Creating Influxdb and the service" - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_influxdb_configmap.yaml - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_influxdb_deploy.yaml - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_influxdb_svc.yaml - -echo "Creating Grafana Deployment" - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_grafana_deploy.yaml - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_grafana_svc.yaml - -echo "Printout Of the $monitoringTenant Objects" - -echo - -kubectl get -n $monitoringTenant all - -## Create jmeter database automatically in Influxdb - -echo "Creating Influxdb jmeter Database" - -## Sleep to allow time for pods to deploy - -sleep 30 - -## Wait until Influxdb Deployment is up and running -## influxdb_status=`kubectl get po -n $monitoringTenant | grep influxdb-jmeter | awk '{print $2}' | grep Running - -influxdb_pod=`kubectl get po -n $monitoringTenant | grep influxdb-jmeter | awk '{print $1}'` -kubectl exec -ti -n $monitoringTenant $influxdb_pod -- influx -execute 'CREATE DATABASE jmeter' - -## Create the influxdb datasource in Grafana - -echo "Creating the Influxdb data source" -grafana_pod=`kubectl get po -n $monitoringTenant | grep jmeter-grafana | awk '{print $1}'` - -## kubectl cp $working_dir/influxdb-jmeter-datasource.json -n $monitoringTenant $grafana_pod:/influxdb-jmeter-datasource.json - -kubectl exec -ti -n $monitoringTenant $grafana_pod -- curl 'http://admin:admin@127.0.0.1:3000/api/datasources' -X POST -H 'Content-Type: application/json;charset=UTF-8' --data-binary '{"name":"jmeterdb","type":"influxdb","url":"http://jmeter-influxdb:8086","access":"proxy","isDefault":true,"database":"jmeter","user":"admin","password":"admin"}' \ No newline at end of file diff --git a/jmeter_cluster_deploy_test_rig.sh b/jmeter_cluster_deploy_test_rig.sh deleted file mode 100755 index 74623a0..0000000 --- a/jmeter_cluster_deploy_test_rig.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash -#Create multiple Jmeter namespaces on an existing kuberntes cluster -#Started On January 23, 2018 - -working_dir=`pwd` - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo "Current list of namespaces on the kubernetes cluster:" - -echo - -kubectl get namespaces | grep -v NAME | awk '{print $1}' - -echo - -echo "Enter the name of the new tenant unique name, this will be used to create the namespace" -read workloadTenant -echo - -#Check If namespace exists - -kubectl get namespace $workloadTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $workloadTenant already exists, please select a unique name" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo -echo "Creating Namespace: $workloadTenant" - -kubectl create namespace $workloadTenant - -echo "Namspace $workloadTenant has been created" - -echo - -echo "Creating Jmeter slave nodes" - -nodes=`kubectl get no | egrep -v "master|NAME" | wc -l` - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -#echo "Creating $nodes Jmeter slave replicas and service" - -echo - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_deploy.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_svc.yaml - -echo "Creating Jmeter Master" - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -echo "Printout Of the $workloadTenant Objects" - -echo - -kubectl get -n $workloadTenant all - -echo namespace = $workloadTenant > $working_dir/workloadTenant_export - -## Make load test script in Jmeter master pod executable - -echo - -echo "Configuring load test settings in Master" - -sleep 10 - -#Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -kubectl exec -ti -n $workloadTenant $master_pod -- cp -r /load_test /jmeter/load_test - -kubectl exec -ti -n $workloadTenant $master_pod -- chmod 755 /jmeter/load_test diff --git a/jmx/aksjmeterprops.txt b/jmx/aksjmeterprops.txt deleted file mode 100644 index 397c350..0000000 --- a/jmx/aksjmeterprops.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Increase the lifetime of a TCP connection to avoid SNAT port exhaustion due to AKS' use of Load Balancer -httpclient4.time_to_live=200000 \ No newline at end of file diff --git a/jmx/al.jmx b/jmx/al.jmx deleted file mode 100644 index 7003147..0000000 --- a/jmx/al.jmx +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - 20 - 0 - true - 6000 - - true - - - - 1 - 1200 - - - - - - - 52.167.17.34 - 80 - http - - ?marco - GET - false - false - false - false - - 1000 - 1000 - - - - - - - influxdbMetricsSender - org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender - = - - - influxdbUrl - http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter - = - - - application - cloudssky - = - - - measurement - jmeter - = - - - summaryOnly - false - = - - - samplersRegex - .* - = - - - percentiles - 90;95;99 - = - - - testTitle - Test name - = - - - eventTags - - = - - - - org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient - - - - - - - diff --git a/jmx/alaws.jmx b/jmx/alaws.jmx deleted file mode 100644 index b7df948..0000000 --- a/jmx/alaws.jmx +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - 20 - 0 - true - 6000 - - true - - - - 1 - 1200 - - - - - - - Metrics-ALB-US-East-2-538738870.us-east-2.elb.amazonaws.com - 80 - http - - ?marco - GET - false - false - false - false - - 1000 - 1000 - - - - - - - influxdbMetricsSender - org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender - = - - - influxdbUrl - http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter - = - - - application - cloudssky - = - - - measurement - jmeter - = - - - summaryOnly - false - = - - - samplersRegex - .* - = - - - percentiles - 90;95;99 - = - - - testTitle - Test name - = - - - eventTags - - = - - - - org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient - - - - - - - diff --git a/jmx/baseline.jmx b/jmx/baseline.jmx deleted file mode 100644 index 47254a1..0000000 --- a/jmx/baseline.jmx +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - {numUsers} - {ramp} - true - {duration} - - true - - - - 1 - {throughputPerMin} - - - - - - - google.com - 80 - http - - - GET - false - false - false - false - - 1000 - 1000 - - - - - - - influxdbMetricsSender - org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender - = - - - influxdbUrl - http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter - = - - - application - cloudssky - = - - - measurement - jmeter - = - - - summaryOnly - false - = - - - samplersRegex - .* - = - - - percentiles - 90;95;99 - = - - - testTitle - Test name - = - - - eventTags - - = - - - - org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient - - - - - - - \ No newline at end of file diff --git a/jmx/jmeter.log b/jmx/jmeter.log deleted file mode 100644 index 3a148f1..0000000 --- a/jmx/jmeter.log +++ /dev/null @@ -1,194 +0,0 @@ -2020/01/09 15:04:38 INFO - jmeter.util.JMeterUtils: Setting Locale to en -2020/01/09 15:04:38 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties -2020/01/09 15:04:38 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties -2020/01/09 15:04:38 INFO - jmeter.JMeter: Copyright (c) 1998-2015 The Apache Software Foundation -2020/01/09 15:04:38 INFO - jmeter.JMeter: Version 2.13.20170723 -2020/01/09 15:04:38 INFO - jmeter.JMeter: java.version=11.0.5 -2020/01/09 15:04:38 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM -2020/01/09 15:04:38 INFO - jmeter.JMeter: os.name=Linux -2020/01/09 15:04:38 INFO - jmeter.JMeter: os.arch=amd64 -2020/01/09 15:04:38 INFO - jmeter.JMeter: os.version=5.0.0-1027-azure -2020/01/09 15:04:38 INFO - jmeter.JMeter: file.encoding=UTF-8 -2020/01/09 15:04:38 INFO - jmeter.JMeter: Default Locale=English -2020/01/09 15:04:38 INFO - jmeter.JMeter: JMeter Locale=English -2020/01/09 15:04:38 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter -2020/01/09 15:04:38 INFO - jmeter.JMeter: user.dir =/home/daweins/code/laas/LaaSFork/LaaS/jmx -2020/01/09 15:04:38 INFO - jmeter.JMeter: PWD =/home/daweins/code/laas/LaaSFork/LaaS/jmx -2020/01/09 15:04:38 INFO - jmeter.JMeter: IP: 10.0.0.4 Name: perminfrubuntugnome FullName: perminfrubuntugnome -2020/01/09 15:04:38 INFO - jmeter.services.FileServer: Default base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' -2020/01/09 15:04:38 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' -2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 -2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Using SaveService properties version 2.8 -2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Using SaveService properties file version 1656252 -2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 -2020/01/09 15:04:38 INFO - jmeter.save.SaveService: All converter versions present and correct -2020/01/09 15:04:38 INFO - jmeter.save.SaveService: Loading file: main.jmx -2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default -2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is -2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is -2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is -2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is -2020/01/09 15:04:38 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser -2020/01/09 15:04:38 INFO - jmeter.JMeter: Creating summariser -2020/01/09 15:04:38 INFO - jmeter.engine.StandardJMeterEngine: Listeners will be started after enabling running version -2020/01/09 15:04:38 INFO - jmeter.engine.StandardJMeterEngine: To revert to the earlier behaviour, define jmeterengine.startlistenerslater=false -2020/01/09 15:04:38 INFO - jmeter.engine.StandardJMeterEngine: Running the test! -2020/01/09 15:04:38 INFO - jmeter.samplers.SampleEvent: List of sample_variables: [] -2020/01/09 15:04:38 INFO - jmeter.samplers.SampleEvent: List of sample_variables: [] -2020/01/09 15:04:38 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' -2020/01/09 15:04:38 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' -2020/01/09 15:04:39 INFO - jmeter.JMeter: Running test (1578582279067) -2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : Main -2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: Starting 100 threads for group Main. -2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error -2020/01/09 15:04:39 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 100 ramp-up 1 perThread 10.0 delayedStart=false -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: jmeterthread.startearlier=true (see jmeter.properties) -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Running PostProcessors in forward order -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-1 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-2 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-3 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-4 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-5 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-6 -2020/01/09 15:04:39 INFO - jmeter.protocol.http.sampler.HTTPHCAbstractImpl: Local host = perminfrubuntugnome -2020/01/09 15:04:39 INFO - jmeter.protocol.http.sampler.HTTPHC4Impl: HTTP request retry count = 0 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-7 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-8 -2020/01/09 15:04:39 INFO - jmeter.protocol.http.sampler.HTTPHC4Impl: Setting up HTTPS TrustAll scheme -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-9 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-10 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-11 -2020/01/09 15:04:39 INFO - jmeter.util.JsseSSLManager: Using default SSL protocol: TLS -2020/01/09 15:04:39 INFO - jmeter.util.JsseSSLManager: SSL session context: per-thread -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-12 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-13 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-14 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-15 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-16 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-17 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-19 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-18 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-20 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-21 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-23 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-22 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-24 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-25 -2020/01/09 15:04:39 INFO - jmeter.threads.ThreadGroup: Started thread group number 1 -2020/01/09 15:04:39 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-26 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-27 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-28 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-29 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-30 -2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times -2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 -2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true -2020/01/09 15:04:39 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-31 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-32 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-33 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-34 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-35 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-36 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-37 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-38 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-39 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-40 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-41 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-42 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-43 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-44 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-45 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-46 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-47 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-48 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-49 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-50 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-51 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-52 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-53 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-54 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-56 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-55 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-57 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-58 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-59 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-60 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-61 -2020/01/09 15:04:39 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-62 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-63 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-64 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-65 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-66 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-67 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-68 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-69 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-70 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-71 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-72 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-73 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-74 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-75 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-76 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-77 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-78 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-79 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-80 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-81 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-82 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-83 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-84 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-85 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-86 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-87 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-88 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-89 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-90 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-91 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-92 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-93 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-94 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-95 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-96 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-97 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-98 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-99 -2020/01/09 15:04:40 INFO - jmeter.threads.JMeterThread: Thread started: Main 1-100 -2020/01/09 15:05:00 INFO - jmeter.reporters.Summariser: summary + 2059 in 21s = 98.3/s Avg: 555 Min: 541 Max: 872 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:05:30 INFO - jmeter.reporters.Summariser: summary + 2999 in 30s = 100.0/s Avg: 550 Min: 541 Max: 623 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:05:30 INFO - jmeter.reporters.Summariser: summary = 5058 in 51s = 99.3/s Avg: 552 Min: 541 Max: 872 Err: 0 (0.00%) -2020/01/09 15:06:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 551 Min: 541 Max: 626 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:06:00 INFO - jmeter.reporters.Summariser: summary = 8058 in 81s = 99.6/s Avg: 552 Min: 541 Max: 872 Err: 0 (0.00%) -2020/01/09 15:06:30 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.0/s Avg: 555 Min: 541 Max: 881 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:06:30 INFO - jmeter.reporters.Summariser: summary = 11059 in 111s = 99.7/s Avg: 553 Min: 541 Max: 881 Err: 0 (0.00%) -2020/01/09 15:07:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 553 Min: 541 Max: 878 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:07:00 INFO - jmeter.reporters.Summariser: summary = 14059 in 141s = 99.7/s Avg: 553 Min: 541 Max: 881 Err: 0 (0.00%) -2020/01/09 15:07:30 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 551 Min: 541 Max: 681 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:07:30 INFO - jmeter.reporters.Summariser: summary = 17059 in 171s = 99.8/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) -2020/01/09 15:08:00 INFO - jmeter.reporters.Summariser: summary + 2999 in 30s = 100.0/s Avg: 551 Min: 541 Max: 605 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:08:00 INFO - jmeter.reporters.Summariser: summary = 20058 in 201s = 99.8/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) -2020/01/09 15:08:30 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.0/s Avg: 553 Min: 541 Max: 621 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:08:30 INFO - jmeter.reporters.Summariser: summary = 23059 in 231s = 99.8/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) -2020/01/09 15:09:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 553 Min: 541 Max: 596 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:09:00 INFO - jmeter.reporters.Summariser: summary = 26059 in 261s = 99.9/s Avg: 552 Min: 541 Max: 881 Err: 0 (0.00%) -2020/01/09 15:09:30 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 556 Min: 541 Max: 1032 Err: 3 (0.10%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:09:30 INFO - jmeter.reporters.Summariser: summary = 29059 in 291s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 3 (0.01%) -2020/01/09 15:10:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 554 Min: 541 Max: 1002 Err: 1 (0.03%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:10:00 INFO - jmeter.reporters.Summariser: summary = 32059 in 321s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 4 (0.01%) -2020/01/09 15:10:30 INFO - jmeter.reporters.Summariser: summary + 2999 in 30s = 100.0/s Avg: 553 Min: 541 Max: 1002 Err: 2 (0.07%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:10:30 INFO - jmeter.reporters.Summariser: summary = 35058 in 351s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.02%) -2020/01/09 15:11:00 INFO - jmeter.reporters.Summariser: summary + 3000 in 30s = 100.0/s Avg: 553 Min: 541 Max: 622 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:11:00 INFO - jmeter.reporters.Summariser: summary = 38058 in 381s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.02%) -2020/01/09 15:11:30 INFO - jmeter.reporters.Summariser: summary + 3002 in 30s = 100.0/s Avg: 552 Min: 541 Max: 596 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:11:30 INFO - jmeter.reporters.Summariser: summary = 41060 in 411s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.01%) -2020/01/09 15:12:00 INFO - jmeter.reporters.Summariser: summary + 2998 in 30s = 100.0/s Avg: 552 Min: 541 Max: 604 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:12:00 INFO - jmeter.reporters.Summariser: summary = 44058 in 441s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.01%) -2020/01/09 15:12:30 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.0/s Avg: 554 Min: 541 Max: 635 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:12:30 INFO - jmeter.reporters.Summariser: summary = 47059 in 471s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 6 (0.01%) -2020/01/09 15:13:00 INFO - jmeter.reporters.Summariser: summary + 3001 in 30s = 100.1/s Avg: 552 Min: 541 Max: 1002 Err: 1 (0.03%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:13:00 INFO - jmeter.reporters.Summariser: summary = 50060 in 501s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 7 (0.01%) -2020/01/09 15:13:30 INFO - jmeter.reporters.Summariser: summary + 2998 in 30s = 99.9/s Avg: 553 Min: 541 Max: 618 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0 -2020/01/09 15:13:30 INFO - jmeter.reporters.Summariser: summary = 53058 in 531s = 99.9/s Avg: 553 Min: 541 Max: 1032 Err: 7 (0.01%) -2020/01/09 15:13:46 INFO - jmeter.reporters.ResultCollector: Shutdown hook started -2020/01/09 15:13:46 INFO - jmeter.reporters.ResultCollector: Shutdown hook ended diff --git a/jmx/main2.jmx b/jmx/main2.jmx deleted file mode 100644 index 31471fe..0000000 --- a/jmx/main2.jmx +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - ${__P(numUsers,5)} - ${__P(ramp,0)} - true - ${__P(duration,90)} - - true - - - - 1 - ${__P(throughputPerMin,300)} - - - - - - - ${__P(targetIP,20.41.60.31)} - 80 - http - - ${__P(path,/?marco)} - GET - false - false - false - false - - 1000 - 1000 - - - - false - - saveConfig - - - true - true - true - - true - true - true - false - false - false - false - true - false - false - true - false - false - true - true - 10 - true - true - true - true - true - true - - - ${__P(outFile,C:\Users\gobibearAdmin\Desktop\results\resultsMultiVMs.csv)} - - - - - - - diff --git a/jmx/main_std.jmx b/jmx/main_std.jmx deleted file mode 100644 index 05c9590..0000000 --- a/jmx/main_std.jmx +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - ${__P(numUsers,5)} - ${__P(ramp,0)} - true - ${__P(duration,90)} - - true - - - - 1 - ${__P(throughputPerMin,300)} - - - - - - - ${__P(targetIP,20.41.60.31)} - 80 - http - - ${__P(path,/?marco)} - GET - false - false - false - false - - 1000 - 1000 - - - - false - - saveConfig - - - true - true - true - - true - false - true - false - false - false - false - false - false - false - true - false - false - false - false - 0 - true - true - true - true - true - true - - - ${__P(outFile,C:\Users\gobibearAdmin\Desktop\results\resultsMultiVMs.csv)} - - - - - - - diff --git a/jmx/mainnokeepalive.jmx b/jmx/mainnokeepalive.jmx deleted file mode 100644 index fea60cd..0000000 --- a/jmx/mainnokeepalive.jmx +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - false - false - - - - - - - - continue - - false - -1 - - ${__P(numUsers,100)} - 1 - 1578521449000 - 1578521449000 - true - ${__P(duration,600)} - - - - - - - - ${__P(targetIP,52.167.17.34)} - 80 - 1000 - 1000 - - - ${__P(path,/?marco)} - GET - false - false - false - false - HttpClient4 - false - - - - - 4 - ${__P(throughputPerMin,6000)} - - - - false - - saveConfig - - - true - true - true - - true - true - true - true - false - false - true - false - false - false - true - false - false - false - false - 0 - true - true - true - true - - - ${__P(outFile,/tmp/j.txt)} - - - - - - diff --git a/jmx/parameterized.jmx b/jmx/parameterized.jmx deleted file mode 100644 index 05c9590..0000000 --- a/jmx/parameterized.jmx +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - ${__P(numUsers,5)} - ${__P(ramp,0)} - true - ${__P(duration,90)} - - true - - - - 1 - ${__P(throughputPerMin,300)} - - - - - - - ${__P(targetIP,20.41.60.31)} - 80 - http - - ${__P(path,/?marco)} - GET - false - false - false - false - - 1000 - 1000 - - - - false - - saveConfig - - - true - true - true - - true - false - true - false - false - false - false - false - false - false - true - false - false - false - false - 0 - true - true - true - true - true - true - - - ${__P(outFile,C:\Users\gobibearAdmin\Desktop\results\resultsMultiVMs.csv)} - - - - - - - diff --git a/jmx/parameterizedramp.jmx b/jmx/parameterizedramp.jmx deleted file mode 100644 index dfbc8b8..0000000 --- a/jmx/parameterizedramp.jmx +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - ${__P(numUsers,5)} - ${__P(ramp,0)} - true - ${__P(duration,90)} - - true - - - - - - - ${__P(targetIP,20.41.60.31)} - 80 - http - - ${__P(path,/)} - GET - false - false - false - false - - 20000 - 20000 - - - - false - - saveConfig - - - true - true - true - - true - false - true - false - false - false - false - false - false - false - true - false - false - false - false - 0 - true - true - true - true - true - true - - - ${__P(outFile,C:\Users\gobibearAdmin\Desktop\results\resultsMultiVMs.csv)} - - - - - - - 0 - ${__P(numUsers,5)} - ${__P(duration,60)} - - - - - - - - diff --git a/jmx/ramp.jmx b/jmx/ramp.jmx deleted file mode 100644 index 412e27a..0000000 --- a/jmx/ramp.jmx +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - ${__P(numUsers,5)} - ${__P(ramp,0)} - true - ${__P(duration,90)} - - true - - - - - - - ${__P(targetIP,20.41.60.31)} - 80 - http - - ${__P(path,/)} - GET - false - false - false - false - - 1000 - 1000 - - - - false - - saveConfig - - - true - true - true - - true - false - true - false - false - false - false - false - false - false - true - false - false - false - false - 0 - true - true - true - true - true - true - - - ${__P(outFile,C:\Users\gobibearAdmin\Desktop\results\resultsMultiVMs.csv)} - - - - - - - 0 - ${__P(numUsers,5)} - ${__P(duration,500)} - - - - - - - - diff --git a/jmx/standard-run.jmx b/jmx/standard-run.jmx deleted file mode 100644 index 8b5c8ae..0000000 --- a/jmx/standard-run.jmx +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - {numUsers} - {ramp} - true - {duration} - - true - - - - - - - google.com - 80 - http - - - GET - false - false - false - false - - 20000 - 20000 - - - - - - 0 - 500 - 60 - - - - - - - - - influxdbMetricsSender - org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender - = - - - influxdbUrl - http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter - = - - - application - cloudssky - = - - - measurement - jmeter - = - - - summaryOnly - false - = - - - samplersRegex - .* - = - - - percentiles - 90;95;99 - = - - - testTitle - Test name - = - - - eventTags - - = - - - - org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient - - - - - - diff --git a/jmx/testload-three.jmx b/jmx/testload-three.jmx deleted file mode 100644 index 169c45b..0000000 --- a/jmx/testload-three.jmx +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - 500 - 0 - true - 300 - - true - - - - - - - facebook.com - 80 - http - - - GET - false - false - false - false - - 20000 - 20000 - - - - - - 0 - 500 - 300 - - - - - - - - - influxdbMetricsSender - org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender - = - - - influxdbUrl - http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter - = - - - application - cloudssky - = - - - measurement - jmeter - = - - - summaryOnly - false - = - - - samplersRegex - .* - = - - - percentiles - 90;95;99 - = - - - testTitle - Test name - = - - - eventTags - - = - - - - org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient - - - - - - diff --git a/jmx/testload-two.jmx b/jmx/testload-two.jmx deleted file mode 100644 index d7a260f..0000000 --- a/jmx/testload-two.jmx +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - false - true - - - - - - - - startnextloop - - false - -1 - - 500 - 0 - true - 300 - - true - - - - - - - bing.com - 80 - http - - - GET - false - false - false - false - - 20000 - 20000 - - - - - - 0 - 500 - 300 - - - - - - - - - influxdbMetricsSender - org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender - = - - - influxdbUrl - http://jmeter-influxdb.jmeter-monitoring:8086/write?db=jmeter - = - - - application - cloudssky - = - - - measurement - jmeter - = - - - summaryOnly - false - = - - - samplersRegex - .* - = - - - percentiles - 90;95;99 - = - - - testTitle - Test name - = - - - eventTags - - = - - - - org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient - - - - - - diff --git a/k8sDefs/jmeter_grafana_deploy.yaml b/k8sDefs/jmeter_grafana_deploy.yaml deleted file mode 100644 index ca5867b..0000000 --- a/k8sDefs/jmeter_grafana_deploy.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: jmeter-grafana - labels: - app: jmeter-grafana -spec: - replicas: 1 - selector: - matchLabels: - app: jmeter-grafana - template: - metadata: - labels: - app: jmeter-grafana - spec: - containers: - - name: grafana - image: grafana/grafana:5.2.0 - imagePullPolicy: IfNotPresent - ports: - - containerPort: 3000 - protocol: TCP - env: - - name: GF_AUTH_BASIC_ENABLED - value: "true" - - name: GF_USERS_ALLOW_ORG_CREATE - value: "true" - - name: GF_AUTH_ANONYMOUS_ENABLED - value: "true" - - name: GF_AUTH_ANONYMOUS_ORG_ROLE - value: Admin - - name: GF_SERVER_ROOT_URL - # If you're only using the API Server proxy, set this value instead: - # value: /api/v1/namespaces/kube-system/services/monitoring-grafana/proxy - value: / diff --git a/k8sDefs/jmeter_grafana_svc.yaml b/k8sDefs/jmeter_grafana_svc.yaml deleted file mode 100644 index ff169c0..0000000 --- a/k8sDefs/jmeter_grafana_svc.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: jmeter-grafana - labels: - app: jmeter-grafana -spec: - ports: - - port: 3000 - targetPort: 3000 - selector: - app: jmeter-grafana - type: NodePort \ No newline at end of file diff --git a/k8sDefs/jmeter_influxdb_configmap.yaml b/k8sDefs/jmeter_influxdb_configmap.yaml deleted file mode 100644 index 308a510..0000000 --- a/k8sDefs/jmeter_influxdb_configmap.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: influxdb-config - labels: - app: influxdb-jmeter -data: - influxdb.conf: | - [meta] - dir = "/var/lib/influxdb/meta" - - [data] - dir = "/var/lib/influxdb/data" - engine = "tsm1" - wal-dir = "/var/lib/influxdb/wal" - - # Configure the graphite api - [[graphite]] - enabled = true - bind-address = ":2003" # If not set, is actually set to bind-address. - database = "jmeter" # store graphite data in this database \ No newline at end of file diff --git a/k8sDefs/jmeter_influxdb_deploy.yaml b/k8sDefs/jmeter_influxdb_deploy.yaml deleted file mode 100644 index 7e78408..0000000 --- a/k8sDefs/jmeter_influxdb_deploy.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: influxdb-jmeter - labels: - app: influxdb-jmeter -spec: - replicas: 1 - selector: - matchLabels: - app: influxdb-jmeter - template: - metadata: - labels: - app: influxdb-jmeter - spec: - containers: - - image: influxdb - imagePullPolicy: IfNotPresent - name: influxdb - volumeMounts: - - name: config-volume - mountPath: /etc/influxdb - ports: - - containerPort: 8083 - name: influx - - containerPort: 8086 - name: api - - containerPort: 2003 - name: graphite - volumes: - - name: config-volume - configMap: - name: influxdb-config \ No newline at end of file diff --git a/k8sDefs/jmeter_influxdb_svc.yaml b/k8sDefs/jmeter_influxdb_svc.yaml deleted file mode 100644 index 7147e6f..0000000 --- a/k8sDefs/jmeter_influxdb_svc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: jmeter-influxdb - labels: - app: influxdb-jmeter -spec: - ports: - - port: 8083 - name: http - targetPort: 8083 - - port: 8086 - name: api - targetPort: 8086 - - port: 2003 - name: graphite - targetPort: 2003 - selector: - app: influxdb-jmeter \ No newline at end of file diff --git a/k8sDefs/jmeter_master_deploy.yaml b/k8sDefs/jmeter_master_deploy.yaml index 88b5923..b857698 100644 --- a/k8sDefs/jmeter_master_deploy.yaml +++ b/k8sDefs/jmeter_master_deploy.yaml @@ -19,7 +19,7 @@ spec: env: - name: 'JVM_ARGS' value: '-Xms756M -Xmx756M' - image: daweins/jmeterbase:v3 + image: daweins/jmeterbase:v5 imagePullPolicy: IfNotPresent resources: requests: diff --git a/k8sDefs/jmeter_slaves_deploy.yaml b/k8sDefs/jmeter_slaves_deploy.yaml deleted file mode 100644 index b729f71..0000000 --- a/k8sDefs/jmeter_slaves_deploy.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: jmeter-slaves - labels: - jmeter_mode: slave -spec: - replicas: 1 - selector: - matchLabels: - jmeter_mode: slave - template: - metadata: - labels: - jmeter_mode: slave - spec: - containers: - - name: jmslave - image: kubernautslabs/jmeter_slave:latest - imagePullPolicy: IfNotPresent - ports: - - containerPort: 1099 - - containerPort: 50000 diff --git a/k8sDefs/jmeter_slaves_svc.yaml b/k8sDefs/jmeter_slaves_svc.yaml deleted file mode 100644 index 94566f5..0000000 --- a/k8sDefs/jmeter_slaves_svc.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: jmeter-slaves-svc - labels: - jmeter_mode: slave -spec: - clusterIP: None - ports: - - port: 1099 - name: first - targetPort: 1099 - - port: 50000 - name: second - targetPort: 50000 - selector: - jmeter_mode: slave \ No newline at end of file diff --git a/payload_script.sh b/payload_script.sh index eb227b4..e1dc5f6 100644 --- a/payload_script.sh +++ b/payload_script.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash - +jmeterPath='/apache-jmeter-5.2.1/bin/jmeter' +#jmeterPath='jmeter' +jmeterProps='-Dhttpclient4.time_to_live=1000000 -Jhttpclient4.time_to_live=1000000' targetIP=$1 displaytargetIP=`sed 's/\./_/g' <<< $targetIP` targetPath=$2 @@ -28,10 +30,14 @@ do curl $targetIP/$targetPath -o /mnt/azure/curl$curTimeString.txt else echo Starting JMeter - jMeterCmd="jmeter -n -t \"/tmp/main.jmx\" -JnumUsers=$numUsers -JtargetIP=\"$targetIP\" -JthroughputPerMin=$throughput -Jduration=$duration -JoutFile=\"$tmpDir$outFile\" -Jramp=$ramp -Jpath=\"$targetPath\"" - #jMeterCmd='cat parameterizedramp.jmx' + if [ $ramp -ne 0 ] + then + echo "Ramping" + jMeterCmd="$jmeterPath -n -t \"/tmp/main_ramp.jmx\" $jmeterProps -JnumUsers=$numUsers -JtargetIP=\"$targetIP\" -JthroughputPerMin=$throughput -Jduration=$duration -JoutFile=\"$tmpDir$outFile\" -Jramp=$ramp -Jpath=\"$targetPath\"" + else + jMeterCmd="$jmeterPath -n -t \"/tmp/main.jmx\" $jmeterProps -JnumUsers=$numUsers -JtargetIP=\"$targetIP\" -JthroughputPerMin=$throughput -Jduration=$duration -JoutFile=\"$tmpDir$outFile\" -Jramp=$ramp -Jpath=\"$targetPath\"" + fi echo $jMeterCmd - #$jMeterCmd eval $jMeterCmd fi @@ -45,6 +51,7 @@ echo Moving Output echo Copying to BLOB blobToken=`cat /etc/azblob/azblobsas` az storage blob upload-batch --account-name storannandale -s $tmpDir -d aksjmeter --pattern *.csv --sas-token $blobToken -#sleep 60 +echo Sleeping 30 minutes to delay next run +sleep 1800 echo Signal completion echo Complete >> /tmp/isdone diff --git a/start_full_test.sh b/start_full_test.sh deleted file mode 100755 index f99a236..0000000 --- a/start_full_test.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env bash -# Create multiple Jmeter namespaces on an existing kuberntes cluster -# Started On January 23, 2018 - -working_dir=`pwd` -integerCheck='^[0-9]+$' -jmxFile='jmx/baseline.jmx' -testRunConfig='test_runs/testRunConfig.txt' -jmxRunFile='temp/currentJmxRun.jmx' -jmxTextFile='temp/currentJmxText.txt' -index=0 - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo "Current list of namespaces on the kubernetes cluster:" - -echo - -kubectl get namespaces | grep -v NAME | awk '{print $1}' - -echo - -echo "Enter the name of the new tenant unique name, this will be used to create the namespace" -read workloadTenant -echo - -# Check If namespace exists - -kubectl get namespace $workloadTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $workloadTenant already exists, please select a unique name" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo -echo "Creating Namespace: $workloadTenant" - -kubectl create namespace $workloadTenant - -echo "Namspace $workloadTenant has been created" - -echo - -echo "Creating Jmeter slave nodes" - -nodes=`kubectl get no | egrep -v "master|NAME" | wc -l` - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -echo "Creating $nodes Jmeter slave replicas and service" - -echo - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_deploy.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_svc.yaml - -echo "Creating Jmeter Master" - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -echo "Printout Of the $workloadTenant Objects" - -echo - -kubectl get -n $workloadTenant all - -echo namespace = $workloadTenant > $working_dir/workloadTenant_export - -## Make load test script in Jmeter master pod executable - -echo - -echo "Configuring load test settings in Master" - -sleep 30 - -# Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -#kubectl exec -ti -n $workloadTenant $master_pod -- cp -r /load_test /jmeter/load_test - -#kubectl exec -ti -n $workloadTenant $master_pod -- chmod 755 /jmeter/load_test - -sed -n -e 'H;${x;s/\n/;;/g;s/^,//;p;}' $testRunConfig > $jmxTextFile -IFS=';;' read -ra configArray <<< $(cat $jmxTextFile) - -# Loop through each config and run JMeter set to that config -for newConfig in $configArray -do - # Remove whitespaces from string then convert to array - testRun="$(echo -e "${newConfig}" | tr -d '[:space:]')" - IFS=',' read -ra testArray <<< "$testRun" - - # Feed integer string into jmx file and run test - if ! [[ ${testArray[0]} =~ $integerCheck && ${testArray[1]} =~ $integerCheck && ${testArray[2]} =~ $integerCheck ]] - then - echo "Non-integer input detected. Skipping line." - else - # Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. - # It requires that you supply the path to the jmx file - - ((throughputPerMin=${testArray[0]}*60)) - - sed "s/{numUsers}/${testArray[0]}/g;s/{duration}/${testArray[1]}/g;s/{ramp}/${testArray[2]}/g;s/{throughputPerMin}/$throughputPerMin/g" $jmxFile > $jmxRunFile - - test_name="$(basename "$jmxRunFile")" - - # Get Master pod details - - kubectl cp "$jmxRunFile" -n $workloadTenant "$master_pod:/$test_name" - - # Starting Jmeter load test - - kubectl exec -ti -n $workloadTenant $master_pod -- /bin/bash /load_test "$test_name" - fi -done - -# Delete jmeter test namespace when complete - -sleep 30 - -kubectl delete namespace $workloadTenant \ No newline at end of file diff --git a/start_jmeterPods.sh b/start_jmeterPods.sh deleted file mode 100755 index 2a69e14..0000000 --- a/start_jmeterPods.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env bash -# Create multiple Jmeter namespaces on an existing kuberntes cluster -# Started On January 23, 2018 - -tenantName='aksjmeter' -working_dir=`pwd` -integerCheck='^[0-9]+$' -jmxFile='jmx/baseline.jmx' -testRunConfig='test_runs/testRunConfig.txt' -jmxRunFile='temp/currentJmxRun.jmx' -jmxTextFile='temp/currentJmxText.txt' -index=0 - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo "Current list of namespaces on the kubernetes cluster:" - -echo - -kubectl get namespaces | grep -v NAME | awk '{print $1}' - -echo -# -echo "Enter the name of the new tenant unique name, this will be used to create the namespace" -workloadTenant=$tenantName -echo $workloadTenant - -# Check If namespace exists - -kubectl get namespace $workloadTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $workloadTenant already exists, please select a unique name" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo -echo "Creating Namespace: $workloadTenant" - -kubectl create namespace $workloadTenant - -echo "Namspace $workloadTenant has been created" - -echo - -echo "Creating Jmeter slave nodes" - -nodes=`kubectl get no | egrep -v "master|NAME" | wc -l` - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -echo "Creating $nodes Jmeter slave replicas and service" - -echo - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_deploy.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_svc.yaml - -echo "Creating Jmeter Master" - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -echo "Printout Of the $workloadTenant Objects" - -echo - -kubectl get -n $workloadTenant all - -echo namespace = $workloadTenant > $working_dir/workloadTenant_export - -## Make load test script in Jmeter master pod executable - -echo - -echo "Configuring load test settings in Master (sleeping for 30sec)" - -sleep 30 - -# Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` \ No newline at end of file diff --git a/start_test.sh b/start_test.sh deleted file mode 100755 index 834a23f..0000000 --- a/start_test.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -#Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. -#It requires that you supply the path to the jmx file -#After execution, test script jmx file may be deleted from the pod itself but not locally. - -working_dir="`pwd`" - -#Get namesapce variable -workloadTenant=`awk '{print $NF}' "$working_dir/workloadTenant_export"` - -jmx="$1" -[ -n "$jmx" ] || read -p 'Enter path to the jmx file to run ' jmx - -if [ ! -f "$jmx" ]; -then - echo "Test script file was not found in PATH" - echo "Kindly check and input the correct file path" - exit -fi - -test_name="$(basename "$jmx")" - -echo $test_name - -#Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -kubectl cp "$jmx" -n $workloadTenant "$master_pod:/$test_name" - -## Echo Starting Jmeter load test - -kubectl exec -ti -n $workloadTenant $master_pod -- /bin/bash /load_test "$test_name" diff --git a/start_testLoop.sh b/start_testLoop.sh index 0cd35a6..6ff5bc5 100755 --- a/start_testLoop.sh +++ b/start_testLoop.sh @@ -16,6 +16,8 @@ testMasterName='currentTests.csv' jmxFile='jmx/main.jmx' jmxDestFile='/tmp/main.jmx' +jmxRampFile='jmx/main_ramp.jmx' +jmxRampDestFile='/tmp/main_ramp.jmx' payloadScript="payload_script.sh" payloadDestFile="/tmp/payload_script.sh" @@ -154,6 +156,7 @@ do echo Copying payload to master pod # Copy the jmx template to the pod kubectl cp "$jmxFile" -n $workloadTenant "$master_pod:/$jmxDestFile" + kubectl cp "$jmxRampFile" -n $workloadTenant "$master_pod:/$jmxRampDestFile" # Copy the script to the pod kubectl cp "$payloadScript" -n $workloadTenant "$master_pod:/$payloadDestFile" diff --git a/temp/testDefs/1minutepause.txt b/temp/testDefs/1minutepause.txt deleted file mode 100644 index a1f904e..0000000 --- a/temp/testDefs/1minutepause.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -100,60,0 \ No newline at end of file diff --git a/temp/testDefs/5minutepause.txt b/temp/testDefs/5minutepause.txt deleted file mode 100644 index 5cb0faa..0000000 --- a/temp/testDefs/5minutepause.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -100,300,0 \ No newline at end of file diff --git a/temp/testDefs/annandaleignite.txt b/temp/testDefs/annandaleignite.txt deleted file mode 100644 index c0aa144..0000000 --- a/temp/testDefs/annandaleignite.txt +++ /dev/null @@ -1,5 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -2,180,0 -300,180,180 -300,600,0 -1,900,0 diff --git a/temp/testDefs/annandaleignitelong.txt b/temp/testDefs/annandaleignitelong.txt deleted file mode 100644 index 6fc128e..0000000 --- a/temp/testDefs/annandaleignitelong.txt +++ /dev/null @@ -1,3 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -300,600,0 - diff --git a/temp/testDefs/awsTest.txt b/temp/testDefs/awsTest.txt deleted file mode 100644 index da2ebeb..0000000 --- a/temp/testDefs/awsTest.txt +++ /dev/null @@ -1,12 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 \ No newline at end of file diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv index a6a49f8..8f4bf9d 100644 --- a/temp/testDefs/currentTests.csv +++ b/temp/testDefs/currentTests.csv @@ -1,10 +1,11 @@ CurTest, Enabled, CurEndPoint,Path, CurTestName bing,FALSE,www.bing.com,,testlimit.txt azcatsynthappnocrash,FALSE,52.167.17.34,?marco,jediprod.txt -azcatsynthappbaseline,FALSE,52.138.116.190,?marco,jediprod.txt +azcatsynthappbaseline,TRUE,52.138.116.190,?marco,jediprod.txt +azcatsynthappbaselinesteady,TRUE,52.138.116.190,?marco,testport.txt helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt -azcatsynthappnocrashminimal,TRUE,52.167.17.34,?marco,minimaltest.txt -azcatsynthappbaselineminimal,TRUE,52.138.116.190,?marco,minimaltest.txt +azcatsynthappnocrashminimal,FALSE,52.167.17.34,?marco,minimaltest.txt +azcatsynthappbaselineminimal,FALSE,52.138.116.190,?marco,minimaltest.txt diff --git a/temp/testDefs/eastus1-dynamo.txt b/temp/testDefs/eastus1-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus1-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus1-peek.txt b/temp/testDefs/eastus1-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/eastus1-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/eastus1-rds.txt b/temp/testDefs/eastus1-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus1-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus1-s3.txt b/temp/testDefs/eastus1-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus1-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-dynamo.txt b/temp/testDefs/eastus2-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus2-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-peek.txt b/temp/testDefs/eastus2-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/eastus2-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-rds.txt b/temp/testDefs/eastus2-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus2-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-s3.txt b/temp/testDefs/eastus2-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus2-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/flatLoad.txt b/temp/testDefs/flatLoad.txt deleted file mode 100644 index 057fa03..0000000 --- a/temp/testDefs/flatLoad.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -1,86400,0 \ No newline at end of file diff --git a/temp/testDefs/jedi_short.txt b/temp/testDefs/jedi_short.txt deleted file mode 100644 index 281f64e..0000000 --- a/temp/testDefs/jedi_short.txt +++ /dev/null @@ -1,8 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -150,60,60 -1,45,0 -450,75,75 -1,45,0 -50,60,0 - - diff --git a/temp/testDefs/jedilikeaws.txt b/temp/testDefs/jedilikeaws.txt deleted file mode 100644 index 01b6dfb..0000000 --- a/temp/testDefs/jedilikeaws.txt +++ /dev/null @@ -1,6 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -150,120,120 -150,180,0 -450,120,120 -450,300,0 -60,360,0 diff --git a/temp/testDefs/minimaltest.txt b/temp/testDefs/minimaltest.txt deleted file mode 100644 index 6500aec..0000000 --- a/temp/testDefs/minimaltest.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -600,15,15 \ No newline at end of file diff --git a/temp/testDefs/ramptest.txt b/temp/testDefs/ramptest.txt deleted file mode 100644 index 0146cd3..0000000 --- a/temp/testDefs/ramptest.txt +++ /dev/null @@ -1,6 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -100,120,120 -100,180,180 -200,120,120 -300,240,240 - diff --git a/temp/testDefs/singlepoke.txt b/temp/testDefs/singlepoke.txt deleted file mode 100644 index e8f23b4..0000000 --- a/temp/testDefs/singlepoke.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/steady.txt b/temp/testDefs/steady.txt deleted file mode 100644 index 61a03e8..0000000 --- a/temp/testDefs/steady.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -10,1800,1 \ No newline at end of file diff --git a/temp/testDefs/steadylow.txt b/temp/testDefs/steadylow.txt deleted file mode 100644 index 53060b1..0000000 --- a/temp/testDefs/steadylow.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -1,1800,1 \ No newline at end of file diff --git a/temp/testDefs/testlimit.txt b/temp/testDefs/testlimit.txt index 686b48f..736a35d 100644 --- a/temp/testDefs/testlimit.txt +++ b/temp/testDefs/testlimit.txt @@ -1,42 +1,3 @@ NumUsers, DurationSeconds, RampSeconds 100,120,0 -100,120,0 -200,120,0 -200,120,0 -300,120,0 -300,120,0 -400,120,0 -400,120,0 -500,120,0 -500,120,0 -600,120,0 -600,120,0 -700,120,0 -700,120,0 -800,120,0 -800,120,0 -900,120,0 -900,120,0 -1000,120,0 -1000,120,0 -1100,120,0 -1100,120,0 -1200,120,0 -1200,120,0 -1300,120,0 -1300,120,0 -1400,120,0 -1400,120,0 -1500,120,0 -1500,120,0 -1600,120,0 -1600,120,0 -1700,120,0 -1700,120,0 -1800,120,0 -1800,120,0 -1900,120,0 -1900,120,0 -2000,120,0 -2000,120,0 - +600,300,300 \ No newline at end of file diff --git a/temp/testDefs/testlimitlow.txt b/temp/testDefs/testlimitlow.txt deleted file mode 100644 index d5d85e9..0000000 --- a/temp/testDefs/testlimitlow.txt +++ /dev/null @@ -1,7 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -10,60,1 -50,60,1 -100,60,1 -200,60,1 -400,60,1 -800,60,1 \ No newline at end of file diff --git a/temp/testDefs/westus1-dynamo.txt b/temp/testDefs/westus1-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus1-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus1-peek.txt b/temp/testDefs/westus1-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/westus1-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/westus1-rds.txt b/temp/testDefs/westus1-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus1-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus1-s3.txt b/temp/testDefs/westus1-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus1-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-dynamo.txt b/temp/testDefs/westus2-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus2-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-peek.txt b/temp/testDefs/westus2-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/westus2-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-rds.txt b/temp/testDefs/westus2-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus2-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-s3.txt b/temp/testDefs/westus2-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus2-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/test_manual.sh b/test_manual.sh deleted file mode 100755 index 048090c..0000000 --- a/test_manual.sh +++ /dev/null @@ -1,31 +0,0 @@ -workloadTenant="manual" - -jmxFile='jmx/main.jmx' -jmxDestFile='/tmp/main.jmx' - -payloadScript="payload_script.sh" -payloadDestFile="/tmp/payload_script.sh" - -working_dir='k8sDefs' -echo "Namspace $workloadTenant deleting" -kubectl delete namespace $workloadTenant - -echo "Namspace $workloadTenant creating" -kubectl create namespace $workloadTenant -kubectl get secret jmeterlogsecret -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - -echo "Creating Jmeter Master" -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -#TODO - make this check on the status of master instead of arbitrary... -echo Waiting for master pod to be ready -sleep 60 -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -echo Copying payload to master pod -# Copy the jmx template to the pod -kubectl cp "$jmxFile" -n $workloadTenant "$master_pod:/$jmxDestFile" - -# Copy the script to the pod -kubectl cp "$payloadScript" -n $workloadTenant "$master_pod:/$payloadDestFile" diff --git a/test_runs/testRunConfig.txt b/test_runs/testRunConfig.txt deleted file mode 100644 index 635053c..0000000 --- a/test_runs/testRunConfig.txt +++ /dev/null @@ -1,3 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -60,300,0 -500,300,0 diff --git a/testrun.sh b/testrun.sh deleted file mode 100755 index 5f123db..0000000 --- a/testrun.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# Create multiple Jmeter namespaces on an existing kuberntes cluster -# Started On January 23, 2018 - -working_dir=`pwd` -integerCheck='^[0-9]+$' -jmxFile='jmx/baseline.jmx' -testRunConfig='test_runs/testRunConfig.txt' -jmxRunFile='temp/currentJmxRun.jmx' -jmxTextFile='temp/currentJmxText.txt' -index=0 - -sed -n -e 'H;${x;s/\n/;;/g;s/^,//;p;}' $testRunConfig > $jmxTextFile -IFS=';;' read -ra configArray <<< $(cat $jmxTextFile) - -# Loop through each config and run JMeter set to that config -for newConfig in $configArray -do - # Remove whitespaces from string then convert to array - testRun="$(echo -e "${newConfig}" | tr -d '[:space:]')" - echo $testRun - IFS=',' read -ra testArray <<< "$testRun" - - # Feed integer string into jmx file and run test - if ! [[ ${testArray[0]} =~ $integerCheck && ${testArray[1]} =~ $integerCheck && ${testArray[2]} =~ $integerCheck ]] - then - echo "Non-integer input detected. Skipping line." - else - # Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. - # It requires that you supply the path to the jmx file - - echo "Loop output" - echo ${testArray[0]} - echo ${testArray[1]} - echo ${testArray[2]} - - fi -done - -# Delete jmeter test namespace when complete diff --git a/workloadTenant_export b/workloadTenant_export deleted file mode 100644 index c2d14d8..0000000 --- a/workloadTenant_export +++ /dev/null @@ -1 +0,0 @@ -namespace = aksjmeter From 5002636a2cd63bebe1acd80b0fe02b2512a4e61b Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 21:10:32 +0000 Subject: [PATCH 05/24] Cleaning --- GrafanaJMeterTemplate.json | 1609 ------------------------ jmeter.log | 45 - jmeter_cluster_deploy_monitoring.sh | 90 -- jmeter_cluster_deploy_test_rig.sh | 99 -- k8sDefs/jmeter_grafana_deploy.yaml | 36 - k8sDefs/jmeter_grafana_svc.yaml | 13 - k8sDefs/jmeter_influxdb_configmap.yaml | 21 - k8sDefs/jmeter_influxdb_deploy.yaml | 34 - k8sDefs/jmeter_influxdb_svc.yaml | 19 - k8sDefs/jmeter_slaves_deploy.yaml | 23 - k8sDefs/jmeter_slaves_svc.yaml | 17 - start_full_test.sh | 145 --- start_jmeterPods.sh | 102 -- start_test.sh | 33 - start_testLoop.sh | 190 --- temp/testDefs/1minutepause.txt | 2 - temp/testDefs/5minutepause.txt | 2 - temp/testDefs/annandaleignite.txt | 5 - temp/testDefs/annandaleignitelong.txt | 3 - temp/testDefs/awsTest.txt | 12 - temp/testDefs/currentTests.csv | 11 - temp/testDefs/eastus1-dynamo.txt | 2 - temp/testDefs/eastus1-peek.txt | 2 - temp/testDefs/eastus1-rds.txt | 2 - temp/testDefs/eastus1-s3.txt | 2 - temp/testDefs/eastus2-dynamo.txt | 2 - temp/testDefs/eastus2-peek.txt | 2 - temp/testDefs/eastus2-rds.txt | 2 - temp/testDefs/eastus2-s3.txt | 2 - temp/testDefs/flatLoad.txt | 2 - temp/testDefs/jedi_short.txt | 8 - temp/testDefs/jedilikeaws.txt | 6 - temp/testDefs/jediprod.txt | 10 - temp/testDefs/minimaltest.txt | 2 - temp/testDefs/ramptest.txt | 6 - temp/testDefs/singlepoke.txt | 2 - temp/testDefs/steady.txt | 2 - temp/testDefs/steadylow.txt | 2 - temp/testDefs/testlimit.txt | 41 +- temp/testDefs/testlimitlow.txt | 7 - temp/testDefs/westus1-dynamo.txt | 2 - temp/testDefs/westus1-peek.txt | 2 - temp/testDefs/westus1-rds.txt | 2 - temp/testDefs/westus1-s3.txt | 2 - temp/testDefs/westus2-dynamo.txt | 2 - temp/testDefs/westus2-peek.txt | 2 - temp/testDefs/westus2-rds.txt | 2 - temp/testDefs/westus2-s3.txt | 2 - test_manual.sh | 31 - test_runs/testRunConfig.txt | 3 - testrun.sh | 40 - workloadTenant_export | 1 - 52 files changed, 1 insertion(+), 2705 deletions(-) delete mode 100755 GrafanaJMeterTemplate.json delete mode 100644 jmeter.log delete mode 100755 jmeter_cluster_deploy_monitoring.sh delete mode 100755 jmeter_cluster_deploy_test_rig.sh delete mode 100644 k8sDefs/jmeter_grafana_deploy.yaml delete mode 100644 k8sDefs/jmeter_grafana_svc.yaml delete mode 100644 k8sDefs/jmeter_influxdb_configmap.yaml delete mode 100644 k8sDefs/jmeter_influxdb_deploy.yaml delete mode 100644 k8sDefs/jmeter_influxdb_svc.yaml delete mode 100644 k8sDefs/jmeter_slaves_deploy.yaml delete mode 100644 k8sDefs/jmeter_slaves_svc.yaml delete mode 100755 start_full_test.sh delete mode 100755 start_jmeterPods.sh delete mode 100755 start_test.sh delete mode 100755 start_testLoop.sh delete mode 100644 temp/testDefs/1minutepause.txt delete mode 100644 temp/testDefs/5minutepause.txt delete mode 100644 temp/testDefs/annandaleignite.txt delete mode 100644 temp/testDefs/annandaleignitelong.txt delete mode 100644 temp/testDefs/awsTest.txt delete mode 100644 temp/testDefs/currentTests.csv delete mode 100644 temp/testDefs/eastus1-dynamo.txt delete mode 100644 temp/testDefs/eastus1-peek.txt delete mode 100644 temp/testDefs/eastus1-rds.txt delete mode 100644 temp/testDefs/eastus1-s3.txt delete mode 100644 temp/testDefs/eastus2-dynamo.txt delete mode 100644 temp/testDefs/eastus2-peek.txt delete mode 100644 temp/testDefs/eastus2-rds.txt delete mode 100644 temp/testDefs/eastus2-s3.txt delete mode 100644 temp/testDefs/flatLoad.txt delete mode 100644 temp/testDefs/jedi_short.txt delete mode 100644 temp/testDefs/jedilikeaws.txt delete mode 100644 temp/testDefs/jediprod.txt delete mode 100644 temp/testDefs/minimaltest.txt delete mode 100644 temp/testDefs/ramptest.txt delete mode 100644 temp/testDefs/singlepoke.txt delete mode 100644 temp/testDefs/steady.txt delete mode 100644 temp/testDefs/steadylow.txt delete mode 100644 temp/testDefs/testlimitlow.txt delete mode 100644 temp/testDefs/westus1-dynamo.txt delete mode 100644 temp/testDefs/westus1-peek.txt delete mode 100644 temp/testDefs/westus1-rds.txt delete mode 100644 temp/testDefs/westus1-s3.txt delete mode 100644 temp/testDefs/westus2-dynamo.txt delete mode 100644 temp/testDefs/westus2-peek.txt delete mode 100644 temp/testDefs/westus2-rds.txt delete mode 100644 temp/testDefs/westus2-s3.txt delete mode 100755 test_manual.sh delete mode 100644 test_runs/testRunConfig.txt delete mode 100755 testrun.sh delete mode 100644 workloadTenant_export diff --git a/GrafanaJMeterTemplate.json b/GrafanaJMeterTemplate.json deleted file mode 100755 index d887fc6..0000000 --- a/GrafanaJMeterTemplate.json +++ /dev/null @@ -1,1609 +0,0 @@ -{ - "__inputs": [ - { - "name": "DS_JMETERDB", - "label": "jmeterdb", - "description": "", - "type": "datasource", - "pluginId": "influxdb", - "pluginName": "InfluxDB" - } - ], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "5.2.0" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "5.0.0" - }, - { - "type": "datasource", - "id": "influxdb", - "name": "InfluxDB", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "singlestat", - "name": "Singlestat", - "version": "5.0.0" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - }, - { - "datasource": "${DS_JMETERDB}", - "enable": true, - "iconColor": "rgb(237, 18, 18)", - "iconSize": 17, - "lineColor": "rgb(0, 21, 255)", - "name": "Annotation", - "query": "select text,tags,title from \"$retention\".\"events\" where application =~ /$app/ AND $timeFilter", - "showLine": true, - "tagsColumn": "tags", - "textColumn": "text", - "titleColumn": "title" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 1, - "id": null, - "iteration": 1552478455724, - "links": [ - { - "asDropdown": true, - "icon": "dashboard", - "includeVars": true, - "keepTime": true, - "tags": [], - "targetBlank": true, - "tooltip": "", - "type": "dashboards", - "url": "" - } - ], - "panels": [ - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 35, - "panels": [], - "repeat": null, - "title": "Jmeter Metrics", - "type": "row" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 0, - "y": 1 - }, - "id": 19, - "interval": "$granularity", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": " users", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT last(\"startedT\") FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity) fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "meanAT" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - } - ] - } - ], - "thresholds": "", - "title": "Active Users", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 8, - "y": 1 - }, - "id": 17, - "interval": "", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": " TPS", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - } - ], - "measurement": "jmeter", - "policy": "default", - "query": "SELECT sum(\"hit\") / 30 FROM \"$retention\".\"jmeter\" WHERE \"application\" = '$app' AND \"transaction\" = 'all' AND $timeFilter GROUP BY time(30s)", - "rawQuery": true, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "hit" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [ - " / 5" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": "", - "title": "Currents hits per Second", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "percentunit", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 21, - "interval": "$granularity", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT sum(\"countError\") / sum(\"count\") FROM \"$retention\".\"jmeter\" WHERE \"application\" =~ /$app$/ AND \"transaction\" = 'all' AND $timeFilter", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "countError" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / sum(\"count\")" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": "0.1,0.2", - "title": "% Errors", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "total" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 4, - "w": 8, - "x": 0, - "y": 5 - }, - "id": 27, - "interval": "$granularity", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "Hits", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT last(\"hit\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity) fill(null)", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "hit" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - }, - { - "params": [ - " / 5" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Hits per Second", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": false, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 8, - "y": 5 - }, - "id": 22, - "interval": "$granularity", - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": true, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "dsType": "influxdb", - "groupBy": [], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT \"hit\" FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND \"statut\" = 'all' AND $timeFilter", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "hit" - ], - "type": "field" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": "", - "title": "Total Hits", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "0", - "value": "null" - } - ], - "valueName": "total" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 5 - }, - "id": 28, - "interval": "$granularity", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "Errors", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "0" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT mean(\"countError\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity) fill(0)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "countError" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - " / 5" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Errors per Second", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": false, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 36, - "panels": [], - "repeat": null, - "title": "Application Metrics", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 10 - }, - "height": "", - "id": 25, - "interval": "$granularity", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$granularity" - ], - "type": "time" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - } - ], - "hide": false, - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT mean(\"avg\") FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND $timeFilter GROUP BY time($granularity), \"transaction\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "avg" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Average Response Time", - "tooltip": { - "msResolution": false, - "shared": false, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ms", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 28 - }, - "height": "", - "id": 26, - "interval": "$granularity", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "30s" - ], - "type": "time" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT mean(\"count\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND \"transaction\" <> 'all' AND $timeFilter GROUP BY time($granularity), \"transaction\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "count" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / 30" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "<>", - "value": "all" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "all" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Transaction Per Second", - "tooltip": { - "msResolution": false, - "shared": false, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ops", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 46 - }, - "height": "", - "id": 29, - "interval": "$granularity", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "30s" - ], - "type": "time" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT last(\"count\") / 30 FROM \"$retention\".\"jmeter\" WHERE \"application\" =~ /$app$/ AND \"statut\" = 'ko' AND $timeFilter GROUP BY time(30s), \"transaction\" fill(null)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "count" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / 30" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "statut", - "operator": "=", - "value": "ko" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Error Per Second", - "tooltip": { - "msResolution": false, - "shared": false, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ops", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_JMETERDB}", - "editable": true, - "error": false, - "fill": 1, - "grid": {}, - "gridPos": { - "h": 18, - "w": 24, - "x": 0, - "y": 64 - }, - "height": "", - "id": 34, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": true, - "hideZero": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "minSpan": 24, - "nullPointMode": "null", - "percentage": false, - "pointradius": 1, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": true, - "targets": [ - { - "alias": "$tag_transaction - $tag_responseCode : $tag_responseMessage", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "30s" - ], - "type": "time" - }, - { - "params": [ - "responseMessage" - ], - "type": "tag" - }, - { - "params": [ - "responseCode" - ], - "type": "tag" - }, - { - "params": [ - "transaction" - ], - "type": "tag" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "jmeter", - "policy": "$retention", - "query": "SELECT sum(\"count\") / 5 FROM \"jmeter\" WHERE \"application\" =~ /$app$/ AND \"statut\" = 'ko' AND $timeFilter GROUP BY time($granularity), \"responseCode\" fill(null)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "count" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - " / 30" - ], - "type": "math" - } - ] - ], - "tags": [ - { - "key": "application", - "operator": "=~", - "value": "/$app$/" - }, - { - "condition": "AND", - "key": "responseCode", - "operator": "!~", - "value": "/^0$|^$/" - }, - { - "condition": "AND", - "key": "transaction", - "operator": "=~", - "value": "/$transaction/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "Error detail", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 0, - "value_type": "cumulative" - }, - "transparent": false, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "30s", - "schemaVersion": 16, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allValue": ".*", - "current": {}, - "datasource": "${DS_JMETERDB}", - "hide": 0, - "includeAll": false, - "label": null, - "multi": true, - "name": "app", - "options": [], - "query": "SHOW TAG VALUES FROM \"process\" WITH KEY = \"application\"", - "refresh": 2, - "regex": "", - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "SHOW TAG VALUES FROM \"events\" WITH KEY = \"tags\"", - "type": "query", - "useTags": false - }, - { - "allFormat": "regex wildcard", - "auto": false, - "auto_count": 10, - "auto_min": "10s", - "current": { - "text": "1m", - "value": "1m" - }, - "datasource": "jmeterdb", - "hide": 0, - "includeAll": true, - "label": "", - "multi": false, - "multiFormat": "glob", - "name": "granularity", - "options": [ - { - "selected": true, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "5m", - "value": "5m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "5s", - "value": "5s" - }, - { - "selected": false, - "text": "15s", - "value": "15s" - }, - { - "selected": false, - "text": "30s", - "value": "30s" - } - ], - "query": "1m,5m,1h,5s,15s,30s", - "refresh": 2, - "regex": "", - "type": "interval" - }, - { - "allValue": null, - "current": {}, - "datasource": "${DS_JMETERDB}", - "hide": 0, - "includeAll": false, - "label": null, - "multi": false, - "name": "retention", - "options": [], - "query": "SHOW RETENTION POLICIES ON \"jmeterdb\"", - "refresh": 1, - "regex": "", - "sort": 0, - "tagValuesQuery": null, - "tags": [], - "tagsQuery": null, - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": {}, - "datasource": "${DS_JMETERDB}", - "hide": 0, - "includeAll": true, - "label": null, - "multi": true, - "name": "transaction", - "options": [], - "query": "SHOW TAG VALUES FROM \"jmeter\" WITH KEY IN (\"transaction\",\"application\") where application =~ /$app/ and transaction !~ /all/", - "refresh": 2, - "regex": "", - "sort": 0, - "tagValuesQuery": null, - "tags": [], - "tagsQuery": null, - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": { - "now": true, - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "JMeter Metric Template", - "uid": "ltaas", - "version": 1 -} \ No newline at end of file diff --git a/jmeter.log b/jmeter.log deleted file mode 100644 index 3908930..0000000 --- a/jmeter.log +++ /dev/null @@ -1,45 +0,0 @@ -2020/01/13 16:07:54 INFO - jmeter.util.JMeterUtils: Setting Locale to en -2020/01/13 16:07:55 INFO - jmeter.JMeter: Loading user properties from: /usr/share/jmeter/bin/user.properties -2020/01/13 16:07:55 INFO - jmeter.JMeter: Loading system properties from: /usr/share/jmeter/bin/system.properties -2020/01/13 16:07:55 INFO - jmeter.JMeter: Copyright (c) 1998-2015 The Apache Software Foundation -2020/01/13 16:07:55 INFO - jmeter.JMeter: Version 2.13.20170723 -2020/01/13 16:07:55 INFO - jmeter.JMeter: java.version=11.0.5 -2020/01/13 16:07:55 INFO - jmeter.JMeter: java.vm.name=OpenJDK 64-Bit Server VM -2020/01/13 16:07:55 INFO - jmeter.JMeter: os.name=Linux -2020/01/13 16:07:55 INFO - jmeter.JMeter: os.arch=amd64 -2020/01/13 16:07:55 INFO - jmeter.JMeter: os.version=5.0.0-1027-azure -2020/01/13 16:07:55 INFO - jmeter.JMeter: file.encoding=UTF-8 -2020/01/13 16:07:55 INFO - jmeter.JMeter: Default Locale=English -2020/01/13 16:07:55 INFO - jmeter.JMeter: JMeter Locale=English -2020/01/13 16:07:55 INFO - jmeter.JMeter: JMeterHome=/usr/share/jmeter -2020/01/13 16:07:55 INFO - jmeter.JMeter: user.dir =/home/daweins/code/laas/LaaSFork/LaaS -2020/01/13 16:07:55 INFO - jmeter.JMeter: PWD =/home/daweins/code/laas/LaaSFork/LaaS -2020/01/13 16:07:55 INFO - jmeter.JMeter: IP: 10.0.0.4 Name: perminfrubuntugnome FullName: perminfrubuntugnome -2020/01/13 16:07:55 INFO - jmeter.gui.action.LookAndFeelCommand: Using look and feel: javax.swing.plaf.metal.MetalLookAndFeel [Metal, CrossPlatform] -2020/01/13 16:07:55 INFO - jmeter.JMeter: Loaded icon properties from org/apache/jmeter/images/icon.properties -2020/01/13 16:07:56 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must contain the string: '.functions.' -2020/01/13 16:07:56 INFO - jmeter.engine.util.CompoundVariable: Note: Function class names must not contain the string: '.gui.' -2020/01/13 16:07:56 INFO - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is -2020/01/13 16:07:57 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser -2020/01/13 16:07:57 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui -2020/01/13 16:07:57 INFO - jorphan.exec.KeyToolUtils: keytool found at 'keytool' -2020/01/13 16:07:57 INFO - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /usr/share/jmeter/bin/proxyserver.jks -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true -2020/01/13 16:07:58 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 -2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Default base='/home/daweins/code/laas/LaaSFork/LaaS' -2020/01/13 16:08:03 INFO - jmeter.gui.action.Load: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx -2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties version 2.8 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties file version 1656252 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: All converter versions present and correct -2020/01/13 16:08:03 INFO - jmeter.save.SaveService: Loading file: /home/daweins/code/laas/LaaSFork/LaaS/jmx/main.jmx -2020/01/13 16:08:03 INFO - jmeter.services.FileServer: Set new base='/home/daweins/code/laas/LaaSFork/LaaS/jmx' diff --git a/jmeter_cluster_deploy_monitoring.sh b/jmeter_cluster_deploy_monitoring.sh deleted file mode 100755 index 9f64397..0000000 --- a/jmeter_cluster_deploy_monitoring.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env bash -#Create multiple Jmeter namespaces on an existing kuberntes cluster -#Started On January 23, 2018 - -working_dir=`pwd` -monitoringTenant='jmeter-monitoring' - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo - -#Check If namespace exists - -kubectl get namespace $monitoringTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $monitoringTenant already exists, please delete this namespace and rerun this script" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo - -echo "Creating Namespace: $monitoringTenant" - -kubectl create namespace $monitoringTenant - -echo "Namspace $monitoringTenant has been created" - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -echo "Creating Influxdb and the service" - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_influxdb_configmap.yaml - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_influxdb_deploy.yaml - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_influxdb_svc.yaml - -echo "Creating Grafana Deployment" - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_grafana_deploy.yaml - -kubectl create -n $monitoringTenant -f $working_dir/jmeter_grafana_svc.yaml - -echo "Printout Of the $monitoringTenant Objects" - -echo - -kubectl get -n $monitoringTenant all - -## Create jmeter database automatically in Influxdb - -echo "Creating Influxdb jmeter Database" - -## Sleep to allow time for pods to deploy - -sleep 30 - -## Wait until Influxdb Deployment is up and running -## influxdb_status=`kubectl get po -n $monitoringTenant | grep influxdb-jmeter | awk '{print $2}' | grep Running - -influxdb_pod=`kubectl get po -n $monitoringTenant | grep influxdb-jmeter | awk '{print $1}'` -kubectl exec -ti -n $monitoringTenant $influxdb_pod -- influx -execute 'CREATE DATABASE jmeter' - -## Create the influxdb datasource in Grafana - -echo "Creating the Influxdb data source" -grafana_pod=`kubectl get po -n $monitoringTenant | grep jmeter-grafana | awk '{print $1}'` - -## kubectl cp $working_dir/influxdb-jmeter-datasource.json -n $monitoringTenant $grafana_pod:/influxdb-jmeter-datasource.json - -kubectl exec -ti -n $monitoringTenant $grafana_pod -- curl 'http://admin:admin@127.0.0.1:3000/api/datasources' -X POST -H 'Content-Type: application/json;charset=UTF-8' --data-binary '{"name":"jmeterdb","type":"influxdb","url":"http://jmeter-influxdb:8086","access":"proxy","isDefault":true,"database":"jmeter","user":"admin","password":"admin"}' \ No newline at end of file diff --git a/jmeter_cluster_deploy_test_rig.sh b/jmeter_cluster_deploy_test_rig.sh deleted file mode 100755 index 74623a0..0000000 --- a/jmeter_cluster_deploy_test_rig.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash -#Create multiple Jmeter namespaces on an existing kuberntes cluster -#Started On January 23, 2018 - -working_dir=`pwd` - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo "Current list of namespaces on the kubernetes cluster:" - -echo - -kubectl get namespaces | grep -v NAME | awk '{print $1}' - -echo - -echo "Enter the name of the new tenant unique name, this will be used to create the namespace" -read workloadTenant -echo - -#Check If namespace exists - -kubectl get namespace $workloadTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $workloadTenant already exists, please select a unique name" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo -echo "Creating Namespace: $workloadTenant" - -kubectl create namespace $workloadTenant - -echo "Namspace $workloadTenant has been created" - -echo - -echo "Creating Jmeter slave nodes" - -nodes=`kubectl get no | egrep -v "master|NAME" | wc -l` - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -#echo "Creating $nodes Jmeter slave replicas and service" - -echo - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_deploy.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_svc.yaml - -echo "Creating Jmeter Master" - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -echo "Printout Of the $workloadTenant Objects" - -echo - -kubectl get -n $workloadTenant all - -echo namespace = $workloadTenant > $working_dir/workloadTenant_export - -## Make load test script in Jmeter master pod executable - -echo - -echo "Configuring load test settings in Master" - -sleep 10 - -#Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -kubectl exec -ti -n $workloadTenant $master_pod -- cp -r /load_test /jmeter/load_test - -kubectl exec -ti -n $workloadTenant $master_pod -- chmod 755 /jmeter/load_test diff --git a/k8sDefs/jmeter_grafana_deploy.yaml b/k8sDefs/jmeter_grafana_deploy.yaml deleted file mode 100644 index ca5867b..0000000 --- a/k8sDefs/jmeter_grafana_deploy.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: jmeter-grafana - labels: - app: jmeter-grafana -spec: - replicas: 1 - selector: - matchLabels: - app: jmeter-grafana - template: - metadata: - labels: - app: jmeter-grafana - spec: - containers: - - name: grafana - image: grafana/grafana:5.2.0 - imagePullPolicy: IfNotPresent - ports: - - containerPort: 3000 - protocol: TCP - env: - - name: GF_AUTH_BASIC_ENABLED - value: "true" - - name: GF_USERS_ALLOW_ORG_CREATE - value: "true" - - name: GF_AUTH_ANONYMOUS_ENABLED - value: "true" - - name: GF_AUTH_ANONYMOUS_ORG_ROLE - value: Admin - - name: GF_SERVER_ROOT_URL - # If you're only using the API Server proxy, set this value instead: - # value: /api/v1/namespaces/kube-system/services/monitoring-grafana/proxy - value: / diff --git a/k8sDefs/jmeter_grafana_svc.yaml b/k8sDefs/jmeter_grafana_svc.yaml deleted file mode 100644 index ff169c0..0000000 --- a/k8sDefs/jmeter_grafana_svc.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: jmeter-grafana - labels: - app: jmeter-grafana -spec: - ports: - - port: 3000 - targetPort: 3000 - selector: - app: jmeter-grafana - type: NodePort \ No newline at end of file diff --git a/k8sDefs/jmeter_influxdb_configmap.yaml b/k8sDefs/jmeter_influxdb_configmap.yaml deleted file mode 100644 index 308a510..0000000 --- a/k8sDefs/jmeter_influxdb_configmap.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: influxdb-config - labels: - app: influxdb-jmeter -data: - influxdb.conf: | - [meta] - dir = "/var/lib/influxdb/meta" - - [data] - dir = "/var/lib/influxdb/data" - engine = "tsm1" - wal-dir = "/var/lib/influxdb/wal" - - # Configure the graphite api - [[graphite]] - enabled = true - bind-address = ":2003" # If not set, is actually set to bind-address. - database = "jmeter" # store graphite data in this database \ No newline at end of file diff --git a/k8sDefs/jmeter_influxdb_deploy.yaml b/k8sDefs/jmeter_influxdb_deploy.yaml deleted file mode 100644 index 7e78408..0000000 --- a/k8sDefs/jmeter_influxdb_deploy.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: influxdb-jmeter - labels: - app: influxdb-jmeter -spec: - replicas: 1 - selector: - matchLabels: - app: influxdb-jmeter - template: - metadata: - labels: - app: influxdb-jmeter - spec: - containers: - - image: influxdb - imagePullPolicy: IfNotPresent - name: influxdb - volumeMounts: - - name: config-volume - mountPath: /etc/influxdb - ports: - - containerPort: 8083 - name: influx - - containerPort: 8086 - name: api - - containerPort: 2003 - name: graphite - volumes: - - name: config-volume - configMap: - name: influxdb-config \ No newline at end of file diff --git a/k8sDefs/jmeter_influxdb_svc.yaml b/k8sDefs/jmeter_influxdb_svc.yaml deleted file mode 100644 index 7147e6f..0000000 --- a/k8sDefs/jmeter_influxdb_svc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: jmeter-influxdb - labels: - app: influxdb-jmeter -spec: - ports: - - port: 8083 - name: http - targetPort: 8083 - - port: 8086 - name: api - targetPort: 8086 - - port: 2003 - name: graphite - targetPort: 2003 - selector: - app: influxdb-jmeter \ No newline at end of file diff --git a/k8sDefs/jmeter_slaves_deploy.yaml b/k8sDefs/jmeter_slaves_deploy.yaml deleted file mode 100644 index b729f71..0000000 --- a/k8sDefs/jmeter_slaves_deploy.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: jmeter-slaves - labels: - jmeter_mode: slave -spec: - replicas: 1 - selector: - matchLabels: - jmeter_mode: slave - template: - metadata: - labels: - jmeter_mode: slave - spec: - containers: - - name: jmslave - image: kubernautslabs/jmeter_slave:latest - imagePullPolicy: IfNotPresent - ports: - - containerPort: 1099 - - containerPort: 50000 diff --git a/k8sDefs/jmeter_slaves_svc.yaml b/k8sDefs/jmeter_slaves_svc.yaml deleted file mode 100644 index 94566f5..0000000 --- a/k8sDefs/jmeter_slaves_svc.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: jmeter-slaves-svc - labels: - jmeter_mode: slave -spec: - clusterIP: None - ports: - - port: 1099 - name: first - targetPort: 1099 - - port: 50000 - name: second - targetPort: 50000 - selector: - jmeter_mode: slave \ No newline at end of file diff --git a/start_full_test.sh b/start_full_test.sh deleted file mode 100755 index f99a236..0000000 --- a/start_full_test.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env bash -# Create multiple Jmeter namespaces on an existing kuberntes cluster -# Started On January 23, 2018 - -working_dir=`pwd` -integerCheck='^[0-9]+$' -jmxFile='jmx/baseline.jmx' -testRunConfig='test_runs/testRunConfig.txt' -jmxRunFile='temp/currentJmxRun.jmx' -jmxTextFile='temp/currentJmxText.txt' -index=0 - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo "Current list of namespaces on the kubernetes cluster:" - -echo - -kubectl get namespaces | grep -v NAME | awk '{print $1}' - -echo - -echo "Enter the name of the new tenant unique name, this will be used to create the namespace" -read workloadTenant -echo - -# Check If namespace exists - -kubectl get namespace $workloadTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $workloadTenant already exists, please select a unique name" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo -echo "Creating Namespace: $workloadTenant" - -kubectl create namespace $workloadTenant - -echo "Namspace $workloadTenant has been created" - -echo - -echo "Creating Jmeter slave nodes" - -nodes=`kubectl get no | egrep -v "master|NAME" | wc -l` - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -echo "Creating $nodes Jmeter slave replicas and service" - -echo - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_deploy.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_svc.yaml - -echo "Creating Jmeter Master" - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -echo "Printout Of the $workloadTenant Objects" - -echo - -kubectl get -n $workloadTenant all - -echo namespace = $workloadTenant > $working_dir/workloadTenant_export - -## Make load test script in Jmeter master pod executable - -echo - -echo "Configuring load test settings in Master" - -sleep 30 - -# Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -#kubectl exec -ti -n $workloadTenant $master_pod -- cp -r /load_test /jmeter/load_test - -#kubectl exec -ti -n $workloadTenant $master_pod -- chmod 755 /jmeter/load_test - -sed -n -e 'H;${x;s/\n/;;/g;s/^,//;p;}' $testRunConfig > $jmxTextFile -IFS=';;' read -ra configArray <<< $(cat $jmxTextFile) - -# Loop through each config and run JMeter set to that config -for newConfig in $configArray -do - # Remove whitespaces from string then convert to array - testRun="$(echo -e "${newConfig}" | tr -d '[:space:]')" - IFS=',' read -ra testArray <<< "$testRun" - - # Feed integer string into jmx file and run test - if ! [[ ${testArray[0]} =~ $integerCheck && ${testArray[1]} =~ $integerCheck && ${testArray[2]} =~ $integerCheck ]] - then - echo "Non-integer input detected. Skipping line." - else - # Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. - # It requires that you supply the path to the jmx file - - ((throughputPerMin=${testArray[0]}*60)) - - sed "s/{numUsers}/${testArray[0]}/g;s/{duration}/${testArray[1]}/g;s/{ramp}/${testArray[2]}/g;s/{throughputPerMin}/$throughputPerMin/g" $jmxFile > $jmxRunFile - - test_name="$(basename "$jmxRunFile")" - - # Get Master pod details - - kubectl cp "$jmxRunFile" -n $workloadTenant "$master_pod:/$test_name" - - # Starting Jmeter load test - - kubectl exec -ti -n $workloadTenant $master_pod -- /bin/bash /load_test "$test_name" - fi -done - -# Delete jmeter test namespace when complete - -sleep 30 - -kubectl delete namespace $workloadTenant \ No newline at end of file diff --git a/start_jmeterPods.sh b/start_jmeterPods.sh deleted file mode 100755 index 2a69e14..0000000 --- a/start_jmeterPods.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env bash -# Create multiple Jmeter namespaces on an existing kuberntes cluster -# Started On January 23, 2018 - -tenantName='aksjmeter' -working_dir=`pwd` -integerCheck='^[0-9]+$' -jmxFile='jmx/baseline.jmx' -testRunConfig='test_runs/testRunConfig.txt' -jmxRunFile='temp/currentJmxRun.jmx' -jmxTextFile='temp/currentJmxText.txt' -index=0 - -echo "checking if kubectl is present" - -if ! hash kubectl 2>/dev/null -then - echo "'kubectl' was not found in PATH" - echo "Kindly ensure that you can acces an existing kubernetes cluster via kubectl" - exit -fi - -kubectl version --short - -echo "Current list of namespaces on the kubernetes cluster:" - -echo - -kubectl get namespaces | grep -v NAME | awk '{print $1}' - -echo -# -echo "Enter the name of the new tenant unique name, this will be used to create the namespace" -workloadTenant=$tenantName -echo $workloadTenant - -# Check If namespace exists - -kubectl get namespace $workloadTenant > /dev/null 2>&1 - -if [ $? -eq 0 ] -then - echo "Namespace $workloadTenant already exists, please select a unique name" - echo "Current list of namespaces on the kubernetes cluster" - sleep 2 - - kubectl get namespaces | grep -v NAME | awk '{print $1}' - exit 1 -fi - -echo -echo "Creating Namespace: $workloadTenant" - -kubectl create namespace $workloadTenant - -echo "Namspace $workloadTenant has been created" - -echo - -echo "Creating Jmeter slave nodes" - -nodes=`kubectl get no | egrep -v "master|NAME" | wc -l` - -echo - -echo "Number of worker nodes on this cluster is " $nodes - -echo - -echo "Creating $nodes Jmeter slave replicas and service" - -echo - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_deploy.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_slaves_svc.yaml - -echo "Creating Jmeter Master" - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -echo "Printout Of the $workloadTenant Objects" - -echo - -kubectl get -n $workloadTenant all - -echo namespace = $workloadTenant > $working_dir/workloadTenant_export - -## Make load test script in Jmeter master pod executable - -echo - -echo "Configuring load test settings in Master (sleeping for 30sec)" - -sleep 30 - -# Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` \ No newline at end of file diff --git a/start_test.sh b/start_test.sh deleted file mode 100755 index 834a23f..0000000 --- a/start_test.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash -#Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. -#It requires that you supply the path to the jmx file -#After execution, test script jmx file may be deleted from the pod itself but not locally. - -working_dir="`pwd`" - -#Get namesapce variable -workloadTenant=`awk '{print $NF}' "$working_dir/workloadTenant_export"` - -jmx="$1" -[ -n "$jmx" ] || read -p 'Enter path to the jmx file to run ' jmx - -if [ ! -f "$jmx" ]; -then - echo "Test script file was not found in PATH" - echo "Kindly check and input the correct file path" - exit -fi - -test_name="$(basename "$jmx")" - -echo $test_name - -#Get Master pod details - -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -kubectl cp "$jmx" -n $workloadTenant "$master_pod:/$test_name" - -## Echo Starting Jmeter load test - -kubectl exec -ti -n $workloadTenant $master_pod -- /bin/bash /load_test "$test_name" diff --git a/start_testLoop.sh b/start_testLoop.sh deleted file mode 100755 index 0cd35a6..0000000 --- a/start_testLoop.sh +++ /dev/null @@ -1,190 +0,0 @@ -#!/usr/bin/env bash -# Testing outer loop - -# Debug Settings -doBlobUpdate=0 # 0 = disable -doK8s=1 # 0 = disable -doParallelRuns=0 #0= disable - -integerCheck='^[0-9]+$' - -testSubID='33e681ce-910a-44b4-84b8-d07290144803' -testSAName='storannandale' -testContainerName='testcfg' -tempTestDir='temp/testDefs' -testMasterName='currentTests.csv' - -jmxFile='jmx/main.jmx' -jmxDestFile='/tmp/main.jmx' - -payloadScript="payload_script.sh" -payloadDestFile="/tmp/payload_script.sh" - -working_dir='k8sDefs' -# obsolete -#if [ $doK8s -ne 0 ] -#then -# ./start_jmeterPods.sh -#fi - -while true -do - blobJSON=`az storage blob list -c $testContainerName --account-name $testSAName --subscription $testSubID | jq '.[].name'` - - # Download the Test Definitions from Blob Storage - if [ $doBlobUpdate -ne 0 ] - then - for curBlobName in $blobJSON - do - cleanBlobName=`sed 's/"//g' <<< $curBlobName` - # download the blob to temp - curBlobDestFile=$tempTestDir/$cleanBlobName - echo $curBlobDestFile - az storage blob download --container-name $testContainerName --account-name $testSAName --subscription $testSubID -n $cleanBlobName -f $curBlobDestFile - - done - fi - # Read the Master Test Config - testMasterFile=$tempTestDir/$testMasterName - IFS=$'\n' - masterConfig=`cat $testMasterFile` - for curTestLine in $masterConfig - do - testParamString="" - # TODO - ignore first line - echo $curTestLine - if [[ $curTestLine == CurTest* ]] - then - echo Skipping First Line of Test List - else - IFS=',' read -ra curTestArray <<< $curTestLine - curTestName=${curTestArray[0],,} - curTestEnabled=${curTestArray[1]} - curTestURL=${curTestArray[2]} - curTestParam=${curTestArray[3]} - curTestLoadName=${curTestArray[4]} - curTestFile=$tempTestDir/$curTestLoadName - curTestFile=`echo $curTestFile | tr --delete '\r'` # Windows line endings are the devil - - if [[ $curTestEnabled != TRUE ]] - then - echo Skipping Disabled Test - else - - # Build the script to be injected - echo "Reading definition from $curTestFile" - - IFS=$'\n' - curTestDefText=`cat $curTestFile` - for curTestDefLine in $curTestDefText - do - IFS=',' read -ra testArray <<< "$curTestDefLine" - numUsers=`echo ${testArray[0]} | tr --delete '\r'` - duration=`echo ${testArray[1]} | tr --delete '\r'` - ramp=`echo ${testArray[2]} | tr --delete '\r'` - - if [[ $numUsers == NumUsers* ]] - then - echo Skipping First Line of Test Def - else - - - - echo $curTestDefLine - - # Feed integer string into jmx file and run test - if ! [[ $numUsers =~ $integerCheck && $duration =~ $integerCheck && $ramp =~ $integerCheck ]] - then - echo "Non-integer input detected. Skipping line." - else - # Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. - # It requires that you supply the path to the jmx file - ((throughputPerMin=$numUsers*60)) - echo $numUsers - echo $duration - echo $ramp - echo $throughputPerMin - - testParamString=$testParamString$numUsers,$duration,$throughputPerMin,$ramp\; - - - - fi - fi - done - # Remove the last character (trailing ;) - testParamString=${testParamString%?} - echo Test Params: $testParamString - # Create K8s & Inject script - if [ $doK8s -ne 0 ] - then - # TODO - check to see if the namespace already exists - workloadTenant=$curTestName - # DEBUG - - # Check if job is currently running - kubectl -n $workloadTenant get pods - podStatus=`kubectl -n $workloadTenant get pods` - if [[ $podStatus == *Running* || $podStatus == *Image* ]] - then - echo Job is still running in $workloadTenant - else - echo No Job in $workloadTenant - echo "Namspace $workloadTenant deleting" - kubectl delete namespace $workloadTenant - - echo "Namspace $workloadTenant creating" - kubectl create namespace $workloadTenant - - echo Cloning Secret # TODO - Talk to Al if this is reasonable. Note assumption that there is a secret to clone from. Al says I can do this with permissions across namespaces - kubectl get secret azblob -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - - - # Create Master pod details - echo "Creating Jmeter Master" - kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - - kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - - - #TODO - make this check on the status of master instead of arbitrary... - echo Waiting for master pod to be ready - sleep 60 - master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - - echo Copying payload to master pod - # Copy the jmx template to the pod - kubectl cp "$jmxFile" -n $workloadTenant "$master_pod:/$jmxDestFile" - - # Copy the script to the pod - kubectl cp "$payloadScript" -n $workloadTenant "$master_pod:/$payloadDestFile" - - - kubectl exec -ti -n $workloadTenant $master_pod -- chmod 755 $payloadDestFile - - - # TODO - Talk to Al about this - should probably be done in the image. Al agrees - # Moved to the image - #kubectl exec -i -n $workloadTenant $master_pod -- apt-get update - #kubectl exec -i -n $workloadTenant $master_pod -- apt install curl -y --fix-missing - # Not needed - using Azure Files to upload rather than blob kubectl exec -i -n $workloadTenant $master_pod -- curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash - - # run the script - # TODO - Talk to Al about this - it gets messy in the output! - curDate=`date '+%Y%m%d_%H%M_%S'` - curLogName="/tmp/payloadlog_"$workloadTenant"_"$curDate".txt" - if [ $doParallelRuns -ne 0 ] - then - kubectl exec -n $workloadTenant $master_pod -- nohup $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" >> $curLogName & - else - kubectl exec -n $workloadTenant $master_pod -- $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" - fi - fi - fi - fi - fi - - - done - echo Outer loop complete. Sleeping before restart - sleep 60 -done \ No newline at end of file diff --git a/temp/testDefs/1minutepause.txt b/temp/testDefs/1minutepause.txt deleted file mode 100644 index a1f904e..0000000 --- a/temp/testDefs/1minutepause.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -100,60,0 \ No newline at end of file diff --git a/temp/testDefs/5minutepause.txt b/temp/testDefs/5minutepause.txt deleted file mode 100644 index 5cb0faa..0000000 --- a/temp/testDefs/5minutepause.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -100,300,0 \ No newline at end of file diff --git a/temp/testDefs/annandaleignite.txt b/temp/testDefs/annandaleignite.txt deleted file mode 100644 index c0aa144..0000000 --- a/temp/testDefs/annandaleignite.txt +++ /dev/null @@ -1,5 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -2,180,0 -300,180,180 -300,600,0 -1,900,0 diff --git a/temp/testDefs/annandaleignitelong.txt b/temp/testDefs/annandaleignitelong.txt deleted file mode 100644 index 6fc128e..0000000 --- a/temp/testDefs/annandaleignitelong.txt +++ /dev/null @@ -1,3 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -300,600,0 - diff --git a/temp/testDefs/awsTest.txt b/temp/testDefs/awsTest.txt deleted file mode 100644 index da2ebeb..0000000 --- a/temp/testDefs/awsTest.txt +++ /dev/null @@ -1,12 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 -120,180,0 -60,185,0 \ No newline at end of file diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv deleted file mode 100644 index a6a49f8..0000000 --- a/temp/testDefs/currentTests.csv +++ /dev/null @@ -1,11 +0,0 @@ -CurTest, Enabled, CurEndPoint,Path, CurTestName -bing,FALSE,www.bing.com,,testlimit.txt -azcatsynthappnocrash,FALSE,52.167.17.34,?marco,jediprod.txt -azcatsynthappbaseline,FALSE,52.138.116.190,?marco,jediprod.txt -helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt -azcatsynthappnocrashminimal,TRUE,52.167.17.34,?marco,minimaltest.txt -azcatsynthappbaselineminimal,TRUE,52.138.116.190,?marco,minimaltest.txt - - - - diff --git a/temp/testDefs/eastus1-dynamo.txt b/temp/testDefs/eastus1-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus1-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus1-peek.txt b/temp/testDefs/eastus1-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/eastus1-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/eastus1-rds.txt b/temp/testDefs/eastus1-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus1-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus1-s3.txt b/temp/testDefs/eastus1-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus1-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-dynamo.txt b/temp/testDefs/eastus2-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus2-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-peek.txt b/temp/testDefs/eastus2-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/eastus2-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-rds.txt b/temp/testDefs/eastus2-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus2-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/eastus2-s3.txt b/temp/testDefs/eastus2-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/eastus2-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/flatLoad.txt b/temp/testDefs/flatLoad.txt deleted file mode 100644 index 057fa03..0000000 --- a/temp/testDefs/flatLoad.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -1,86400,0 \ No newline at end of file diff --git a/temp/testDefs/jedi_short.txt b/temp/testDefs/jedi_short.txt deleted file mode 100644 index 281f64e..0000000 --- a/temp/testDefs/jedi_short.txt +++ /dev/null @@ -1,8 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -150,60,60 -1,45,0 -450,75,75 -1,45,0 -50,60,0 - - diff --git a/temp/testDefs/jedilikeaws.txt b/temp/testDefs/jedilikeaws.txt deleted file mode 100644 index 01b6dfb..0000000 --- a/temp/testDefs/jedilikeaws.txt +++ /dev/null @@ -1,6 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -150,120,120 -150,180,0 -450,120,120 -450,300,0 -60,360,0 diff --git a/temp/testDefs/jediprod.txt b/temp/testDefs/jediprod.txt deleted file mode 100644 index 63dfc7c..0000000 --- a/temp/testDefs/jediprod.txt +++ /dev/null @@ -1,10 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -150,60,60 -150,300,0 -1,90,0 -450,75,75 -450,285,0 -1,90,0 -60,360,0 - - diff --git a/temp/testDefs/minimaltest.txt b/temp/testDefs/minimaltest.txt deleted file mode 100644 index 6500aec..0000000 --- a/temp/testDefs/minimaltest.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -600,15,15 \ No newline at end of file diff --git a/temp/testDefs/ramptest.txt b/temp/testDefs/ramptest.txt deleted file mode 100644 index 0146cd3..0000000 --- a/temp/testDefs/ramptest.txt +++ /dev/null @@ -1,6 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -100,120,120 -100,180,180 -200,120,120 -300,240,240 - diff --git a/temp/testDefs/singlepoke.txt b/temp/testDefs/singlepoke.txt deleted file mode 100644 index e8f23b4..0000000 --- a/temp/testDefs/singlepoke.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/steady.txt b/temp/testDefs/steady.txt deleted file mode 100644 index 61a03e8..0000000 --- a/temp/testDefs/steady.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -10,1800,1 \ No newline at end of file diff --git a/temp/testDefs/steadylow.txt b/temp/testDefs/steadylow.txt deleted file mode 100644 index 53060b1..0000000 --- a/temp/testDefs/steadylow.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -1,1800,1 \ No newline at end of file diff --git a/temp/testDefs/testlimit.txt b/temp/testDefs/testlimit.txt index 686b48f..736a35d 100644 --- a/temp/testDefs/testlimit.txt +++ b/temp/testDefs/testlimit.txt @@ -1,42 +1,3 @@ NumUsers, DurationSeconds, RampSeconds 100,120,0 -100,120,0 -200,120,0 -200,120,0 -300,120,0 -300,120,0 -400,120,0 -400,120,0 -500,120,0 -500,120,0 -600,120,0 -600,120,0 -700,120,0 -700,120,0 -800,120,0 -800,120,0 -900,120,0 -900,120,0 -1000,120,0 -1000,120,0 -1100,120,0 -1100,120,0 -1200,120,0 -1200,120,0 -1300,120,0 -1300,120,0 -1400,120,0 -1400,120,0 -1500,120,0 -1500,120,0 -1600,120,0 -1600,120,0 -1700,120,0 -1700,120,0 -1800,120,0 -1800,120,0 -1900,120,0 -1900,120,0 -2000,120,0 -2000,120,0 - +600,300,300 \ No newline at end of file diff --git a/temp/testDefs/testlimitlow.txt b/temp/testDefs/testlimitlow.txt deleted file mode 100644 index d5d85e9..0000000 --- a/temp/testDefs/testlimitlow.txt +++ /dev/null @@ -1,7 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -10,60,1 -50,60,1 -100,60,1 -200,60,1 -400,60,1 -800,60,1 \ No newline at end of file diff --git a/temp/testDefs/westus1-dynamo.txt b/temp/testDefs/westus1-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus1-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus1-peek.txt b/temp/testDefs/westus1-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/westus1-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/westus1-rds.txt b/temp/testDefs/westus1-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus1-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus1-s3.txt b/temp/testDefs/westus1-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus1-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-dynamo.txt b/temp/testDefs/westus2-dynamo.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus2-dynamo.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-peek.txt b/temp/testDefs/westus2-peek.txt deleted file mode 100644 index 50272af..0000000 --- a/temp/testDefs/westus2-peek.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -500,300,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-rds.txt b/temp/testDefs/westus2-rds.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus2-rds.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/temp/testDefs/westus2-s3.txt b/temp/testDefs/westus2-s3.txt deleted file mode 100644 index 459daf0..0000000 --- a/temp/testDefs/westus2-s3.txt +++ /dev/null @@ -1,2 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -0,0,0 \ No newline at end of file diff --git a/test_manual.sh b/test_manual.sh deleted file mode 100755 index 048090c..0000000 --- a/test_manual.sh +++ /dev/null @@ -1,31 +0,0 @@ -workloadTenant="manual" - -jmxFile='jmx/main.jmx' -jmxDestFile='/tmp/main.jmx' - -payloadScript="payload_script.sh" -payloadDestFile="/tmp/payload_script.sh" - -working_dir='k8sDefs' -echo "Namspace $workloadTenant deleting" -kubectl delete namespace $workloadTenant - -echo "Namspace $workloadTenant creating" -kubectl create namespace $workloadTenant -kubectl get secret jmeterlogsecret -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - -echo "Creating Jmeter Master" -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml - -kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml - -#TODO - make this check on the status of master instead of arbitrary... -echo Waiting for master pod to be ready -sleep 60 -master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` - -echo Copying payload to master pod -# Copy the jmx template to the pod -kubectl cp "$jmxFile" -n $workloadTenant "$master_pod:/$jmxDestFile" - -# Copy the script to the pod -kubectl cp "$payloadScript" -n $workloadTenant "$master_pod:/$payloadDestFile" diff --git a/test_runs/testRunConfig.txt b/test_runs/testRunConfig.txt deleted file mode 100644 index 635053c..0000000 --- a/test_runs/testRunConfig.txt +++ /dev/null @@ -1,3 +0,0 @@ -NumUsers, DurationSeconds, RampSeconds -60,300,0 -500,300,0 diff --git a/testrun.sh b/testrun.sh deleted file mode 100755 index 5f123db..0000000 --- a/testrun.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -# Create multiple Jmeter namespaces on an existing kuberntes cluster -# Started On January 23, 2018 - -working_dir=`pwd` -integerCheck='^[0-9]+$' -jmxFile='jmx/baseline.jmx' -testRunConfig='test_runs/testRunConfig.txt' -jmxRunFile='temp/currentJmxRun.jmx' -jmxTextFile='temp/currentJmxText.txt' -index=0 - -sed -n -e 'H;${x;s/\n/;;/g;s/^,//;p;}' $testRunConfig > $jmxTextFile -IFS=';;' read -ra configArray <<< $(cat $jmxTextFile) - -# Loop through each config and run JMeter set to that config -for newConfig in $configArray -do - # Remove whitespaces from string then convert to array - testRun="$(echo -e "${newConfig}" | tr -d '[:space:]')" - echo $testRun - IFS=',' read -ra testArray <<< "$testRun" - - # Feed integer string into jmx file and run test - if ! [[ ${testArray[0]} =~ $integerCheck && ${testArray[1]} =~ $integerCheck && ${testArray[2]} =~ $integerCheck ]] - then - echo "Non-integer input detected. Skipping line." - else - # Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. - # It requires that you supply the path to the jmx file - - echo "Loop output" - echo ${testArray[0]} - echo ${testArray[1]} - echo ${testArray[2]} - - fi -done - -# Delete jmeter test namespace when complete diff --git a/workloadTenant_export b/workloadTenant_export deleted file mode 100644 index c2d14d8..0000000 --- a/workloadTenant_export +++ /dev/null @@ -1 +0,0 @@ -namespace = aksjmeter From 26047e142c7fea06777d556b22ae2a5b60368927 Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 21:11:43 +0000 Subject: [PATCH 06/24] Cleaning --- temp/testDefs/currentTests.csv | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 temp/testDefs/currentTests.csv diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv deleted file mode 100644 index 8f4bf9d..0000000 --- a/temp/testDefs/currentTests.csv +++ /dev/null @@ -1,12 +0,0 @@ -CurTest, Enabled, CurEndPoint,Path, CurTestName -bing,FALSE,www.bing.com,,testlimit.txt -azcatsynthappnocrash,FALSE,52.167.17.34,?marco,jediprod.txt -azcatsynthappbaseline,TRUE,52.138.116.190,?marco,jediprod.txt -azcatsynthappbaselinesteady,TRUE,52.138.116.190,?marco,testport.txt -helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt -azcatsynthappnocrashminimal,FALSE,52.167.17.34,?marco,minimaltest.txt -azcatsynthappbaselineminimal,FALSE,52.138.116.190,?marco,minimaltest.txt - - - - From b1661bdaeefbefc296662a6e6513487e6378313d Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 21:12:27 +0000 Subject: [PATCH 07/24] Cleaning --- LaaS | 1 + deployLG.sh | 7 ++ do_a_loop.sh | 180 +++++++++++++++++++++++++++++++++ k8sDefs/kubeorchestrator.yaml | 12 +++ temp/testDefs/currentTests.csv | 11 ++ temp/testDefs/jediprod.txt | 10 ++ 6 files changed, 221 insertions(+) create mode 160000 LaaS create mode 100755 deployLG.sh create mode 100755 do_a_loop.sh create mode 100644 k8sDefs/kubeorchestrator.yaml create mode 100644 temp/testDefs/currentTests.csv create mode 100644 temp/testDefs/jediprod.txt diff --git a/LaaS b/LaaS new file mode 160000 index 0000000..794dbb3 --- /dev/null +++ b/LaaS @@ -0,0 +1 @@ +Subproject commit 794dbb36d32ee7891bb4297d206902bc03e5aafd diff --git a/deployLG.sh b/deployLG.sh new file mode 100755 index 0000000..c8b20cc --- /dev/null +++ b/deployLG.sh @@ -0,0 +1,7 @@ +myNamespace='orchestrator' +deployYAML='k8sDefs/kubeorchestrator.yaml' + +kubectl delete namespace $myNamespace +kubectl create namespace $myNamespace +kubectl create -n $myNamespace -f $deployYAML + diff --git a/do_a_loop.sh b/do_a_loop.sh new file mode 100755 index 0000000..0ef050c --- /dev/null +++ b/do_a_loop.sh @@ -0,0 +1,180 @@ +#!/usr/bin/env bash +# Testing outer loop + +# Debug Settings +doBlobUpdate=0 # 0 = disable +doK8s=1 # 0 = disable +doParallelRuns=0 #0= disable + +integerCheck='^[0-9]+$' + +testSubID='33e681ce-910a-44b4-84b8-d07290144803' +testSAName='storannandale' +testContainerName='testcfg' +tempTestDir='temp/testDefs' +testMasterName='currentTests.csv' + +jmxFile='jmx/main.jmx' +jmxDestFile='/tmp/main.jmx' + +payloadScript="payload_script.sh" +payloadDestFile="/tmp/payload_script.sh" + +working_dir='k8sDefs' + +blobJSON=`az storage blob list -c $testContainerName --account-name $testSAName --subscription $testSubID | jq '.[].name'` + +# Download the Test Definitions from Blob Storage +if [ $doBlobUpdate -ne 0 ] +then + for curBlobName in $blobJSON + do + cleanBlobName=`sed 's/"//g' <<< $curBlobName` + # download the blob to temp + curBlobDestFile=$tempTestDir/$cleanBlobName + echo $curBlobDestFile + az storage blob download --container-name $testContainerName --account-name $testSAName --subscription $testSubID -n $cleanBlobName -f $curBlobDestFile + + done +fi +# Read the Master Test Config +testMasterFile=$tempTestDir/$testMasterName +IFS=$'\n' +masterConfig=`cat $testMasterFile` +for curTestLine in $masterConfig +do + testParamString="" + # TODO - ignore first line + echo $curTestLine + if [[ $curTestLine == CurTest* ]] + then + echo Skipping First Line of Test List + else + IFS=',' read -ra curTestArray <<< $curTestLine + curTestName=${curTestArray[0],,} + curTestEnabled=${curTestArray[1]} + curTestURL=${curTestArray[2]} + curTestParam=${curTestArray[3]} + curTestLoadName=${curTestArray[4]} + curTestFile=$tempTestDir/$curTestLoadName + curTestFile=`echo $curTestFile | tr --delete '\r'` # Windows line endings are the devil + + if [[ $curTestEnabled != TRUE ]] + then + echo Skipping Disabled Test + else + + # Build the script to be injected + echo "Reading definition from $curTestFile" + + IFS=$'\n' + curTestDefText=`cat $curTestFile` + for curTestDefLine in $curTestDefText + do + IFS=',' read -ra testArray <<< "$curTestDefLine" + numUsers=`echo ${testArray[0]} | tr --delete '\r'` + duration=`echo ${testArray[1]} | tr --delete '\r'` + ramp=`echo ${testArray[2]} | tr --delete '\r'` + + if [[ $numUsers == NumUsers* ]] + then + echo Skipping First Line of Test Def + else + + + + echo $curTestDefLine + + # Feed integer string into jmx file and run test + if ! [[ $numUsers =~ $integerCheck && $duration =~ $integerCheck && $ramp =~ $integerCheck ]] + then + echo "Non-integer input detected. Skipping line." + else + # Script created to launch Jmeter tests directly from the current terminal without accessing the jmeter master pod. + # It requires that you supply the path to the jmx file + ((throughputPerMin=$numUsers*60)) + echo $numUsers + echo $duration + echo $ramp + echo $throughputPerMin + + testParamString=$testParamString$numUsers,$duration,$throughputPerMin,$ramp\; + + + + fi + fi + done + # Remove the last character (trailing ;) + testParamString=${testParamString%?} + echo Test Params: $testParamString + # Create K8s & Inject script + if [ $doK8s -ne 0 ] + then + # TODO - check to see if the namespace already exists + workloadTenant=$curTestName + # DEBUG + + # Check if job is currently running + kubectl -n $workloadTenant get pods + podStatus=`kubectl -n $workloadTenant get pods` + if [[ $podStatus == *Running* || $podStatus == *Image* ]] + then + echo Job is still running in $workloadTenant + else + echo No Job in $workloadTenant + echo "Namspace $workloadTenant deleting" + kubectl delete namespace $workloadTenant + + echo "Namspace $workloadTenant creating" + kubectl create namespace $workloadTenant + + echo Cloning Secret # TODO - Talk to Al if this is reasonable. Note assumption that there is a secret to clone from. Al says I can do this with permissions across namespaces + kubectl get secret azblob -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - + + # Create Master pod details + echo "Creating Jmeter Master" + kubectl create -n $workloadTenant -f $working_dir/jmeter_master_configmap.yaml + + kubectl create -n $workloadTenant -f $working_dir/jmeter_master_deploy.yaml + + + #TODO - make this check on the status of master instead of arbitrary... + echo Waiting for master pod to be ready + sleep 60 + master_pod=`kubectl get po -n $workloadTenant | grep jmeter-master | awk '{print $1}'` + + echo Copying payload to master pod + # Copy the jmx template to the pod + kubectl cp "$jmxFile" -n $workloadTenant "$master_pod:/$jmxDestFile" + + # Copy the script to the pod + kubectl cp "$payloadScript" -n $workloadTenant "$master_pod:/$payloadDestFile" + + + kubectl exec -ti -n $workloadTenant $master_pod -- chmod 755 $payloadDestFile + + + # TODO - Talk to Al about this - should probably be done in the image. Al agrees + # Moved to the image + #kubectl exec -i -n $workloadTenant $master_pod -- apt-get update + #kubectl exec -i -n $workloadTenant $master_pod -- apt install curl -y --fix-missing + # Not needed - using Azure Files to upload rather than blob kubectl exec -i -n $workloadTenant $master_pod -- curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash + + # run the script + # TODO - Talk to Al about this - it gets messy in the output! + curDate=`date '+%Y%m%d_%H%M_%S'` + curLogName="/tmp/payloadlog_"$workloadTenant"_"$curDate".txt" + if [ $doParallelRuns -ne 0 ] + then + kubectl exec -n $workloadTenant $master_pod -- nohup $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" >> $curLogName & + else + kubectl exec -n $workloadTenant $master_pod -- $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" + fi + fi + fi + fi + fi + + +done \ No newline at end of file diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml new file mode 100644 index 0000000..23560f9 --- /dev/null +++ b/k8sDefs/kubeorchestrator.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 # for versions before 1.9.0 use apps/v1beta2 +kind: Pod +metadata: + name: kubeorchestrator + +spec: + containers: + - name: orchestrator + image: daweins/korch:latest + imagePullPolicy: IfNotPresent + command: [ "/bin/bash", "-c", "--" ] + args: [ "while [ ! -f /tmp/isdone ]; git clone https://github.com/daweins/LaaS.git; git pull; do sleep 60; done;" ] \ No newline at end of file diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv new file mode 100644 index 0000000..cfce527 --- /dev/null +++ b/temp/testDefs/currentTests.csv @@ -0,0 +1,11 @@ +CurTest, Enabled, CurEndPoint,Path, CurTestName +bing,TRUE,www.bing.com,,testlimit.txt +azcatsynthappnocrash,FALSE,52.167.17.34,?marco,jediprod.txt +azcatsynthappbaseline,FALSE,52.138.116.190,?marco,jediprod.txt +helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt +azcatsynthappnocrashminimal,FALSE,52.167.17.34,?marco,minimaltest.txt +azcatsynthappbaselineminimal,FALSE,52.138.116.190,?marco,minimaltest.txt + + + + diff --git a/temp/testDefs/jediprod.txt b/temp/testDefs/jediprod.txt new file mode 100644 index 0000000..63dfc7c --- /dev/null +++ b/temp/testDefs/jediprod.txt @@ -0,0 +1,10 @@ +NumUsers, DurationSeconds, RampSeconds +150,60,60 +150,300,0 +1,90,0 +450,75,75 +450,285,0 +1,90,0 +60,360,0 + + From c57834717851703ed52e2e893e20f045def48de2 Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 21:24:20 +0000 Subject: [PATCH 08/24] Setting to parallel --- k8sDefs/kubeorchestrator.yaml | 2 +- start_testLoop.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml index 23560f9..7e74686 100644 --- a/k8sDefs/kubeorchestrator.yaml +++ b/k8sDefs/kubeorchestrator.yaml @@ -9,4 +9,4 @@ spec: image: daweins/korch:latest imagePullPolicy: IfNotPresent command: [ "/bin/bash", "-c", "--" ] - args: [ "while [ ! -f /tmp/isdone ]; git clone https://github.com/daweins/LaaS.git; git pull; do sleep 60; done;" ] \ No newline at end of file + args: [ "while [ ! -f /tmp/isdone ]; git clone https://github.com/daweins/LaaS.git; cd LaaS; chmod 755 ./do_a_loop.sh; ./do_a_loop.sh; do sleep 60; done;" ] \ No newline at end of file diff --git a/start_testLoop.sh b/start_testLoop.sh index 6ff5bc5..1d0fdc9 100755 --- a/start_testLoop.sh +++ b/start_testLoop.sh @@ -4,7 +4,7 @@ # Debug Settings doBlobUpdate=0 # 0 = disable doK8s=1 # 0 = disable -doParallelRuns=0 #0= disable +doParallelRuns=1 #0= disable integerCheck='^[0-9]+$' From f2f26da7a30503f07a92c7e8d6115bdf57746789 Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 21:25:37 +0000 Subject: [PATCH 09/24] Temp --- temp/testDefs/currentTests.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv index cfce527..38957c5 100644 --- a/temp/testDefs/currentTests.csv +++ b/temp/testDefs/currentTests.csv @@ -1,7 +1,7 @@ CurTest, Enabled, CurEndPoint,Path, CurTestName -bing,TRUE,www.bing.com,,testlimit.txt +bing,TRUE,www.bing.com,,shortest.txt azcatsynthappnocrash,FALSE,52.167.17.34,?marco,jediprod.txt -azcatsynthappbaseline,FALSE,52.138.116.190,?marco,jediprod.txt +azcatsynthappbaseline,TRUE,52.138.116.190,?marco,jediprod.txt helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt azcatsynthappnocrashminimal,FALSE,52.167.17.34,?marco,minimaltest.txt azcatsynthappbaselineminimal,FALSE,52.138.116.190,?marco,minimaltest.txt From 9f7e1bcdbe42b95b9b712e7de0e556aa9ae0d73d Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 23:45:55 +0000 Subject: [PATCH 10/24] Added verbosity --- do_a_loop.sh | 6 ++++-- temp/testDefs/shortest.txt | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 temp/testDefs/shortest.txt diff --git a/do_a_loop.sh b/do_a_loop.sh index 0ef050c..e4fb0ab 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -167,10 +167,12 @@ do curLogName="/tmp/payloadlog_"$workloadTenant"_"$curDate".txt" if [ $doParallelRuns -ne 0 ] then - kubectl exec -n $workloadTenant $master_pod -- nohup $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" >> $curLogName & + cmdToExecute=`kubectl exec -n $workloadTenant $master_pod -- nohup $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" >> $curLogName &` else - kubectl exec -n $workloadTenant $master_pod -- $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" + cmdToExecute=`kubectl exec -n $workloadTenant $master_pod -- $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString"` fi + echo $cmdToExecute + eval $cmdToExecute fi fi fi diff --git a/temp/testDefs/shortest.txt b/temp/testDefs/shortest.txt new file mode 100644 index 0000000..e497957 --- /dev/null +++ b/temp/testDefs/shortest.txt @@ -0,0 +1,2 @@ +NumUsers, DurationSeconds, RampSeconds +100,120,0 \ No newline at end of file From d5cbf78cff4eebe2beb7cbca36e4d3187d9594bc Mon Sep 17 00:00:00 2001 From: daweins Date: Mon, 3 Feb 2020 23:56:34 +0000 Subject: [PATCH 11/24] flag --- LaaS | 1 - do_a_loop.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 160000 LaaS diff --git a/LaaS b/LaaS deleted file mode 160000 index 794dbb3..0000000 --- a/LaaS +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 794dbb36d32ee7891bb4297d206902bc03e5aafd diff --git a/do_a_loop.sh b/do_a_loop.sh index e4fb0ab..9fd1a0a 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -4,7 +4,7 @@ # Debug Settings doBlobUpdate=0 # 0 = disable doK8s=1 # 0 = disable -doParallelRuns=0 #0= disable +doParallelRuns=1 #0= disable integerCheck='^[0-9]+$' From 8cd0e51d548d78e92a468292d4e64a4cdbfeef93 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 00:02:03 +0000 Subject: [PATCH 12/24] Added sleep --- do_a_loop.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/do_a_loop.sh b/do_a_loop.sh index 9fd1a0a..7514ba0 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -179,4 +179,6 @@ do fi -done \ No newline at end of file +done +echo "Complete - sleeping for 30 seconds" +sleep 30 \ No newline at end of file From bd3d7b6521af36f1010ef0931911b2638513c9d3 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 00:10:25 +0000 Subject: [PATCH 13/24] Fixing template --- k8sDefs/kubeorchestrator.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml index 7e74686..6bce197 100644 --- a/k8sDefs/kubeorchestrator.yaml +++ b/k8sDefs/kubeorchestrator.yaml @@ -9,4 +9,4 @@ spec: image: daweins/korch:latest imagePullPolicy: IfNotPresent command: [ "/bin/bash", "-c", "--" ] - args: [ "while [ ! -f /tmp/isdone ]; git clone https://github.com/daweins/LaaS.git; cd LaaS; chmod 755 ./do_a_loop.sh; ./do_a_loop.sh; do sleep 60; done;" ] \ No newline at end of file + args: [ "while [ ! -f /tmp/isdone ]; do git clone https://github.com/daweins/LaaS.git; cd LaaS; chmod 755 ./do_a_loop.sh; ./do_a_loop.sh; sleep 60; done;" ] \ No newline at end of file From 2e496200ccbbe2a7d095fd1e1b404b83796e6b52 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 00:41:11 +0000 Subject: [PATCH 14/24] Permissions --- k8sDefs/kubeorchestrator.yaml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml index 6bce197..725e0d9 100644 --- a/k8sDefs/kubeorchestrator.yaml +++ b/k8sDefs/kubeorchestrator.yaml @@ -1,12 +1,32 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: overseer + namespace: default + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: overseer +subjects: +- kind: ServiceAccount + name: overseer + namespace: default +roleRef: + kind: ClusterRole + name: cluster-admin + apiGroup: rbac.authorization.k8s.io + apiVersion: v1 # for versions before 1.9.0 use apps/v1beta2 kind: Pod metadata: name: kubeorchestrator spec: + serviceAccountName: overseer containers: - name: orchestrator - image: daweins/korch:latest + image: daweins/korch:v1 imagePullPolicy: IfNotPresent command: [ "/bin/bash", "-c", "--" ] args: [ "while [ ! -f /tmp/isdone ]; do git clone https://github.com/daweins/LaaS.git; cd LaaS; chmod 755 ./do_a_loop.sh; ./do_a_loop.sh; sleep 60; done;" ] \ No newline at end of file From cdfdce099a58a1a891a81d011ce473a370d42757 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 00:43:25 +0000 Subject: [PATCH 15/24] Permissions --- k8sDefs/kubeorchestrator.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml index 725e0d9..2b3f840 100644 --- a/k8sDefs/kubeorchestrator.yaml +++ b/k8sDefs/kubeorchestrator.yaml @@ -21,7 +21,6 @@ apiVersion: v1 # for versions before 1.9.0 use apps/v1beta2 kind: Pod metadata: name: kubeorchestrator - spec: serviceAccountName: overseer containers: From 26db3e9dd863df9901fdc6fe14320ce79f3c4701 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 00:45:19 +0000 Subject: [PATCH 16/24] Perms --- deployLG.sh | 3 ++- k8sDefs/kubeorchestratoraccount.yaml | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 k8sDefs/kubeorchestratoraccount.yaml diff --git a/deployLG.sh b/deployLG.sh index c8b20cc..2373450 100755 --- a/deployLG.sh +++ b/deployLG.sh @@ -1,7 +1,8 @@ myNamespace='orchestrator' +accountYAML='k8sDefs/kubeorchestratoraccount.yaml' deployYAML='k8sDefs/kubeorchestrator.yaml' kubectl delete namespace $myNamespace kubectl create namespace $myNamespace +kubectl create -n $myNamespace -f $accountYAML kubectl create -n $myNamespace -f $deployYAML - diff --git a/k8sDefs/kubeorchestratoraccount.yaml b/k8sDefs/kubeorchestratoraccount.yaml new file mode 100644 index 0000000..0f37d56 --- /dev/null +++ b/k8sDefs/kubeorchestratoraccount.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: overseer + namespace: default + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: overseer +subjects: +- kind: ServiceAccount + name: overseer + namespace: default +roleRef: + kind: ClusterRole + name: cluster-admin + apiGroup: rbac.authorization.k8s.io \ No newline at end of file From e15a1ac7ed6b2b41ad6add9d54919f4e996fbfdf Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 00:56:14 +0000 Subject: [PATCH 17/24] permissions --- deployLG.sh | 1 + do_a_loop.sh | 4 ++-- k8sDefs/kubeorchestrator.yaml | 20 -------------------- k8sDefs/kubeorchestratoraccount.yaml | 11 +++-------- 4 files changed, 6 insertions(+), 30 deletions(-) diff --git a/deployLG.sh b/deployLG.sh index 2373450..e57220d 100755 --- a/deployLG.sh +++ b/deployLG.sh @@ -4,5 +4,6 @@ deployYAML='k8sDefs/kubeorchestrator.yaml' kubectl delete namespace $myNamespace kubectl create namespace $myNamespace +kubectl delete clusterrolebinding overseer kubectl create -n $myNamespace -f $accountYAML kubectl create -n $myNamespace -f $deployYAML diff --git a/do_a_loop.sh b/do_a_loop.sh index 7514ba0..062cc0b 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -22,11 +22,11 @@ payloadDestFile="/tmp/payload_script.sh" working_dir='k8sDefs' -blobJSON=`az storage blob list -c $testContainerName --account-name $testSAName --subscription $testSubID | jq '.[].name'` # Download the Test Definitions from Blob Storage if [ $doBlobUpdate -ne 0 ] then + blobJSON=`az storage blob list -c $testContainerName --account-name $testSAName --subscription $testSubID | jq '.[].name'` for curBlobName in $blobJSON do cleanBlobName=`sed 's/"//g' <<< $curBlobName` @@ -130,7 +130,7 @@ do kubectl create namespace $workloadTenant echo Cloning Secret # TODO - Talk to Al if this is reasonable. Note assumption that there is a secret to clone from. Al says I can do this with permissions across namespaces - kubectl get secret azblob -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - + kubectl get secret azblob -n default -o yaml | sed s/"namespace: default"/"namespace: $workloadTenant"/ | kubectl apply -n $workloadTenant -f - # Create Master pod details echo "Creating Jmeter Master" diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml index 2b3f840..9073aa1 100644 --- a/k8sDefs/kubeorchestrator.yaml +++ b/k8sDefs/kubeorchestrator.yaml @@ -1,28 +1,8 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: overseer - namespace: default - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: overseer -subjects: -- kind: ServiceAccount - name: overseer - namespace: default -roleRef: - kind: ClusterRole - name: cluster-admin - apiGroup: rbac.authorization.k8s.io - apiVersion: v1 # for versions before 1.9.0 use apps/v1beta2 kind: Pod metadata: name: kubeorchestrator spec: - serviceAccountName: overseer containers: - name: orchestrator image: daweins/korch:v1 diff --git a/k8sDefs/kubeorchestratoraccount.yaml b/k8sDefs/kubeorchestratoraccount.yaml index 0f37d56..072ee2e 100644 --- a/k8sDefs/kubeorchestratoraccount.yaml +++ b/k8sDefs/kubeorchestratoraccount.yaml @@ -1,17 +1,12 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: overseer - namespace: default - kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: overseer + namespace: orchestrator subjects: - kind: ServiceAccount - name: overseer - namespace: default + name: default + namespace: orchestrator roleRef: kind: ClusterRole name: cluster-admin From b44c0af2abd10d8da46b9915ec2dbf3285ca4de8 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 01:02:56 +0000 Subject: [PATCH 18/24] Exec --- do_a_loop.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/do_a_loop.sh b/do_a_loop.sh index 062cc0b..fd25e16 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -167,9 +167,9 @@ do curLogName="/tmp/payloadlog_"$workloadTenant"_"$curDate".txt" if [ $doParallelRuns -ne 0 ] then - cmdToExecute=`kubectl exec -n $workloadTenant $master_pod -- nohup $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" >> $curLogName &` + cmdToExecute=`kubectl exec -it -n $workloadTenant $master_pod -- nohup $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString" >> $curLogName &` else - cmdToExecute=`kubectl exec -n $workloadTenant $master_pod -- $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString"` + cmdToExecute=`kubectl exec -it -n $workloadTenant $master_pod -- $payloadDestFile "$curTestURL" "$curTestParam" "$testParamString"` fi echo $cmdToExecute eval $cmdToExecute From 213a5f8595b561a43d6c5686a79d1ad3b7a147cd Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 01:39:14 +0000 Subject: [PATCH 19/24] updated manual test --- temp/testDefs/currentTests.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/temp/testDefs/currentTests.csv b/temp/testDefs/currentTests.csv index 38957c5..86d45bb 100644 --- a/temp/testDefs/currentTests.csv +++ b/temp/testDefs/currentTests.csv @@ -5,6 +5,7 @@ azcatsynthappbaseline,TRUE,52.138.116.190,?marco,jediprod.txt helloworld,FALSE,azcathelloworld.azurewebsites.net,bob,jediprod.txt azcatsynthappnocrashminimal,FALSE,52.167.17.34,?marco,minimaltest.txt azcatsynthappbaselineminimal,FALSE,52.138.116.190,?marco,minimaltest.txt +cnn,TRUE,www.cnn.com,,testlimit.txt From 04710d23e0f72658a8dd07d6402315ea808e53a0 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 13:51:57 +0000 Subject: [PATCH 20/24] Re-enabling blob test control --- do_a_loop.sh | 28 +++++++++++++++------------- k8sDefs/kubeorchestrator.yaml | 10 +++++++++- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/do_a_loop.sh b/do_a_loop.sh index fd25e16..e1091df 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -2,7 +2,7 @@ # Testing outer loop # Debug Settings -doBlobUpdate=0 # 0 = disable +doBlobUpdate=1 # 0 = disable doK8s=1 # 0 = disable doParallelRuns=1 #0= disable @@ -24,18 +24,20 @@ working_dir='k8sDefs' # Download the Test Definitions from Blob Storage -if [ $doBlobUpdate -ne 0 ] -then - blobJSON=`az storage blob list -c $testContainerName --account-name $testSAName --subscription $testSubID | jq '.[].name'` - for curBlobName in $blobJSON - do - cleanBlobName=`sed 's/"//g' <<< $curBlobName` - # download the blob to temp - curBlobDestFile=$tempTestDir/$cleanBlobName - echo $curBlobDestFile - az storage blob download --container-name $testContainerName --account-name $testSAName --subscription $testSubID -n $cleanBlobName -f $curBlobDestFile - - done +if [ $doBlobUpdate -ne 0] +then + blobToken=`cat /etc/azblob/azblobsas` + az storage blob download-batch --account-name $testSAName -s $tempTestDir -s $testContainerName --sas-token $blobToken + #blobJSON=`az storage blob list -c $testContainerName --account-name $testSAName --subscription $testSubID | jq '.[].name'` + #for curBlobName in $blobJSON + #do + # cleanBlobName=`sed 's/"//g' <<< $curBlobName` + # # download the blob to temp + # curBlobDestFile=$tempTestDir/$cleanBlobName + # echo $curBlobDestFile + # az storage blob download --container-name $testContainerName --account-name $testSAName --subscription $testSubID -n $cleanBlobName -f $curBlobDestFile + # + # done fi # Read the Master Test Config testMasterFile=$tempTestDir/$testMasterName diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml index 9073aa1..289e032 100644 --- a/k8sDefs/kubeorchestrator.yaml +++ b/k8sDefs/kubeorchestrator.yaml @@ -8,4 +8,12 @@ spec: image: daweins/korch:v1 imagePullPolicy: IfNotPresent command: [ "/bin/bash", "-c", "--" ] - args: [ "while [ ! -f /tmp/isdone ]; do git clone https://github.com/daweins/LaaS.git; cd LaaS; chmod 755 ./do_a_loop.sh; ./do_a_loop.sh; sleep 60; done;" ] \ No newline at end of file + args: [ "while [ ! -f /tmp/isdone ]; do git clone https://github.com/daweins/LaaS.git; cd LaaS; chmod 755 ./do_a_loop.sh; ./do_a_loop.sh; sleep 60; done;" ] + volumeMounts: + - name: azblob + mountPath: "/etc/azblob" + readOnly: true + volumes: + - name: azblob + secret: + secretName: azblob \ No newline at end of file From 91010a70374559844f93ff282568575b17b999e7 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 13:56:18 +0000 Subject: [PATCH 21/24] Re-enabling blob test control --- k8sDefs/kubeorchestrator.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/k8sDefs/kubeorchestrator.yaml b/k8sDefs/kubeorchestrator.yaml index 289e032..384b98d 100644 --- a/k8sDefs/kubeorchestrator.yaml +++ b/k8sDefs/kubeorchestrator.yaml @@ -10,10 +10,10 @@ spec: command: [ "/bin/bash", "-c", "--" ] args: [ "while [ ! -f /tmp/isdone ]; do git clone https://github.com/daweins/LaaS.git; cd LaaS; chmod 755 ./do_a_loop.sh; ./do_a_loop.sh; sleep 60; done;" ] volumeMounts: - - name: azblob - mountPath: "/etc/azblob" - readOnly: true - volumes: - - name: azblob - secret: - secretName: azblob \ No newline at end of file + - mountPath: "/etc/azblob" + name: azblob + readOnly: true + volumes: + - name: azblob + secret: + secretName: azblob \ No newline at end of file From a57160b780c65030034f1bcc7ba7aa0f1ef7d510 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 13:58:07 +0000 Subject: [PATCH 22/24] Re-enabling blob test control --- deployLG.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deployLG.sh b/deployLG.sh index e57220d..62fb921 100755 --- a/deployLG.sh +++ b/deployLG.sh @@ -2,6 +2,8 @@ myNamespace='orchestrator' accountYAML='k8sDefs/kubeorchestratoraccount.yaml' deployYAML='k8sDefs/kubeorchestrator.yaml' + +kubectl get secret azblob -n default -o yaml | sed s/"namespace: default"/"namespace: $myNamespace"/ | kubectl apply -n $myNamespace -f - kubectl delete namespace $myNamespace kubectl create namespace $myNamespace kubectl delete clusterrolebinding overseer From f7d9c954d5797191a801f8c060fa608a3987e9be Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 14:01:15 +0000 Subject: [PATCH 23/24] Re-enabling blob test control --- deployLG.sh | 2 +- do_a_loop.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deployLG.sh b/deployLG.sh index 62fb921..e5195f1 100755 --- a/deployLG.sh +++ b/deployLG.sh @@ -3,9 +3,9 @@ accountYAML='k8sDefs/kubeorchestratoraccount.yaml' deployYAML='k8sDefs/kubeorchestrator.yaml' -kubectl get secret azblob -n default -o yaml | sed s/"namespace: default"/"namespace: $myNamespace"/ | kubectl apply -n $myNamespace -f - kubectl delete namespace $myNamespace kubectl create namespace $myNamespace +kubectl get secret azblob -n default -o yaml | sed s/"namespace: default"/"namespace: $myNamespace"/ | kubectl apply -n $myNamespace -f - kubectl delete clusterrolebinding overseer kubectl create -n $myNamespace -f $accountYAML kubectl create -n $myNamespace -f $deployYAML diff --git a/do_a_loop.sh b/do_a_loop.sh index e1091df..94ddf83 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -24,7 +24,7 @@ working_dir='k8sDefs' # Download the Test Definitions from Blob Storage -if [ $doBlobUpdate -ne 0] +if [ $doBlobUpdate -ne 0 ] then blobToken=`cat /etc/azblob/azblobsas` az storage blob download-batch --account-name $testSAName -s $tempTestDir -s $testContainerName --sas-token $blobToken From d4386994dca8009d571f56e3ac79b9610cadc2a1 Mon Sep 17 00:00:00 2001 From: daweins Date: Tue, 4 Feb 2020 14:02:00 +0000 Subject: [PATCH 24/24] Re-enabling blob test control --- do_a_loop.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/do_a_loop.sh b/do_a_loop.sh index 94ddf83..2d55d1f 100755 --- a/do_a_loop.sh +++ b/do_a_loop.sh @@ -27,7 +27,7 @@ working_dir='k8sDefs' if [ $doBlobUpdate -ne 0 ] then blobToken=`cat /etc/azblob/azblobsas` - az storage blob download-batch --account-name $testSAName -s $tempTestDir -s $testContainerName --sas-token $blobToken + az storage blob download-batch --account-name $testSAName -d $tempTestDir -s $testContainerName --sas-token $blobToken #blobJSON=`az storage blob list -c $testContainerName --account-name $testSAName --subscription $testSubID | jq '.[].name'` #for curBlobName in $blobJSON #do