From 070df31c821a397796047c0a59474ba16ec1c7dd Mon Sep 17 00:00:00 2001 From: kalyanreddy Date: Wed, 5 Apr 2017 19:01:26 +0530 Subject: [PATCH] Publishing packet forwarding test cases results. This patch includes scripts to push packet forwarding test results in to local influxdb and then publish on to local grafana dashboard. Change-Id: I2f93b13730c0a791bd1e7530e0349cd52a649b58 Co-Authored by:Srinivas Signed-off-by: Gundarapu Kalyan Reddy --- ci/envs/data_publish.py | 47 ++++++++++++++++++++++++++++++++++++++++++++ ci/envs/packet_forwarding.sh | 10 ++++++++++ 2 files changed, 57 insertions(+) create mode 100755 ci/envs/data_publish.py mode change 100644 => 100755 ci/envs/packet_forwarding.sh 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 old mode 100644 new mode 100755 index 643957a2d..c93bb2751 --- 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 -- 2.16.6