aboutsummaryrefslogtreecommitdiffstats
path: root/performanceTests
diff options
context:
space:
mode:
Diffstat (limited to 'performanceTests')
-rw-r--r--performanceTests/Makefile7
-rw-r--r--performanceTests/README.md65
-rw-r--r--performanceTests/environment.config15
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh4
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx916
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx242
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx242
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx242
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx242
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx242
-rw-r--r--performanceTests/environment/jmeterVM/jmeter/testScenarios/simple_test_scenario.jmx (renamed from performanceTests/environment/jmeterVM/jmeter/test_scenario.jmx)6
-rw-r--r--performanceTests/environment/k8s/Makefile15
-rw-r--r--performanceTests/environment/k8s/dmaapSimulator/deployment.yaml55
-rw-r--r--performanceTests/environment/k8s/grafana/dashboards/jmeter-test-results-and-metrics.json (renamed from performanceTests/environment/k8s/grafana/dashboards/jmeter-test-results.json)1495
-rw-r--r--performanceTests/environment/k8s/grafana/dashboards/jmeter-vm-metrics.json296
-rw-r--r--performanceTests/environment/k8s/grafana/dashboards/ves-metrics.json2670
-rw-r--r--performanceTests/environment/k8s/prometheus/configmap.yaml6
17 files changed, 2754 insertions, 4006 deletions
diff --git a/performanceTests/Makefile b/performanceTests/Makefile
index 3c56f186..f3f290ee 100644
--- a/performanceTests/Makefile
+++ b/performanceTests/Makefile
@@ -5,7 +5,7 @@ PERFORMANCE_TESTS_ENV_DIRECTORY = vesPerformanceTestsEnv
RKE_KUBECONFIG_FILE_PATH = ~/.kube/config.onap
# Targets
-all: --copy-k8s-performance-tests-env --copy-jmeter-vm-env --install-k8s-performance-tests-env --install-jmeter-vm-env
+all: --copy-k8s-performance-tests-env --copy-jmeter-vm-env --install-jmeter-vm-env --install-k8s-performance-tests-env
clear: --uninstall-k8s-performance-tests-env --remove-k8s-performance-tests-env --remove-jmeter-vm-env
restart: clear all
@@ -17,7 +17,7 @@ restart: clear all
--install-k8s-performance-tests-env:
@echo "\n##### Deploy components(grafana, influxdb, prometheus, node exporter) on k8s #####"
- ssh -i $(RKE_PRIVATE_KEY) $(RKE_NODE_USER_AND_HOSTNAME) 'bash -c "export KUBECONFIG=$(RKE_KUBECONFIG_FILE_PATH) && cd $(PERFORMANCE_TESTS_ENV_DIRECTORY) && make all WORKER_IP=$(WORKER_IP)"'
+ ssh -i $(RKE_PRIVATE_KEY) $(RKE_NODE_USER_AND_HOSTNAME) 'bash -c "export KUBECONFIG=$(RKE_KUBECONFIG_FILE_PATH) && cd $(PERFORMANCE_TESTS_ENV_DIRECTORY) && make all WORKER_IP=$(WORKER_IP) DMAAP_SIMULATOR_IMAGE=$(DMAAP_SIMULATOR_IMAGE)"'
@echo "##### DONE #####"
--uninstall-k8s-performance-tests-env:
@@ -38,7 +38,7 @@ restart: clear all
--install-jmeter-vm-env:
@echo "\n##### Install collectd on VM #####"
- ssh -i $(JMETER_VM_PRIVATE_KEY) $(JMETER_VM_USER_AND_HOSTNAME) 'sed -i 's/WORKER_IP/$(WORKER_IP)/g' $(PERFORMANCE_TESTS_ENV_DIRECTORY)/jmeter/test_scenario.jmx'
+ ssh -i $(JMETER_VM_PRIVATE_KEY) $(JMETER_VM_USER_AND_HOSTNAME) 'sed -i 's/WORKER_IP/$(WORKER_IP)/g' $(PERFORMANCE_TESTS_ENV_DIRECTORY)/jmeter/testScenarios/*.jmx'
ssh -i $(JMETER_VM_PRIVATE_KEY) $(JMETER_VM_USER_AND_HOSTNAME) 'sed -i 's/WORKER_IP/$(WORKER_IP)/g' $(PERFORMANCE_TESTS_ENV_DIRECTORY)/collectd/collectd.conf'
ssh -i $(JMETER_VM_PRIVATE_KEY) $(JMETER_VM_USER_AND_HOSTNAME) 'bash -c $(PERFORMANCE_TESTS_ENV_DIRECTORY)/collectd/install_collectd.sh'
@echo "##### DONE #####"
@@ -46,6 +46,7 @@ restart: clear all
--remove-jmeter-vm-env:
@echo "\n##### Remove JMeter environment directory from VM #####"
ssh -i $(JMETER_VM_PRIVATE_KEY) $(JMETER_VM_USER_AND_HOSTNAME) 'rm -rf $(PERFORMANCE_TESTS_ENV_DIRECTORY)'
+ ssh -i $(JMETER_VM_PRIVATE_KEY) $(JMETER_VM_USER_AND_HOSTNAME) 'docker rm -f jmeter || true'
@echo "##### DONE #####"
# Execute test scenario
diff --git a/performanceTests/README.md b/performanceTests/README.md
index 775923da..ba78b14e 100644
--- a/performanceTests/README.md
+++ b/performanceTests/README.md
@@ -22,27 +22,33 @@ The architecture consists of three parts:
* Prometheus - collects metrics from VES Collector and NodeExporter
* InfluxDB - collects metrics from Collectd and tests results from JMeter
* Grafana - displays all metrics collected from Prometheus and Influxdb
+ * DMaaP Simulator - collects events from VES Collector and calculates VES processing time (Client -> VES -> DMaaP)
* User environment - local environment with VES repository downloaded, from which:
* test environment can be set up
* test can be executed
# Usage
1. Prerequisites
-- K8s environment with:
- - ONAP installed
- - VES Collector with Maven profile `buildForPerfTests` enabled (See `How to setup VES for performance tests` section)
-- VM with minimum 16GB RAM and 4 cores
+ - K8s environment with:
+ - ONAP installed
+ - VES Collector with Maven profile `buildForPerfTests` enabled (See `How to set up VES for performance tests` section)
+ - DMaaP Simulator docker image available (See `How to set up DMaaP Simulator for performance tests` section)
+ - VM with minimum 30GB RAM, 8 cores, 35000 pid_max, 70000 max_map_count (How to setup pid_max and max_map_count https://stackoverflow.com/questions/34452302/how-to-increase-maximum-number-of-jvm-threads-linux-64bit)
+ - K8s environment and VM should have synchronized clocks - set the same NTP Server on all K8s worker nodes and VM
2. Setup
-- Edit `enrivonment.config` file to match your environment:
- - RKE_NODE_USER_AND_HOSTNAME - user and hostname for ssh connection to RKE node
- - RKE_PRIVATE_KEY - private key for ssh connection to RKE node
- - WORKER_IP - IP address to any of K8s worker nodes
- - JMETER_VM_USER_AND_HOSTNAME - user and hostname for ssh connection to VM
- - JMETER_VM_PRIVATE_KEY - private key for ssh connection to VM
- - TEST_SCENARIO_FILE - name of test scenario file to be executed. Available test scenarios are located in `performanceTests/environment/jmeterVM/jmeter`
-- Install performance tests environment:
- - `make all` - copies all files to K8s and VM, installs all components and prints links to Grafana and Prometheus GUI
+ - Edit `enrivonment.config` file to match your environment:
+ - RKE_NODE_USER_AND_HOSTNAME - user and hostname for ssh connection to RKE node
+ - RKE_PRIVATE_KEY - private key for ssh connection to RKE node
+ - WORKER_IP - IP address to any of K8s worker nodes
+ - JMETER_VM_USER_AND_HOSTNAME - user and hostname for ssh connection to VM
+ - JMETER_VM_PRIVATE_KEY - private key for ssh connection to VM
+ - DMAAP_SIMULATOR_IMAGE - DMaaP Simulator image available in K8s environment (See `How to set up DMaaP Simulator for performance tests` section)
+ - TEST_SCENARIO_FILE - name of test scenario file to be executed. Available test scenarios are located in `performanceTests/environment/jmeterVM/jmeter/testScenarios`
+ - Install performance tests environment:
+ - `make all` - copies all files to K8s and VM, installs all components and prints links to Grafana and Prometheus GUI
+ - Change DMaaP address for Fault Events in VES to DMaaP Simulator
+ - See `How to change DMaaP address for Fault Events in VES`
3. Performance test execution
- `make execute-test` - triggers JMeter on VM to execute performance test scenario defined in `enrivonment.config`
@@ -55,7 +61,7 @@ The architecture consists of three parts:
- `make restart` - recreates performance tests environment from scratch by invoking `make clear` and `make all`
-# How to setup VES for performance tests
+# How to set up VES for performance tests
The VES image being tested must have the buildForPerfTests profile enabled.
1. Build VES Collector with buildForPerfTests profile enabled:
@@ -79,4 +85,33 @@ The VES image being tested must have the buildForPerfTests profile enabled.
image: <IMAGE_NAME_FROM_REPOSITORY>
imagePullPolicy: IfNotPresent
```
- - after saving changes VES Collector pod should restarted automatically \ No newline at end of file
+ - after saving changes VES Collector pod should restarted automatically
+
+
+# How to set up DMaaP Simulator for performance tests
+Currently, DMaaP Simulator is not contributed to ONAP, but its image is available on ONAP wiki.
+It's not available in any public docker repository, thus you need to make it available in your environment.
+
+How to do so:
+- Download compressed image from
+https://wiki.onap.org/display/DW/VES+Collector+Performance+Test?linked=true#VESCollectorPerformanceTest-DMaaPSimulator
+- Extract image `docker load < ves-dmaa-simulator-image.tar`
+- Now it's ready to push it to your docker repository for example JFrog Artifactory
+
+
+# How to change DMaaP address for Fault Events in VES
+Currently, we use only Fault Events in performance tests.
+
+- Open VES configuration in Consul GUI in web browser http://<Worker_IP>:30270/ui/#/dc1/kv/dcae-ves-collector/edit
+- Edit configuration `streams_publishes.ves-fault.dmaap_info.topic_url`, change IP and PORT to `ves-dmaap-simulator:3904`, as below:
+```
+ "ves-fault": {
+ "type": "message_router",
+ "dmaap_info": {
+ "topic_url": "http://ves-dmaap-simulator:3904/events/unauthenticated.SEC_FAULT_OUTPUT/"
+ }
+ }
+```
+- Click `Update` button
+- Restart VES pod
+
diff --git a/performanceTests/environment.config b/performanceTests/environment.config
index 6239d963..cee09491 100644
--- a/performanceTests/environment.config
+++ b/performanceTests/environment.config
@@ -1,11 +1,14 @@
# K8s environment configuration
-RKE_NODE_USER_AND_HOSTNAME = <RKE_USER>@<RKE_IP> # for example ubuntu@10.183.36.205
-RKE_PRIVATE_KEY = <PEM_PRIVATE_KEY_FILE_PATH> # for example ~/.ssh/onap-5802.pem
-WORKER_IP = <ANY_WORKER_NODE_IP> # for example 10.183.39.145
+RKE_NODE_USER_AND_HOSTNAME = <RKE_USER>@<RKE_IP> # for example ubuntu@10.183.36.205
+RKE_PRIVATE_KEY = <PEM_PRIVATE_KEY_FILE_PATH> # for example ~/.ssh/onap-5802.pem
+WORKER_IP = <ANY_WORKER_NODE_IP> # for example 10.183.39.145
# JMeter VM environment configuration
-JMETER_VM_USER_AND_HOSTNAME = <RKE_USER>@<VM_IP> # for example root@10.183.36.50
-JMETER_VM_PRIVATE_KEY = <PEM_PRIVATE_KEY_FILE_PATH> # for example ~/.ssh/onap-5802.pem
+JMETER_VM_USER_AND_HOSTNAME = <RKE_USER>@<VM_IP> # for example root@10.183.36.50
+JMETER_VM_PRIVATE_KEY = <PEM_PRIVATE_KEY_FILE_PATH> # for example ~/.ssh/onap-5802.pem
+
+# DMaaP simulator image
+DMAAP_SIMULATOR_IMAGE = <AVAILABLE_DMAAP_SIMULATOR_IMAGE> # for example my-docker-repository.com/ves-dmaap-simulator:1.0.0
# Test scenario to run
-TEST_SCENARIO_FILE = test_scenario.jmx # see performanceTests/environment/jmeterVM/jmeter for other scenarios \ No newline at end of file
+TEST_SCENARIO_FILE = simple_test_scenario.jmx # see performanceTests/environment/jmeterVM/jmeter for other scenarios \ No newline at end of file
diff --git a/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh b/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh
index 4b7477a7..e63fc524 100644
--- a/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh
+++ b/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh
@@ -9,9 +9,11 @@ performance_tests_env_directory=$1
test_scenario_file=$2
docker pull justb4/jmeter
-export volume_path=~/${performance_tests_env_directory}/jmeter && \
+export volume_path=~/${performance_tests_env_directory}/jmeter/testScenarios && \
export jmeter_path=/mnt/jmeter && \
docker run \
+ --name jmeter \
+ --rm \
--volume "${volume_path}":${jmeter_path} \
justb4/jmeter \
-n -X \
diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx
new file mode 100644
index 00000000..c04170fb
--- /dev/null
+++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx
@@ -0,0 +1,916 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Https ves collector /eventlistener/v7 BasicAuth" enabled="true">
+ <stringProp name="TestPlan.comments"></stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">1000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">150</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-dupa-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree/>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">1750</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">150</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-dupa-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree/>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">3500</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">150</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-dupa-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree/>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">5000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">150</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-dupa-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree/>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">7500</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">150</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-dupa-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree/>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">10000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">150</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-dupa-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree/>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx
new file mode 100644
index 00000000..5308b01b
--- /dev/null
+++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_1k_rps" enabled="true">
+ <stringProp name="TestPlan.comments">1k request / 1s</stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">1000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-adb2-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: 1413378172000000,&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx
new file mode 100644
index 00000000..82768314
--- /dev/null
+++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_2k_rps" enabled="true">
+ <stringProp name="TestPlan.comments">2k request / 1s</stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">2000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-adb2-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: 1413378172000000,&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx
new file mode 100644
index 00000000..5ee6aef1
--- /dev/null
+++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_5k_rps" enabled="true">
+ <stringProp name="TestPlan.comments">3k request / 1s</stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">3000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-adb2-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: 1413378172000000,&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx
new file mode 100644
index 00000000..96b53702
--- /dev/null
+++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_10k_rps" enabled="true">
+ <stringProp name="TestPlan.comments">4k request / 1s</stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">4000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-adb2-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: 1413378172000000,&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx
new file mode 100644
index 00000000..49ff743d
--- /dev/null
+++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_10k_rps" enabled="true">
+ <stringProp name="TestPlan.comments">5k request / 1s</stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">5000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">1</stringProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
+ </ThreadGroup>
+ <hashTree>
+ <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
+ <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
+ <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="" elementType="HTTPArgument">
+ <boolProp name="HTTPArgument.always_encode">false</boolProp>
+ <stringProp name="Argument.value">{&#xd;
+ &quot;event&quot;: {&#xd;
+ &quot;commonEventHeader&quot;: {&#xd;
+ &quot;version&quot;: &quot;4.0.1&quot;,&#xd;
+ &quot;vesEventListenerVersion&quot;: &quot;7.0.1&quot;,&#xd;
+ &quot;domain&quot;: &quot;fault&quot;,&#xd;
+ &quot;eventName&quot;: &quot;Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventId&quot;: &quot;fault0000245&quot;,&#xd;
+ &quot;sequence&quot;: 1,&#xd;
+ &quot;priority&quot;: &quot;High&quot;,&#xd;
+ &quot;reportingEntityId&quot;: &quot;cc305d54-75b4-431b-adb2-eb6b9e541234&quot;,&#xd;
+ &quot;reportingEntityName&quot;: &quot;ibcx0001vm002oam001&quot;,&#xd;
+ &quot;sourceId&quot;: &quot;de305d54-75b4-431b-adb2-eb6b9e546014&quot;,&#xd;
+ &quot;sourceName&quot;: &quot;scfx0001vm002cap001&quot;,&#xd;
+ &quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
+ &quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
+ &quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
+ &quot;lastEpochMicrosec&quot;: 1413378172000000,&#xd;
+ &quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
+ },&#xd;
+ &quot;faultFields&quot;: {&#xd;
+ &quot;faultFieldsVersion&quot;: &quot;4.0&quot;,&#xd;
+ &quot;alarmCondition&quot;: &quot;PilotNumberPoolExhaustion&quot;,&#xd;
+ &quot;eventSourceType&quot;: &quot;other&quot;,&#xd;
+ &quot;specificProblem&quot;: &quot;Calls cannot complete - pilot numbers are unavailable&quot;,&#xd;
+ &quot;eventSeverity&quot;: &quot;CRITICAL&quot;,&#xd;
+ &quot;vfStatus&quot;: &quot;Active&quot;,&#xd;
+ &quot;alarmAdditionalInformation&quot;: {&#xd;
+ &quot;PilotNumberPoolSize&quot;: &quot;1000&quot;&#xd;
+ }&#xd;
+ }&#xd;
+ }&#xd;
+}&#xd;
+</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp>
+ <stringProp name="HTTPSampler.port">30417</stringProp>
+ <stringProp name="HTTPSampler.protocol">https</stringProp>
+ <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+ <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp>
+ <stringProp name="HTTPSampler.method">POST</stringProp>
+ <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+ <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+ <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+ <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+ <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+ <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+ <stringProp name="HTTPSampler.response_timeout"></stringProp>
+ </HTTPSamplerProxy>
+ <hashTree>
+ <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>true</time>
+ <latency>true</latency>
+ <timestamp>true</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sentBytes>true</sentBytes>
+ <url>true</url>
+ <threadCounts>true</threadCounts>
+ <idleTime>true</idleTime>
+ <connectTime>true</connectTime>
+ </value>
+ </objProp>
+ <stringProp name="filename"></stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true">
+ <collectionProp name="AuthManager.auth_list">
+ <elementProp name="" elementType="Authorization">
+ <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp>
+ <stringProp name="Authorization.username">sample1</stringProp>
+ <stringProp name="Authorization.password">sample1</stringProp>
+ <stringProp name="Authorization.domain"></stringProp>
+ <stringProp name="Authorization.realm"></stringProp>
+ </elementProp>
+ </collectionProp>
+ <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp>
+ </AuthManager>
+ <hashTree/>
+ <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+ <collectionProp name="HeaderManager.headers">
+ <elementProp name="" elementType="Header">
+ <stringProp name="Header.name">Content-Type</stringProp>
+ <stringProp name="Header.value">application/json</stringProp>
+ </elementProp>
+ </collectionProp>
+ </HeaderManager>
+ <hashTree/>
+ <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
+ <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+ <collectionProp name="Arguments.arguments">
+ <elementProp name="influxdbMetricsSender" elementType="Argument">
+ <stringProp name="Argument.name">influxdbMetricsSender</stringProp>
+ <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="influxdbUrl" elementType="Argument">
+ <stringProp name="Argument.name">influxdbUrl</stringProp>
+ <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="application" elementType="Argument">
+ <stringProp name="Argument.name">application</stringProp>
+ <stringProp name="Argument.value">ves</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="measurement" elementType="Argument">
+ <stringProp name="Argument.name">measurement</stringProp>
+ <stringProp name="Argument.value">jmeter</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="summaryOnly" elementType="Argument">
+ <stringProp name="Argument.name">summaryOnly</stringProp>
+ <stringProp name="Argument.value">false</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="samplersRegex" elementType="Argument">
+ <stringProp name="Argument.name">samplersRegex</stringProp>
+ <stringProp name="Argument.value">.*</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="percentiles" elementType="Argument">
+ <stringProp name="Argument.name">percentiles</stringProp>
+ <stringProp name="Argument.value">90;95;99</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="testTitle" elementType="Argument">
+ <stringProp name="Argument.name">testTitle</stringProp>
+ <stringProp name="Argument.value">Test name</stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ <elementProp name="eventTags" elementType="Argument">
+ <stringProp name="Argument.name">eventTags</stringProp>
+ <stringProp name="Argument.value"></stringProp>
+ <stringProp name="Argument.metadata">=</stringProp>
+ </elementProp>
+ </collectionProp>
+ </elementProp>
+ <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp>
+ </BackendListener>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
diff --git a/performanceTests/environment/jmeterVM/jmeter/test_scenario.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/simple_test_scenario.jmx
index 6cfb08dc..8848374f 100644
--- a/performanceTests/environment/jmeterVM/jmeter/test_scenario.jmx
+++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/simple_test_scenario.jmx
@@ -18,8 +18,8 @@
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
- <stringProp name="ThreadGroup.num_threads">250</stringProp>
- <stringProp name="ThreadGroup.ramp_time">10</stringProp>
+ <stringProp name="ThreadGroup.num_threads">10000</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">300</stringProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
@@ -49,7 +49,7 @@
&quot;nfVendorName&quot;: &quot;SomeNamee&quot;,&#xd;
&quot;nfNamingCode&quot;: &quot;scfx&quot;,&#xd;
&quot;nfcNamingCode&quot;: &quot;ssc&quot;,&#xd;
- &quot;startEpochMicrosec&quot;: 1413378172000000,&#xd;
+ &quot;startEpochMicrosec&quot;: ${__time()},&#xd;
&quot;lastEpochMicrosec&quot;: 1413378172000000,&#xd;
&quot;timeZoneOffset&quot;: &quot;UTC-05:30&quot;&#xd;
},&#xd;
diff --git a/performanceTests/environment/k8s/Makefile b/performanceTests/environment/k8s/Makefile
index 0843f3b8..55bb1483 100644
--- a/performanceTests/environment/k8s/Makefile
+++ b/performanceTests/environment/k8s/Makefile
@@ -1,4 +1,4 @@
-all: --deploy-influxdb --deploy-prometheus --deploy-node-exporter --deploy-grafana --display-urls
+all: --deploy-influxdb --deploy-prometheus --deploy-node-exporter --deploy-grafana --deploy-dmaap-simulator --display-urls
# Prometheus configuration
PROMETHEUS_DIRECTORY = ./prometheus
@@ -21,6 +21,11 @@ INFLUXDB_CONFIGMAP = configmap.yaml
NODE_EXPORTER_DIRECTORY = ./nodeExporter
NODE_EXPORTER_DEPLOYMENT = deployment.yaml
+# DMaaaP Simulator configuration
+DMAAP_SIMULATOR_DIRECTORY = ./dmaapSimulator
+DMAAP_SIMULATOR_DEPLOYMENT = deployment.yaml
+DMAAP_SIMULATOR_IMAGE_ESCAPED := $(shell echo $(DMAAP_SIMULATOR_IMAGE) | sed 's/\//\\\//g')
+
clear:
@echo "\n##### Delete configmaps and deployments (prometheus, grafana, influxdb, node exporter) #####"
kubectl delete -f $(GRAFANA_DIRECTORY)/$(GRAFANA_DEPLOYMENT) || true
@@ -32,6 +37,7 @@ clear:
kubectl delete -f $(INFLUXDB_DIRECTORY)/$(INFLUXDB_DEPLOYMENT) || true
kubectl delete -f $(INFLUXDB_DIRECTORY)/$(INFLUXDB_CONFIGMAP) || true
kubectl delete -f $(NODE_EXPORTER_DIRECTORY)/$(NODE_EXPORTER_DEPLOYMENT) || true
+ kubectl delete -f $(DMAAP_SIMULATOR_DIRECTORY)/$(DMAAP_SIMULATOR_DEPLOYMENT) || true
@echo "##### DONE #####"
--deploy-node-exporter:
@@ -59,6 +65,13 @@ clear:
kubectl apply -f $(INFLUXDB_DIRECTORY)/$(INFLUXDB_DEPLOYMENT)
@echo "##### DONE #####"
+--deploy-dmaap-simulator:
+ @echo "\n##### Deploy dmaap simulator #####"
+ sed -i "s/DMAAP_SIMULATOR_IMAGE/$(DMAAP_SIMULATOR_IMAGE_ESCAPED)/g" $(DMAAP_SIMULATOR_DIRECTORY)/$(DMAAP_SIMULATOR_DEPLOYMENT)
+ kubectl apply -f $(DMAAP_SIMULATOR_DIRECTORY)/$(DMAAP_SIMULATOR_DEPLOYMENT)
+ @echo "##### DONE #####"
+
+
--display-urls:
@echo "Waiting for Grafana to start up..."
@sleep 10
diff --git a/performanceTests/environment/k8s/dmaapSimulator/deployment.yaml b/performanceTests/environment/k8s/dmaapSimulator/deployment.yaml
new file mode 100644
index 00000000..7701ade8
--- /dev/null
+++ b/performanceTests/environment/k8s/dmaapSimulator/deployment.yaml
@@ -0,0 +1,55 @@
+# ============LICENSE_START=======================================================
+# dcaegen2-collectors-ves
+# ================================================================================
+# Copyright (C) 2020 NOKIA
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+
+apiVersion: v1
+kind: Service
+metadata:
+ name: ves-dmaap-simulator
+ namespace: onap
+ labels:
+ app: ves-dmaap-simulator
+spec:
+ selector:
+ app: ves-dmaap-simulator
+ type: NodePort
+ ports:
+ - port: 3904
+ name: influx-db
+ targetPort: 3904
+ nodePort: 30004
+---
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: ves-dmaap-simulator
+ namespace: onap
+ labels:
+ app: ves-dmaap-simulator
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: ves-dmaap-simulator
+ template:
+ metadata:
+ labels:
+ app: ves-dmaap-simulator
+ spec:
+ containers:
+ - name: ves-dmaap-simulator
+ image: DMAAP_SIMULATOR_IMAGE
diff --git a/performanceTests/environment/k8s/grafana/dashboards/jmeter-test-results.json b/performanceTests/environment/k8s/grafana/dashboards/jmeter-test-results-and-metrics.json
index 5491f712..8e24614e 100644
--- a/performanceTests/environment/k8s/grafana/dashboards/jmeter-test-results.json
+++ b/performanceTests/environment/k8s/grafana/dashboards/jmeter-test-results-and-metrics.json
@@ -16,11 +16,11 @@
}
]
},
- "description": "Monitor your JMeter load test in real time with InfluxDB and Grafana.",
+ "description": "Monitor your JMeter load test in real time.",
"editable": true,
"gnetId": 4026,
"graphTooltip": 0,
- "iteration": 1591703765642,
+ "iteration": 1592394827294,
"links": [],
"panels": [
{
@@ -35,7 +35,7 @@
"id": 33,
"panels": [],
"repeat": null,
- "title": "Summary",
+ "title": "JMeter test results",
"type": "row"
},
{
@@ -43,7 +43,7 @@
"colorBackground": false,
"colorValue": true,
"colors": [
- "#299c46",
+ "#37872D",
"#e5ac0e",
"#d44a3a"
],
@@ -64,8 +64,8 @@
"thresholdMarkers": true
},
"gridPos": {
- "h": 7,
- "w": 8,
+ "h": 4,
+ "w": 6,
"x": 0,
"y": 1
},
@@ -87,7 +87,7 @@
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
- "postfix": " Requests",
+ "postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
@@ -146,9 +146,9 @@
}
],
"thresholds": "",
- "title": "Total Requests",
+ "title": "Total Events Sent",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "200%",
"valueMaps": [
{
"op": "=",
@@ -163,9 +163,9 @@
"colorBackground": false,
"colorValue": true,
"colors": [
- "#299c46",
- "#e24d42",
- "#d44a3a"
+ "#C4162A",
+ "#C4162A",
+ "#C4162A"
],
"datasource": "jmeter",
"decimals": 0,
@@ -184,9 +184,9 @@
"thresholdMarkers": true
},
"gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
+ "h": 4,
+ "w": 6,
+ "x": 6,
"y": 1
},
"height": "",
@@ -207,7 +207,7 @@
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
- "postfix": " Failed",
+ "postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
@@ -268,7 +268,7 @@
"thresholds": "",
"title": "Failed Requests",
"type": "singlestat",
- "valueFontSize": "80%",
+ "valueFontSize": "200%",
"valueMaps": [
{
"op": "=",
@@ -304,9 +304,9 @@
"thresholdMarkers": true
},
"gridPos": {
- "h": 7,
- "w": 8,
- "x": 16,
+ "h": 4,
+ "w": 6,
+ "x": 12,
"y": 1
},
"id": 29,
@@ -398,6 +398,62 @@
"valueName": "total"
},
{
+ "datasource": null,
+ "fieldConfig": {
+ "defaults": {
+ "custom": {},
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "dark-green",
+ "value": null
+ },
+ {
+ "color": "dark-green",
+ "value": 80
+ }
+ ]
+ }
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 6,
+ "x": 18,
+ "y": 1
+ },
+ "id": 35,
+ "options": {
+ "colorMode": "value",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "last"
+ ],
+ "fields": "",
+ "values": false
+ }
+ },
+ "pluginVersion": "7.0.3",
+ "targets": [
+ {
+ "expr": "events_count",
+ "interval": "",
+ "legendFormat": "",
+ "refId": "A"
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "DMaaP - Received Events",
+ "type": "stat"
+ },
+ {
"aliasColors": {
"No of Errors": "#6ED0E0",
"Req / s": "#6ed0e0",
@@ -422,7 +478,7 @@
"h": 7,
"w": 8,
"x": 0,
- "y": 8
+ "y": 5
},
"hiddenSeries": false,
"id": 4,
@@ -569,7 +625,7 @@
"h": 7,
"w": 8,
"x": 8,
- "y": 8
+ "y": 5
},
"hiddenSeries": false,
"id": 2,
@@ -719,7 +775,7 @@
"h": 7,
"w": 8,
"x": 16,
- "y": 8
+ "y": 5
},
"hiddenSeries": false,
"id": 31,
@@ -834,13 +890,20 @@
},
{
"aliasColors": {
- "banner": "#508642"
+ "90th Percentage": "#f2c96d",
+ "95th Percentage": "#EF843C",
+ "99th Percentage": "#bf1b00",
+ "Average": "#7eb26d",
+ "Max": "#584477",
+ "Median": "#6ed0e0",
+ "median": "#6ed0e0"
},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "jmeter",
"decimals": 2,
+ "description": "",
"editable": true,
"error": false,
"fieldConfig": {
@@ -852,25 +915,25 @@
"fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 7,
- "w": 24,
+ "h": 8,
+ "w": 12,
"x": 0,
- "y": 15
+ "y": 12
},
"height": "",
"hiddenSeries": false,
- "id": 23,
+ "id": 5,
"interval": "[[send_interval]]s",
"legend": {
"alignAsTable": true,
"avg": true,
"current": false,
- "hideEmpty": false,
- "hideZero": false,
+ "hideEmpty": true,
"max": true,
"min": false,
"rightSide": true,
"show": true,
+ "sortDesc": true,
"total": false,
"values": true
},
@@ -885,421 +948,129 @@
"pointradius": 1,
"points": false,
"renderer": "flot",
- "seriesOverrides": [],
+ "seriesOverrides": [
+ {
+ "$$hashKey": "object:187",
+ "alias": "Average",
+ "yaxis": 1
+ }
+ ],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "alias": "$tag_transaction",
+ "alias": "Average",
"dsType": "influxdb",
"groupBy": [
{
"params": [
- "transaction"
+ "$aggregation"
+ ],
+ "type": "time"
+ },
+ {
+ "params": [
+ "null"
],
- "type": "tag"
+ "type": "fill"
}
],
"measurement": "jmeter",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT mean(\"pct95.0\") FROM \"$measurement_name\" WHERE (\"statut\" = 'ok' AND \"application\" =~ /^$application$/) AND $timeFilter GROUP BY \"transaction\", time($__interval) fill(null)",
+ "query": "SELECT last(\"avg\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval)",
"rawQuery": true,
- "refId": "B",
+ "refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "pct95.0"
+ "avg"
],
"type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
}
]
],
"tags": [
{
- "key": "statut",
- "operator": "=",
- "value": "ok"
+ "key": "transaction",
+ "operator": "=~",
+ "value": "/^$request$/"
},
{
"condition": "AND",
- "key": "application",
- "operator": "=~",
- "value": "/^$application$/"
+ "key": "statut",
+ "operator": "=",
+ "value": "ok"
}
]
- }
- ],
- "thresholds": [
- {
- "colorMode": "ok",
- "fill": true,
- "line": true,
- "op": "lt",
- "value": 500
},
{
- "colorMode": "warning",
- "fill": false,
- "line": true,
- "op": "gt",
- "value": 1500
- },
- {
- "colorMode": "critical",
- "fill": true,
- "line": true,
- "op": "gt",
- "value": 5000
- }
- ],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Transactions Response Times (95th pct)",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "ms",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": false
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "collapsed": true,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 22
- },
- "id": 34,
- "panels": [
- {
- "columns": [],
- "datasource": "jmeter",
- "fontSize": "100%",
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 0,
- "y": 23
- },
- "height": "",
- "id": 25,
- "interval": "[[send_interval]]s",
- "links": [],
- "pageSize": null,
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 2,
- "desc": true
- },
- "styles": [
+ "alias": "Median",
+ "dsType": "influxdb",
+ "groupBy": [
{
- "alias": "Time",
- "align": "auto",
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "pattern": "Time",
- "type": "hidden"
+ "params": [
+ "$aggregation"
+ ],
+ "type": "time"
},
{
- "alias": "",
- "align": "auto",
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
+ "params": [
+ "null"
],
- "decimals": 0,
- "pattern": "/.*/",
- "thresholds": [],
- "type": "number",
- "unit": "short"
+ "type": "fill"
}
],
- "targets": [
- {
- "alias": "$tag_transaction",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "transaction"
- ],
- "type": "tag"
- }
- ],
- "measurement": "jmeter",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT sum(\"count\") FROM \"$measurement_name\" WHERE (\"application\" =~ /^$application$/ AND \"statut\" = 'ko') AND $timeFilter GROUP BY \"transaction\"",
- "rawQuery": true,
- "refId": "A",
- "resultFormat": "table",
- "select": [
- [
- {
- "params": [
- "count"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "sum"
- }
- ]
- ],
- "tags": [
- {
- "key": "application",
- "operator": "=~",
- "value": "/^$application$/"
- },
- {
- "condition": "AND",
- "key": "statut",
- "operator": "=",
- "value": "ko"
- }
- ]
- }
+ "hide": false,
+ "measurement": "jmeter",
+ "orderByTime": "ASC",
+ "policy": "default",
+ "query": "SELECT last(\"pct50.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval)",
+ "rawQuery": true,
+ "refId": "F",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "pct50.0"
+ ],
+ "type": "field"
+ },
+ {
+ "params": [],
+ "type": "last"
+ }
+ ]
],
- "title": "Errors per Transaction",
- "transform": "table",
- "type": "table-old"
- },
- {
- "columns": [],
- "datasource": "jmeter",
- "fontSize": "100%",
- "gridPos": {
- "h": 7,
- "w": 16,
- "x": 8,
- "y": 23
- },
- "id": 27,
- "interval": "[[send_interval]]s",
- "links": [],
- "pageSize": null,
- "scroll": true,
- "showHeader": true,
- "sort": {
- "col": 0,
- "desc": true
- },
- "styles": [
+ "tags": [
{
- "alias": "Time",
- "align": "auto",
- "dateFormat": "YYYY-MM-DD HH:mm:ss",
- "pattern": "Time",
- "type": "hidden"
+ "key": "transaction",
+ "operator": "=~",
+ "value": "/^$request$/"
},
{
- "alias": "",
- "align": "auto",
- "colorMode": null,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "decimals": 0,
- "pattern": "/.*/",
- "thresholds": [],
- "type": "number",
- "unit": "short"
- }
- ],
- "targets": [
- {
- "alias": "$tag_responseCode",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "responseCode"
- ],
- "type": "tag"
- }
- ],
- "measurement": "jmeter",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT sum(\"count\") FROM \"$measurement_name\" WHERE (\"application\" =~ /^$application$/ AND \"responseCode\" !~ /^$/) AND $timeFilter GROUP BY \"responseCode\",\"responseMessage\"",
- "rawQuery": true,
- "refId": "A",
- "resultFormat": "table",
- "select": [
- [
- {
- "params": [
- "count"
- ],
- "type": "field"
- }
- ],
- [
- {
- "params": [
- "responseMessage"
- ],
- "type": "field"
- }
- ]
- ],
- "tags": [
- {
- "key": "application",
- "operator": "=~",
- "value": "/^$application$/"
- },
- {
- "condition": "AND",
- "key": "responseCode",
- "operator": "!~",
- "value": "/^$/"
- }
- ]
+ "condition": "AND",
+ "key": "statut",
+ "operator": "=",
+ "value": "all"
}
- ],
- "title": "Error Info",
- "transform": "table",
- "type": "table-old"
- }
- ],
- "repeat": null,
- "title": "Errors",
- "type": "row"
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 23
- },
- "id": 35,
- "panels": [],
- "repeat": null,
- "title": "Individual Transaction - $transaction",
- "type": "row"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "#e5ac0e",
- "rgba(50, 172, 45, 0.97)"
- ],
- "datasource": "jmeter",
- "decimals": 0,
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 0,
- "y": 24
- },
- "id": 9,
- "interval": "[[send_interval]]s",
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
+ ]
},
{
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": " Requests",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "#e5ac0e",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
+ "alias": "90th Percentile",
"dsType": "influxdb",
"groupBy": [
{
"params": [
- "$__interval"
+ "$aggregation"
],
"type": "time"
},
@@ -1313,21 +1084,21 @@
"measurement": "jmeter",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT sum(\"count\") FROM \"$measurement_name\" WHERE (\"application\" =~ /^$application$/ AND \"transaction\" =~ /^$transaction$/ AND \"statut\" = 'all') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT last(\"pct90.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
- "refId": "A",
+ "refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "count"
+ "pct90.0"
],
"type": "field"
},
{
"params": [],
- "type": "sum"
+ "type": "last"
}
]
],
@@ -1335,7 +1106,7 @@
{
"key": "transaction",
"operator": "=~",
- "value": "/^$transaction$/"
+ "value": "/^$request$/"
},
{
"condition": "AND",
@@ -1344,96 +1115,14 @@
"value": "all"
}
]
- }
- ],
- "thresholds": "",
- "title": "Total Requests - $transaction",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "0",
- "value": "null"
- }
- ],
- "valueName": "total"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "#e24d42",
- "rgba(50, 172, 45, 0.97)"
- ],
- "datasource": "jmeter",
- "decimals": 0,
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "format": "none",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 24
- },
- "id": 6,
- "interval": "[[send_interval]]s",
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
},
{
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": " Failed",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "#e24d42",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
+ "alias": "95th Percentile",
"dsType": "influxdb",
"groupBy": [
{
"params": [
- "$__interval"
+ "$aggregation"
],
"type": "time"
},
@@ -1444,24 +1133,25 @@
"type": "fill"
}
],
+ "hide": false,
"measurement": "jmeter",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT sum(\"count\") FROM \"$measurement_name\" WHERE (\"application\" =~ /^$application$/ AND \"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ko') AND $timeFilter GROUP BY time($__interval) fill(null)",
+ "query": "SELECT last(\"pct95.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
- "refId": "A",
+ "refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "count"
+ "pct95.0"
],
"type": "field"
},
{
"params": [],
- "type": "sum"
+ "type": "last"
}
]
],
@@ -1469,105 +1159,17 @@
{
"key": "transaction",
"operator": "=~",
- "value": "/^$transaction$/"
- },
- {
- "condition": "AND",
- "key": "statut",
- "operator": "=",
- "value": "ko"
+ "value": "/^$request$/"
}
]
- }
- ],
- "thresholds": "",
- "title": "Failed Requests - $transaction",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "0",
- "value": "null"
- }
- ],
- "valueName": "total"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "#e5ac0e",
- "#e24d42"
- ],
- "datasource": "jmeter",
- "decimals": 2,
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
},
- "overrides": []
- },
- "format": "percentunit",
- "gauge": {
- "maxValue": 1,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 16,
- "y": 24
- },
- "id": 8,
- "interval": "[[send_interval]]s",
- "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": false,
- "lineColor": "rgb(14, 237, 45)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
{
+ "alias": "99th Percentile",
"dsType": "influxdb",
"groupBy": [
{
"params": [
- "$__interval"
+ "$aggregation"
],
"type": "time"
},
@@ -1578,24 +1180,25 @@
"type": "fill"
}
],
+ "hide": false,
"measurement": "jmeter",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT sum(\"error\") / sum(\"all\") FROM (SELECT sum(\"count\") AS \"all\" FROM \"$measurement_name\" WHERE \"transaction\" =~ /^$transaction$/ AND \"statut\" = 'all' AND \"application\" =~ /^$application$/ AND $timeFilter GROUP BY time($__interval) fill(null)), (SELECT sum(\"count\") AS \"error\" FROM \"$measurement_name\" WHERE \"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ko' AND \"application\" =~ /^$application$/ AND $timeFilter GROUP BY time($__interval) fill(null))",
+ "query": "SELECT last(\"pct99.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
- "refId": "A",
+ "refId": "D",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "count"
+ "pct99.0"
],
"type": "field"
},
{
"params": [],
- "type": "sum"
+ "type": "last"
}
]
],
@@ -1603,131 +1206,45 @@
{
"key": "transaction",
"operator": "=~",
- "value": "/^$transaction$/"
- },
- {
- "condition": "AND",
- "key": "statut",
- "operator": "=",
- "value": "ok"
+ "value": "/^$request$/"
}
]
- }
- ],
- "thresholds": "0,0.01",
- "title": "Error Rate % - $transaction",
- "type": "singlestat",
- "valueFontSize": "50%",
- "valueMaps": [
- {
- "op": "=",
- "text": "0",
- "value": "null"
- }
- ],
- "valueName": "total"
- },
- {
- "aliasColors": {
- "90th Percentage": "#EAB839",
- "95th Percentage": "#EF843C",
- "99th Percentage": "#99440A",
- "Average": "#3F6833",
- "Max": "#58140C",
- "Req / s": "#6ed0e0"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "jmeter",
- "decimals": 2,
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
},
- "overrides": []
- },
- "fill": 7,
- "fillGradient": 0,
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 31
- },
- "height": "",
- "hiddenSeries": false,
- "id": 10,
- "interval": "[[send_interval]]s",
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": false,
- "max": true,
- "min": true,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 1,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [
- {
- "alias": "Average",
- "yaxis": 1
- }
- ],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
{
- "alias": "Req / s",
+ "alias": "Max",
"dsType": "influxdb",
"groupBy": [
{
"params": [
- "$__interval"
+ "$aggregation"
],
"type": "time"
+ },
+ {
+ "params": [
+ "null"
+ ],
+ "type": "fill"
}
],
"measurement": "jmeter",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT last(\"count\") / $send_interval FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval)",
+ "query": "SELECT last(\"max\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": true,
- "refId": "B",
+ "refId": "E",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "count"
+ "max"
],
"type": "field"
},
{
"params": [],
- "type": "sum"
- },
- {
- "params": [
- "5s"
- ],
- "type": "non_negative_derivative"
+ "type": "last"
}
]
],
@@ -1735,7 +1252,7 @@
{
"key": "transaction",
"operator": "=~",
- "value": "/^$transaction$/"
+ "value": "/^$request$/"
},
{
"condition": "AND",
@@ -1746,11 +1263,39 @@
]
}
],
- "thresholds": [],
+ "thresholds": [
+ {
+ "$$hashKey": "object:219",
+ "colorMode": "ok",
+ "fill": true,
+ "line": true,
+ "op": "lt",
+ "value": 500,
+ "yaxis": "left"
+ },
+ {
+ "$$hashKey": "object:220",
+ "colorMode": "warning",
+ "fill": false,
+ "line": true,
+ "op": "gt",
+ "value": 1500,
+ "yaxis": "left"
+ },
+ {
+ "$$hashKey": "object:221",
+ "colorMode": "critical",
+ "fill": true,
+ "line": true,
+ "op": "gt",
+ "value": 5000,
+ "yaxis": "left"
+ }
+ ],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Throughput - $transaction",
+ "title": "Sync Processing Time (Client -> VES)",
"tooltip": {
"msResolution": false,
"shared": true,
@@ -1767,7 +1312,8 @@
},
"yaxes": [
{
- "format": "short",
+ "$$hashKey": "object:194",
+ "format": "ms",
"label": null,
"logBase": 1,
"max": null,
@@ -1775,6 +1321,7 @@
"show": true
},
{
+ "$$hashKey": "object:195",
"format": "short",
"label": null,
"logBase": 1,
@@ -1789,53 +1336,45 @@
}
},
{
- "aliasColors": {
- "Num of Errors": "#bf1b00",
- "num of errors": "#bf1b00"
- },
+ "aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "jmeter",
- "decimals": 0,
+ "datasource": null,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
- "fill": 7,
+ "fill": 1,
"fillGradient": 0,
"gridPos": {
- "h": 7,
+ "h": 8,
"w": 12,
"x": 12,
- "y": 31
+ "y": 12
},
"hiddenSeries": false,
- "id": 32,
- "interval": "[[send_interval]]s",
+ "id": 37,
"legend": {
- "alignAsTable": true,
"avg": false,
"current": false,
"max": false,
"min": false,
- "rightSide": false,
"show": true,
- "total": true,
- "values": true
+ "total": false,
+ "values": false
},
"lines": true,
"linewidth": 1,
- "links": [],
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
- "pointradius": 1,
- "points": true,
+ "pointradius": 2,
+ "points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
@@ -1843,50 +1382,17 @@
"steppedLine": false,
"targets": [
{
- "alias": "Num of Errors",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$__interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT sum(\"count\") FROM \"$measurement_name\" WHERE \"application\" =~ /^$application$/ AND \"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ko' AND $timeFilter GROUP BY time($__interval) fill(null)",
- "rawQuery": true,
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "value"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": []
+ "expr": "async_processing_times/1000",
+ "interval": "",
+ "legendFormat": "avg processing time",
+ "refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Errors",
+ "title": "Async Processing Time (Client -> VES -> DMaaP)",
"tooltip": {
"shared": true,
"sort": 0,
@@ -1894,7 +1400,7 @@
},
"type": "graph",
"xaxis": {
- "buckets": 1,
+ "buckets": null,
"mode": "time",
"name": null,
"show": true,
@@ -1902,15 +1408,17 @@
},
"yaxes": [
{
- "decimals": 0,
- "format": "short",
- "label": null,
+ "$$hashKey": "object:1011",
+ "decimals": null,
+ "format": "s",
+ "label": "",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
+ "$$hashKey": "object:1012",
"format": "short",
"label": null,
"logBase": 1,
@@ -1925,22 +1433,25 @@
}
},
{
- "aliasColors": {
- "90th Percentage": "#f2c96d",
- "95th Percentage": "#EF843C",
- "99th Percentage": "#bf1b00",
- "Average": "#7eb26d",
- "Max": "#584477",
- "Median": "#6ed0e0",
- "median": "#6ed0e0"
+ "collapsed": false,
+ "datasource": null,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 20
},
+ "id": 43,
+ "panels": [],
+ "title": "JMeter VM metrics",
+ "type": "row"
+ },
+ {
+ "aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
- "datasource": "jmeter",
- "decimals": 2,
- "editable": true,
- "error": false,
+ "datasource": "jmeterVM",
"fieldConfig": {
"defaults": {
"custom": {}
@@ -1948,378 +1459,202 @@
"overrides": []
},
"fill": 1,
+ "fillGradient": 0,
"gridPos": {
- "h": 7,
- "w": 24,
+ "h": 9,
+ "w": 12,
"x": 0,
- "y": 38
+ "y": 21
},
- "height": "",
- "id": 5,
- "interval": "[[send_interval]]s",
+ "hiddenSeries": false,
+ "id": 41,
"legend": {
- "alignAsTable": true,
- "avg": true,
+ "avg": false,
"current": false,
- "hideEmpty": true,
- "max": true,
+ "max": false,
"min": false,
- "rightSide": true,
"show": true,
- "sortDesc": true,
"total": false,
- "values": true
+ "values": false
},
"lines": true,
"linewidth": 1,
- "links": [],
"nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
"percentage": false,
- "pointradius": 1,
+ "pointradius": 2,
"points": false,
"renderer": "flot",
- "seriesOverrides": [
- {
- "alias": "Average",
- "yaxis": 1
- }
- ],
+ "seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
- "alias": "Average",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$aggregation"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "jmeter",
+ "alias": "RAM",
+ "groupBy": [],
+ "measurement": "memory_value",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT last(\"avg\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval)",
- "rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "avg"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "last"
- }
- ]
- ],
- "tags": [
- {
- "key": "transaction",
- "operator": "=~",
- "value": "/^$request$/"
- },
- {
- "condition": "AND",
- "key": "statut",
- "operator": "=",
- "value": "ok"
- }
- ]
- },
- {
- "alias": "Median",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$aggregation"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "hide": false,
- "measurement": "jmeter",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT last(\"pct50.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval)",
- "rawQuery": true,
- "refId": "F",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "pct50.0"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "last"
- }
- ]
- ],
- "tags": [
- {
- "key": "transaction",
- "operator": "=~",
- "value": "/^$request$/"
- },
- {
- "condition": "AND",
- "key": "statut",
- "operator": "=",
- "value": "all"
- }
- ]
- },
- {
- "alias": "90th Percentile",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$aggregation"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "jmeter",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT last(\"pct90.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
- "rawQuery": true,
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "pct90.0"
+ "value"
],
"type": "field"
- },
- {
- "params": [],
- "type": "last"
}
]
],
"tags": [
{
- "key": "transaction",
- "operator": "=~",
- "value": "/^$request$/"
- },
- {
- "condition": "AND",
- "key": "statut",
+ "key": "type_instance",
"operator": "=",
- "value": "all"
+ "value": "used"
}
]
- },
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeRegions": [],
+ "timeShift": null,
+ "title": "RAM usage",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "yaxes": [
{
- "alias": "95th Percentile",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$aggregation"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "hide": false,
- "measurement": "jmeter",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT last(\"pct95.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
- "rawQuery": true,
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "pct95.0"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "last"
- }
- ]
- ],
- "tags": [
- {
- "key": "transaction",
- "operator": "=~",
- "value": "/^$request$/"
- }
- ]
+ "$$hashKey": "object:220",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
},
{
- "alias": "99th Percentile",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$aggregation"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "hide": false,
- "measurement": "jmeter",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT last(\"pct99.0\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
- "rawQuery": true,
- "refId": "D",
- "resultFormat": "time_series",
- "select": [
- [
+ "$$hashKey": "object:221",
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": "100",
+ "min": "0",
+ "show": true
+ }
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "jmeterVM",
+ "description": "CPU usage of JMeter VM",
+ "fieldConfig": {
+ "defaults": {
+ "custom": {
+ "align": null
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
{
- "params": [
- "pct99.0"
- ],
- "type": "field"
+ "color": "green",
+ "value": null
},
{
- "params": [],
- "type": "last"
+ "color": "red",
+ "value": 80
}
]
- ],
- "tags": [
- {
- "key": "transaction",
- "operator": "=~",
- "value": "/^$request$/"
- }
- ]
+ }
},
+ "overrides": []
+ },
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 9,
+ "w": 12,
+ "x": 12,
+ "y": 21
+ },
+ "hiddenSeries": false,
+ "id": 39,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "options": {
+ "dataLinks": []
+ },
+ "percentage": false,
+ "pluginVersion": "7.0.3",
+ "pointradius": 2,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
{
- "alias": "Max",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$aggregation"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "jmeter",
+ "alias": "cpu",
+ "groupBy": [],
+ "measurement": "cpu_value",
"orderByTime": "ASC",
"policy": "default",
- "query": "SELECT last(\"max\") FROM \"$measurement_name\" WHERE (\"transaction\" =~ /^$transaction$/ AND \"statut\" = 'ok') AND $timeFilter GROUP BY time($__interval) fill(null)",
- "rawQuery": true,
- "refId": "E",
+ "query": "SELECT mean(\"value\") FROM \"cpu_value\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
+ "rawQuery": false,
+ "refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
- "max"
+ "value"
],
"type": "field"
- },
- {
- "params": [],
- "type": "last"
}
]
],
- "tags": [
- {
- "key": "transaction",
- "operator": "=~",
- "value": "/^$request$/"
- },
- {
- "condition": "AND",
- "key": "statut",
- "operator": "=",
- "value": "ok"
- }
- ]
- }
- ],
- "thresholds": [
- {
- "colorMode": "ok",
- "fill": true,
- "line": true,
- "op": "lt",
- "value": 500
- },
- {
- "colorMode": "warning",
- "fill": false,
- "line": true,
- "op": "gt",
- "value": 1500
- },
- {
- "colorMode": "critical",
- "fill": true,
- "line": true,
- "op": "gt",
- "value": 5000
+ "tags": []
}
],
+ "thresholds": [],
"timeFrom": null,
+ "timeRegions": [],
"timeShift": null,
- "title": "Response Times - $transaction",
+ "title": "CPU Usage",
"tooltip": {
- "msResolution": false,
"shared": true,
"sort": 0,
"value_type": "individual"
@@ -2334,22 +1669,29 @@
},
"yaxes": [
{
- "format": "ms",
- "label": null,
+ "$$hashKey": "object:60",
+ "decimals": null,
+ "format": "short",
+ "label": "",
"logBase": 1,
- "max": null,
- "min": null,
+ "max": "100",
+ "min": "0",
"show": true
},
{
+ "$$hashKey": "object:61",
"format": "short",
"label": null,
"logBase": 1,
- "max": null,
- "min": null,
- "show": false
+ "max": "100",
+ "min": "0",
+ "show": true
}
- ]
+ ],
+ "yaxis": {
+ "align": false,
+ "alignLevel": null
+ }
}
],
"refresh": "5s",
@@ -2373,6 +1715,7 @@
"name": "data_source",
"options": [],
"query": "influxdb",
+ "queryValue": "",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
@@ -2381,7 +1724,7 @@
{
"allValue": null,
"current": {
- "selected": false,
+ "selected": true,
"text": "ves",
"value": "ves"
},
@@ -2407,7 +1750,7 @@
{
"allValue": null,
"current": {
- "selected": false,
+ "selected": true,
"text": "HTTP Request",
"value": "HTTP Request"
},
@@ -2440,6 +1783,7 @@
"name": "measurement_name",
"options": [
{
+ "selected": true,
"text": "jmeter",
"value": "jmeter"
}
@@ -2458,6 +1802,7 @@
"name": "send_interval",
"options": [
{
+ "selected": true,
"text": "5",
"value": "5"
}
@@ -2469,7 +1814,7 @@
]
},
"time": {
- "from": "now-15m",
+ "from": "now-30m",
"to": "now"
},
"timepicker": {
@@ -2497,7 +1842,7 @@
]
},
"timezone": "browser",
- "title": "JMeter Dashboard",
+ "title": "JMeter test results & metrics",
"uid": "symhaxzMz",
"version": 1
} \ No newline at end of file
diff --git a/performanceTests/environment/k8s/grafana/dashboards/jmeter-vm-metrics.json b/performanceTests/environment/k8s/grafana/dashboards/jmeter-vm-metrics.json
deleted file mode 100644
index d2deb774..00000000
--- a/performanceTests/environment/k8s/grafana/dashboards/jmeter-vm-metrics.json
+++ /dev/null
@@ -1,296 +0,0 @@
-{
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": "-- Grafana --",
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "type": "dashboard"
- }
- ]
- },
- "editable": true,
- "gnetId": null,
- "graphTooltip": 0,
- "links": [],
- "panels": [
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "jmeterVM",
- "description": "CPU usage of JMeter VM",
- "fieldConfig": {
- "defaults": {
- "custom": {
- "align": null
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 9,
- "w": 12,
- "x": 0,
- "y": 0
- },
- "hiddenSeries": false,
- "id": 2,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pluginVersion": "7.0.3",
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "cpu",
- "groupBy": [],
- "measurement": "cpu_value",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT mean(\"value\") FROM \"cpu_value\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
- "rawQuery": false,
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "value"
- ],
- "type": "field"
- }
- ]
- ],
- "tags": []
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "CPU Usage",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "$$hashKey": "object:60",
- "decimals": null,
- "format": "short",
- "label": "",
- "logBase": 1,
- "max": "100",
- "min": "0",
- "show": true
- },
- {
- "$$hashKey": "object:61",
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": "100",
- "min": "0",
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "jmeterVM",
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "gridPos": {
- "h": 9,
- "w": 12,
- "x": 12,
- "y": 0
- },
- "hiddenSeries": false,
- "id": 4,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": false
- },
- "lines": true,
- "linewidth": 1,
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 2,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "RAM",
- "groupBy": [],
- "measurement": "memory_value",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "value"
- ],
- "type": "field"
- }
- ]
- ],
- "tags": [
- {
- "key": "type_instance",
- "operator": "=",
- "value": "used"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "RAM usage",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "$$hashKey": "object:220",
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": "100",
- "min": "0",
- "show": true
- },
- {
- "$$hashKey": "object:221",
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": "100",
- "min": "0",
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- }
- ],
- "refresh": "5s",
- "schemaVersion": 25,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": []
- },
- "time": {
- "from": "now-15m",
- "to": "now"
- },
- "timepicker": {
- "refresh_intervals": [
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ]
- },
- "timezone": "",
- "title": "JMeter CPU & RAM",
- "uid": "3vqG7iiGz",
- "version": 1
-} \ No newline at end of file
diff --git a/performanceTests/environment/k8s/grafana/dashboards/ves-metrics.json b/performanceTests/environment/k8s/grafana/dashboards/ves-metrics.json
index 24020ea0..b1b4a517 100644
--- a/performanceTests/environment/k8s/grafana/dashboards/ves-metrics.json
+++ b/performanceTests/environment/k8s/grafana/dashboards/ves-metrics.json
@@ -26,11 +26,11 @@
}
]
},
- "description": "Dashboard for Micrometer instrumented applications (Java, Spring Boot, Micronaut)",
+ "description": "",
"editable": true,
"gnetId": 4701,
"graphTooltip": 1,
- "iteration": 1591286065121,
+ "iteration": 1592483337437,
"links": [],
"panels": [
{
@@ -462,7 +462,7 @@
"y": 5
},
"hiddenSeries": false,
- "id": 111,
+ "id": 141,
"legend": {
"avg": false,
"current": true,
@@ -489,18 +489,29 @@
"steppedLine": false,
"targets": [
{
- "expr": "sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\"}[1m]))",
+ "expr": "sum(rate(http_server_requests_seconds_sum{exception=\"None\",method=\"POST\",outcome=\"SUCCESS\",status=\"202\",uri=\"/eventListener/{version}\"}[1h]))/sum(rate(http_server_requests_seconds_count{exception=\"None\",method=\"POST\",outcome=\"SUCCESS\",status=\"202\",uri=\"/eventListener/{version}\"}[1h]))",
"format": "time_series",
+ "hide": false,
+ "interval": "",
"intervalFactor": 1,
- "legendFormat": "HTTP",
+ "legendFormat": "AVG",
"refId": "A"
+ },
+ {
+ "expr": "max(http_server_requests_seconds_max{exception=\"None\",method=\"POST\",outcome=\"SUCCESS\",status=\"202\",uri=\"/eventListener/{version}\"})",
+ "format": "time_series",
+ "hide": false,
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "MAX",
+ "refId": "B"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Rate",
+ "title": "Processing time - eventListener endpoint",
"tooltip": {
"shared": true,
"sort": 0,
@@ -516,8 +527,8 @@
},
"yaxes": [
{
- "decimals": null,
- "format": "ops",
+ "$$hashKey": "object:204",
+ "format": "s",
"label": null,
"logBase": 1,
"max": null,
@@ -525,6 +536,7 @@
"show": true
},
{
+ "$$hashKey": "object:205",
"format": "short",
"label": null,
"logBase": 1,
@@ -539,10 +551,7 @@
}
},
{
- "aliasColors": {
- "HTTP": "#890f02",
- "HTTP - 5xx": "#bf1b00"
- },
+ "aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
@@ -562,7 +571,7 @@
"y": 5
},
"hiddenSeries": false,
- "id": 112,
+ "id": 111,
"legend": {
"avg": false,
"current": true,
@@ -589,10 +598,10 @@
"steppedLine": false,
"targets": [
{
- "expr": "sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\", status=~\"5..\"}[1m]))",
+ "expr": "sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\"}[1m]))",
"format": "time_series",
"intervalFactor": 1,
- "legendFormat": "HTTP - 5xx",
+ "legendFormat": "HTTP",
"refId": "A"
}
],
@@ -600,7 +609,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Errors",
+ "title": "Rate",
"tooltip": {
"shared": true,
"sort": 0,
@@ -616,6 +625,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:297",
"decimals": null,
"format": "ops",
"label": null,
@@ -625,6 +635,7 @@
"show": true
},
{
+ "$$hashKey": "object:298",
"format": "short",
"label": null,
"logBase": 1,
@@ -722,6 +733,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:269",
"format": "s",
"label": null,
"logBase": 1,
@@ -730,6 +742,7 @@
"show": true
},
{
+ "$$hashKey": "object:270",
"format": "short",
"label": null,
"logBase": 1,
@@ -744,12 +757,14 @@
}
},
{
- "aliasColors": {},
+ "aliasColors": {
+ "HTTP": "#890f02",
+ "HTTP - 5xx": "#bf1b00"
+ },
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
- "description": "",
"fieldConfig": {
"defaults": {
"custom": {}
@@ -765,9 +780,8 @@
"y": 5
},
"hiddenSeries": false,
- "id": 119,
+ "id": 112,
"legend": {
- "alignAsTable": false,
"avg": false,
"current": true,
"max": false,
@@ -793,59 +807,25 @@
"steppedLine": false,
"targets": [
{
- "expr": "tomcat_threads_busy_threads{application=\"$application\", instance=\"$instance\"}",
+ "expr": "sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\", status=~\"4..\"}[1m]))",
"format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "TOMCAT - BSY",
+ "interval": "",
+ "intervalFactor": 1,
+ "legendFormat": "HTTP - 4xx",
"refId": "A"
},
{
- "expr": "tomcat_threads_current_threads{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "TOMCAT - CUR",
+ "expr": "sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\", status=~\"5..\"}[1m]))",
+ "interval": "",
+ "legendFormat": "HTTP - 5xx",
"refId": "B"
- },
- {
- "expr": "tomcat_threads_config_max_threads{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "TOMCAT - MAX",
- "refId": "C"
- },
- {
- "expr": "jetty_threads_busy{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "JETTY - BSY",
- "refId": "D"
- },
- {
- "expr": "jetty_threads_current{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "JETTY - CUR",
- "refId": "E"
- },
- {
- "expr": "jetty_threads_config_max{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "JETTY - MAX",
- "refId": "F"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
- "title": "Utilisation",
+ "title": "Errors",
"tooltip": {
"shared": true,
"sort": 0,
@@ -861,7 +841,9 @@
},
"yaxes": [
{
- "format": "short",
+ "$$hashKey": "object:328",
+ "decimals": null,
+ "format": "ops",
"label": null,
"logBase": 1,
"max": null,
@@ -869,6 +851,7 @@
"show": true
},
{
+ "$$hashKey": "object:329",
"format": "short",
"label": null,
"logBase": 1,
@@ -957,6 +940,7 @@
{
"expr": "sum(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", area=\"heap\"})",
"format": "time_series",
+ "interval": "",
"intervalFactor": 2,
"legendFormat": "used",
"metric": "",
@@ -974,6 +958,7 @@
{
"expr": "sum(jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", area=\"heap\"})",
"format": "time_series",
+ "interval": "",
"intervalFactor": 2,
"legendFormat": "max",
"refId": "C",
@@ -1007,6 +992,7 @@
],
"yaxes": [
{
+ "$$hashKey": "object:96",
"format": "bytes",
"label": null,
"logBase": 1,
@@ -1015,6 +1001,7 @@
"show": true
},
{
+ "$$hashKey": "object:97",
"format": "short",
"label": null,
"logBase": 1,
@@ -1139,6 +1126,7 @@
],
"yaxes": [
{
+ "$$hashKey": "object:444",
"format": "bytes",
"label": null,
"logBase": 1,
@@ -1147,6 +1135,7 @@
"show": true
},
{
+ "$$hashKey": "object:445",
"format": "short",
"label": null,
"logBase": 1,
@@ -1271,6 +1260,7 @@
],
"yaxes": [
{
+ "$$hashKey": "object:503",
"format": "bytes",
"label": "",
"logBase": 1,
@@ -1279,143 +1269,7 @@
"show": true
},
{
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 18,
- "y": 13
- },
- "hiddenSeries": false,
- "id": 86,
- "legend": {
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "process_memory_vss_bytes{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": true,
- "intervalFactor": 2,
- "legendFormat": "vss",
- "metric": "",
- "refId": "A",
- "step": 2400
- },
- {
- "expr": "process_memory_rss_bytes{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "rss",
- "refId": "B"
- },
- {
- "expr": "process_memory_swap_bytes{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "swap",
- "refId": "C"
- },
- {
- "expr": "process_memory_rss_bytes{application=\"$application\", instance=\"$instance\"} + process_memory_swap_bytes{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "total",
- "refId": "D"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "JVM Process Memory",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": "",
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
+ "$$hashKey": "object:504",
"format": "short",
"label": null,
"logBase": 1,
@@ -1555,6 +1409,7 @@
],
"yaxes": [
{
+ "$$hashKey": "object:687",
"decimals": 1,
"format": "percentunit",
"label": "",
@@ -1564,6 +1419,7 @@
"show": true
},
{
+ "$$hashKey": "object:688",
"format": "short",
"label": null,
"logBase": 1,
@@ -1678,6 +1534,7 @@
],
"yaxes": [
{
+ "$$hashKey": "object:746",
"decimals": 1,
"format": "short",
"label": "",
@@ -1687,6 +1544,7 @@
"show": true
},
{
+ "$$hashKey": "object:747",
"format": "short",
"label": null,
"logBase": 1,
@@ -1820,6 +1678,7 @@
],
"yaxes": [
{
+ "$$hashKey": "object:805",
"decimals": 0,
"format": "short",
"label": null,
@@ -1829,6 +1688,7 @@
"show": true
},
{
+ "$$hashKey": "object:806",
"format": "short",
"label": null,
"logBase": 1,
@@ -1926,6 +1786,7 @@
},
"yaxes": [
{
+ "$$hashKey": "object:864",
"format": "short",
"label": null,
"logBase": 1,
@@ -1934,6 +1795,7 @@
"show": true
},
{
+ "$$hashKey": "object:865",
"format": "short",
"label": null,
"logBase": 1,
@@ -1946,2409 +1808,6 @@
"align": false,
"alignLevel": null
}
- },
- {
- "aliasColors": {
- "debug": "#1F78C1",
- "error": "#BF1B00",
- "info": "#508642",
- "trace": "#6ED0E0",
- "warn": "#EAB839"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 18,
- "x": 0,
- "y": 28
- },
- "height": "",
- "hiddenSeries": false,
- "id": 91,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "hideEmpty": false,
- "hideZero": false,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": true,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [
- {
- "alias": "error",
- "yaxis": 1
- },
- {
- "alias": "warn",
- "yaxis": 1
- }
- ],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "increase(logback_events_total{application=\"$application\", instance=\"$instance\"}[1m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "{{level}}",
- "metric": "",
- "refId": "A",
- "step": 1200
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "Log Events",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "yaxes": [
- {
- "decimals": 0,
- "format": "opm",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "fillGradient": 0,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 18,
- "y": 28
- },
- "hiddenSeries": false,
- "id": 61,
- "legend": {
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "nullPointMode": "null",
- "options": {
- "dataLinks": []
- },
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "process_files_open_files{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "open",
- "metric": "",
- "refId": "A",
- "step": 2400
- },
- {
- "expr": "process_files_max_files{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "B",
- "step": 2400
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "File Descriptors",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": null,
- "logBase": 10,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 35
- },
- "id": 129,
- "panels": [],
- "repeat": "persistence_counts",
- "title": "JVM Memory Pools (Heap)",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 0,
- "y": 36
- },
- "id": 3,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": "jvm_memory_pool_heap",
- "scopedVars": {
- "jvm_memory_pool_heap": {
- "selected": false,
- "text": "Eden Space",
- "value": "Eden Space"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_heap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 36
- },
- "id": 134,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatIteration": 1591286065121,
- "repeatPanelId": 3,
- "scopedVars": {
- "jvm_memory_pool_heap": {
- "selected": false,
- "text": "Survivor Space",
- "value": "Survivor Space"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_heap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 16,
- "y": 36
- },
- "id": 135,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatIteration": 1591286065121,
- "repeatPanelId": 3,
- "scopedVars": {
- "jvm_memory_pool_heap": {
- "selected": false,
- "text": "Tenured Gen",
- "value": "Tenured Gen"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_heap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 43
- },
- "id": 130,
- "panels": [],
- "repeat": null,
- "title": "JVM Memory Pools (Non-Heap)",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 0,
- "y": 44
- },
- "id": 78,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": "jvm_memory_pool_nonheap",
- "scopedVars": {
- "jvm_memory_pool_nonheap": {
- "selected": false,
- "text": "Metaspace",
- "value": "Metaspace"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_nonheap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 44
- },
- "id": 136,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatIteration": 1591286065121,
- "repeatPanelId": 78,
- "scopedVars": {
- "jvm_memory_pool_nonheap": {
- "selected": false,
- "text": "Compressed Class Space",
- "value": "Compressed Class Space"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_nonheap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 16,
- "y": 44
- },
- "id": 137,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatIteration": 1591286065121,
- "repeatPanelId": 78,
- "scopedVars": {
- "jvm_memory_pool_nonheap": {
- "selected": false,
- "text": "CodeHeap 'profiled nmethods'",
- "value": "CodeHeap 'profiled nmethods'"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_nonheap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 0,
- "y": 51
- },
- "id": 138,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatIteration": 1591286065121,
- "repeatPanelId": 78,
- "scopedVars": {
- "jvm_memory_pool_nonheap": {
- "selected": false,
- "text": "CodeHeap 'non-profiled nmethods'",
- "value": "CodeHeap 'non-profiled nmethods'"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_nonheap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 51
- },
- "id": 139,
- "legend": {
- "alignAsTable": false,
- "avg": false,
- "current": true,
- "max": true,
- "min": false,
- "rightSide": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 1,
- "links": [],
- "maxPerRow": 3,
- "nullPointMode": "null",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "repeat": null,
- "repeatIteration": 1591286065121,
- "repeatPanelId": 78,
- "scopedVars": {
- "jvm_memory_pool_nonheap": {
- "selected": false,
- "text": "CodeHeap 'non-nmethods'",
- "value": "CodeHeap 'non-nmethods'"
- }
- },
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 1800
- },
- {
- "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "commited",
- "metric": "",
- "refId": "B",
- "step": 1800
- },
- {
- "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 2,
- "legendFormat": "max",
- "metric": "",
- "refId": "C",
- "step": 1800
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "$jvm_memory_pool_nonheap",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "mbytes",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 58
- },
- "id": 131,
- "panels": [],
- "repeat": null,
- "title": "Garbage Collection",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 0,
- "y": 59
- },
- "id": 98,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "rate(jvm_gc_pause_seconds_count{application=\"$application\", instance=\"$instance\"}[1m])",
- "format": "time_series",
- "hide": false,
- "intervalFactor": 1,
- "legendFormat": "{{action}} ({{cause}})",
- "refId": "A"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Collections",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "ops",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": "",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 59
- },
- "id": 101,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "rate(jvm_gc_pause_seconds_sum{application=\"$application\", instance=\"$instance\"}[1m])/rate(jvm_gc_pause_seconds_count{application=\"$application\", instance=\"$instance\"}[1m])",
- "format": "time_series",
- "hide": false,
- "instant": false,
- "intervalFactor": 1,
- "legendFormat": "avg {{action}} ({{cause}})",
- "refId": "A"
- },
- {
- "expr": "jvm_gc_pause_seconds_max{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "hide": false,
- "instant": false,
- "intervalFactor": 1,
- "legendFormat": "max {{action}} ({{cause}})",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Pause Durations",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "s",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": "",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 16,
- "y": 59
- },
- "id": 99,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "rate(jvm_gc_memory_allocated_bytes_total{application=\"$application\", instance=\"$instance\"}[1m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "allocated",
- "refId": "A"
- },
- {
- "expr": "rate(jvm_gc_memory_promoted_bytes_total{application=\"$application\", instance=\"$instance\"}[1m])",
- "format": "time_series",
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "promoted",
- "refId": "B"
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Allocated/Promoted",
- "tooltip": {
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "Bps",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": "0",
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 66
- },
- "id": 132,
- "panels": [],
- "repeat": null,
- "title": "Classloading",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 67
- },
- "id": 37,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "jvm_classes_loaded_classes{application=\"$application\", instance=\"$instance\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "loaded",
- "metric": "",
- "refId": "A",
- "step": 1200
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Classes loaded",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 67
- },
- "id": 38,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "delta(jvm_classes_loaded_classes{application=\"$application\",instance=\"$instance\"}[1m])",
- "format": "time_series",
- "hide": false,
- "interval": "",
- "intervalFactor": 1,
- "legendFormat": "delta-1m",
- "metric": "",
- "refId": "A",
- "step": 1200
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Class delta",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "ops",
- "short"
- ],
- "yaxes": [
- {
- "decimals": null,
- "format": "short",
- "label": "",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "collapsed": false,
- "datasource": null,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 74
- },
- "id": 133,
- "panels": [],
- "repeat": null,
- "title": "Buffer Pools",
- "type": "row"
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 0,
- "y": 75
- },
- "id": 33,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "jvm_buffer_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=\"direct\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 2400
- },
- {
- "expr": "jvm_buffer_total_capacity_bytes{application=\"$application\", instance=\"$instance\", id=\"direct\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "capacity",
- "metric": "",
- "refId": "B",
- "step": 2400
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Direct Buffers",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 6,
- "y": 75
- },
- "id": 83,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "jvm_buffer_count_buffers{application=\"$application\", instance=\"$instance\", id=\"direct\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "count",
- "metric": "",
- "refId": "A",
- "step": 2400
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Direct Buffers",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 12,
- "y": 75
- },
- "id": 85,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "jvm_buffer_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=\"mapped\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "used",
- "metric": "",
- "refId": "A",
- "step": 2400
- },
- {
- "expr": "jvm_buffer_total_capacity_bytes{application=\"$application\", instance=\"$instance\", id=\"mapped\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "capacity",
- "metric": "",
- "refId": "B",
- "step": 2400
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Mapped Buffers",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "yaxes": [
- {
- "format": "bytes",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "prometheus",
- "editable": true,
- "error": false,
- "fieldConfig": {
- "defaults": {
- "custom": {}
- },
- "overrides": []
- },
- "fill": 1,
- "grid": {
- "leftLogBase": 1,
- "leftMax": null,
- "leftMin": null,
- "rightLogBase": 1,
- "rightMax": null,
- "rightMin": null
- },
- "gridPos": {
- "h": 7,
- "w": 6,
- "x": 18,
- "y": 75
- },
- "id": 84,
- "legend": {
- "avg": false,
- "current": false,
- "max": false,
- "min": false,
- "show": true,
- "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": false,
- "targets": [
- {
- "expr": "jvm_buffer_count_buffers{application=\"$application\", instance=\"$instance\", id=\"mapped\"}",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "count",
- "metric": "",
- "refId": "A",
- "step": 2400
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeShift": null,
- "title": "Mapped Buffers",
- "tooltip": {
- "msResolution": false,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "x-axis": true,
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "y-axis": true,
- "y_formats": [
- "short",
- "short"
- ],
- "yaxes": [
- {
- "decimals": 0,
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": 0,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ]
}
],
"refresh": "5s",
@@ -4471,13 +1930,12 @@
]
},
"time": {
- "from": "now-15m",
+ "from": "now-1h",
"to": "now"
},
"timepicker": {
"now": true,
"refresh_intervals": [
- "5s",
"10s",
"30s",
"1m",
@@ -4501,7 +1959,7 @@
]
},
"timezone": "browser",
- "title": "JVM (Ves dashboard)",
+ "title": "VES metrics",
"uid": "UnTwUiiGz",
"version": 1
} \ No newline at end of file
diff --git a/performanceTests/environment/k8s/prometheus/configmap.yaml b/performanceTests/environment/k8s/prometheus/configmap.yaml
index d2db2610..f0450b14 100644
--- a/performanceTests/environment/k8s/prometheus/configmap.yaml
+++ b/performanceTests/environment/k8s/prometheus/configmap.yaml
@@ -39,6 +39,12 @@ data:
static_configs:
- targets: ['dcae-ves-collector.onap:8443']
+ - job_name: 'ves-dmaap-simulator'
+ metrics_path: '/actuator/prometheus'
+ scheme: http
+ static_configs:
+ - targets: ['ves-dmaap-simulator.onap:3904']
+
- job_name: 'kubernetes-cadvisor'
scheme: https