1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#!/usr/bin/python
##############################################################################
# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
'''This file realize a function of creating dashboard of stress ping test'''
import ConfigParser
from elasticsearch import Elasticsearch
import json
import os
import utils.logger as log
from utils.parser import Parser as conf_parser
LOG = log.Logger(__name__).getLogger()
config = ConfigParser.ConfigParser()
es = Elasticsearch()
dashboard_path = os.path.join(conf_parser.test_dir,
"posca",
"testcase_dashboard")
dashboard_dir = dashboard_path + "/"
def dashboard_send_data(runner_config, test_data):
global es
es_ip = runner_config['dashboard_ip'].split(':')
es = Elasticsearch([{'host': es_ip[0]}])
res = es.index(index="bottlenecks",
doc_type=test_data["testcase"],
body=test_data["data_body"])
if res['created'] == "False":
LOG.error("date send to kibana have errors ", test_data["data_body"])
def posca_stress_ping(runner_config):
global es
es_ip = runner_config['dashboard_ip'].split(':')
es = Elasticsearch([{'host': es_ip[0]}])
# Create bottlenecks index
with open(dashboard_dir + 'posca_stress_ping_index_pattern.json')\
as index_pattern:
doc = json.load(index_pattern)
res = es.index(
index=".kibana",
doc_type="index-pattern",
id="bottlenecks",
body=doc)
if res['created'] == "True":
LOG.info("bottlenecks index-pattern has created")
else:
LOG.info("bottlenecks index-pattern has existed")
with open(dashboard_dir + 'posca_system_bandwidth_config.json')\
as index_config:
doc = json.load(index_config)
res = es.index(index=".kibana", doc_type="config", id="4.6.1", body=doc)
if res['created'] == "True":
LOG.info("bottlenecks config has created")
else:
LOG.info("bottlenecks config has existed")
# Configure discover panel
with open(dashboard_dir + 'posca_stress_ping_discover.json')\
as index_discover:
doc = json.load(index_discover)
res = es.index(
index=".kibana",
doc_type="search",
id="posca_stress_ping",
body=doc)
if res['created'] == "True":
LOG.info("posca_stress_ping search has created")
else:
LOG.info("posca_stress_ping search has existed")
# Create testing data in line graph
with open(dashboard_dir + 'posca_stress_ping_histogram.json')\
as line_data:
doc = json.load(line_data)
res = es.index(
index=".kibana",
doc_type="visualization",
id="posca_stress_ping_histogram",
body=doc)
if res['created'] == "True":
LOG.info("posca_stress_ping visualization has created")
else:
LOG.info("posca_stress_ping visualization has existed")
# Create comparison results in line chart
with open(dashboard_dir + 'posca_stress_ping_table.json')\
as line_char:
doc = json.load(line_char)
res = es.index(
index=".kibana",
doc_type="visualization",
id="posca_stress_ping_table",
body=doc)
if res['created'] == "True":
LOG.info("posca_stress_ping visualization has created")
else:
LOG.info("posca_stress_ping visualization has existed")
# Create dashboard
with open(dashboard_dir + 'posca_stress_ping_dashboard.json')\
as dashboard:
doc = json.load(dashboard)
res = es.index(
index=".kibana",
doc_type="dashboard",
id="posca_stress_ping",
body=doc)
if res['created'] == "True":
LOG.info("posca_stress_ping dashboard has created")
else:
LOG.info("posca_stress_ping dashboard has existed")
|