Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • HV-VES Client - produces high amount of events for processing.
  • Processing Consumer - consumes events from Kafka topics and creates performance metrics.
  • Offset Consumer - reads Kafka offsets.
  • Prometheus - sends requests for performance metrics to HV-VES, Processing Consumer and Offset Consumer, provides data to Grafana.
  • Grafana - delivers analytics and its visualization.


Info
title

Note:

In the Without DMaaP Kafka part tests the DMaaP/Kafka service was substituted with wurstmeister kafka

Test Setup

To execute performance tests we have to run functions from a shell script cloud-based-performance-test.sh in HV-VES project directory: ~/tools/performance/cloud/

  1. First we have to generate certificates in ~/tools/ssl folder by using gen_certs. This step only needs to be performed during the first test setup (or if the generated files have been deleted).

    Code Block
    titleGenerating certificates
    ./cloud-based-performance-test.sh gen_certs


  2. Then we call setup in order to send certificates to HV-VES, and deploy Consumers, Prometheus, Grafana and create their ConfigMaps.

    Code Block
    titleSetting up the test environment
    ./cloud-based-performance-test.sh setup


  3. After that we have to change HV-VES configuration in Consul KEY/VALUE tab (typically we can access Consul at port 30270 of any Controller node, i.e. http://slave1:30270/ui/#/dc1/kv/dcae-hv-ves-collector/edit).

    Code Block
    titleHV-VES Consul configuration
    {"security.sslDisable": false,
    "logLevel": "INFO",
    "server.listenPort": 6061,
    "server.idleTimeoutSec": 300,
    "cbs.requestIntervalSec": 5,
    "streams_publishes": {
    	"perf3gpp": {
    		"type": "kafka",
    		"aaf_credentials": {
    			"username": "admin",
    			"password": "admin_secret"
    			},
    		"kafka_info": {
    			"bootstrap_servers": "message-router-kafka:9092",
    			"topic_name": "HV_VES_PERF3GPP"
    			}
    		}
    	},
    "security.keys.trustStoreFile": "/etc/ves-hv/ssl/custom/trust.p12",
    "security.keys.keyStoreFile": "/etc/ves-hv/ssl/custom/server.p12",
    "security.keys.trustStorePasswordFile":"/etc/ves-hv/ssl/custom/trust.pass",
    "security.keys.keyStorePasswordFile": "/etc/ves-hv/ssl/custom/server.pass"}


  4. After completing previous steps we can call the start function, which provides Producers and starts the test.

    Code Block
    titlePerforming the test
    ./cloud-based-performance-test.sh start

    For the start function we can use optional arguments:

    --loadshould the test keep defined number of running producers until script interruption (false)
    --containersnumber of producer containers to create (1)
    --properties-filepath to file with benchmark properties (./test.properties)
    --retention-time-minutesretention time of messages in kafka in minutes (60)

    Example invocations of test start:

    Code Block
    titleStarting performance test with single producers creation
    ./cloud-based-performance-test.sh start --containers 10

    The command above starts the test that creates 10 producers which send the amount of messages defined in test.properties once.

    Code Block
    titleStarting performance test with constant messages load
    ./cloud-based-performance-test.sh start --load true --containers 10 --retention-time-minutes 30

    This invocation starts load test, meaning the script will try to keep the amount of running containers at 10 with kafka message retention of 30 minutes.


    The test.properties file contains Producers and Consumers configurations and it allows setting following properties:

    Producer
    hvVesAddressHV-VES address (dcae-hv-ves-collector.onap:6061)
    client.countNumber of clients per pod (1)
    message.sizeSize of a single message in bytes (16384)
    message.countAmount of messages to be send by each client (1000)
    message.intervalInterval between messages in miliseconds (1)
    Certificates paths
    client.cert.pathPath to cert file (/ssl/client.p12)
    client.cert.pass.pathPath to cert's pass file (/ssl/client.pass)
    Consumer
    kafka.bootstrapServersAdress of Kafka service to consume from (message-router-kafka:9092)
    kafka.topicsKafka topics to subscribe to (HV_VES_PERF3GPP)


    Results can be accessed under following links:

  5. To remove created ConfigMaps, Consumers, Producers, Grafana and Prometheus from Kubernetes cluster we call clean function. Note: clean doesn't remove certificates from HV-VES.

    Code Block
    titleCleaning the environment
    ./cloud-based-performance-test.sh clean


In order to restart the test environment (perform steps in following order: 5, 2 and then 3), which means redeploying hv-ves pod, resetting kafka topic and performing setup, we use reboot-test-environment.sh.

Code Block
titleRestarting the test environment
./reboot-test-environment.sh


Results can be accessed under following links:

Environment and Resources

...