summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/envs/data_publish.py47
-rwxr-xr-x[-rw-r--r--]ci/envs/packet_forwarding.sh10
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