diff options
-rwxr-xr-x | ci/envs/data_publish.py | 47 | ||||
-rwxr-xr-x[-rw-r--r--] | ci/envs/packet_forwarding.sh | 10 |
2 files changed, 57 insertions, 0 deletions
diff --git a/ci/envs/data_publish.py b/ci/envs/data_publish.py new file mode 100755 index 000000000..67b3054e7 --- /dev/null +++ b/ci/envs/data_publish.py @@ -0,0 +1,47 @@ +from __future__ import print_function +import glob, os +import csv +import json +import sys +import ast +import subprocess +from influxdb import InfluxDBClient + +time_stamp=sys.argv[1] +test_type=sys.argv[2] +results_dir=sys.argv[3] + +def publish_results(testtype): + for file in glob.glob("*.csv"): + print(file) + f = open( file, 'r' ) + reader = csv.DictReader( f ) + result = json.dumps( [ row for row in reader ] ) + result = ast.literal_eval(result) + print(result) + + for i in result: + test = i['id'] + '_' +testtype + json_body = [ + { + "measurement": test, + "tags": { + "id": i['id'], + "type": i['type'], + "packet_size": i['packet_size'] + }, + "time": time_stamp, + "fields": { + "min_value": i['min_latency_ns'], + "avg_value": i['avg_latency_ns'], + "max_value": i['max_latency_ns'] + } + } + ] + print(time_stamp) + client = InfluxDBClient('104.197.68.199', 8086, 'opnfv', '0pnfv2015', 'yardstick') + client.switch_database('yardstick') + client.write_points(json_body) + +os.chdir(results_dir) +publish_results(test_type) diff --git a/ci/envs/packet_forwarding.sh b/ci/envs/packet_forwarding.sh index 643957a2d..c93bb2751 100644..100755 --- a/ci/envs/packet_forwarding.sh +++ b/ci/envs/packet_forwarding.sh @@ -77,6 +77,13 @@ function print_results() { done } +function publish_results() { + test_type=$1 + results_dir=${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR}/results* + time_stamp=$(date -u +"%Y-%m-%d-%H-%M-%S") + ( cd /root/workspace/scripts ; python data_publish.py $time_stamp $test_type $results_dir ) +} + function execute_vsperf() { # figure out list of TCs and execution parameters case $2 in @@ -148,6 +155,9 @@ function execute_vsperf() { mkdir -p ${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR} [ -f "$LOG_FILE" ] && mv "${LOG_FILE}" "${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR}" &> /dev/null [ -d "$RES_DIR" ] && mv "$RES_DIR" "${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR}" &> /dev/null + + # Publish test cases results to Grafana Dashboard + publish_results $1 } #Install vsperf and set up the environment |