Exemple #1
0
 def test_query_dispatcher_not_influxdb(self, mock_parser):
     mock_parser.ConfigParser().get.return_value = 'file'
     # reset exception to avoid
     # TypeError: catching classes that do not inherit from BaseException
     mock_parser.NoOptionError = ConfigParser.NoOptionError
     try:
         sql = 'select * form tasklist'
         influx.query(sql)
     except Exception as e:
         self.assertIsInstance(e, RuntimeError)
Exemple #2
0
 def _get_tasks(self):
     task_cmd = "select * from \"%s\" where task_id= '%s'"
     task_query = task_cmd % (self.yaml_name, self.task_id)
     query_exec = influx.query(task_query)
     if query_exec:
         return query_exec
     else:
         raise KeyError("Task ID or Test case not found..")
Exemple #3
0
 def _get_fieldkeys(self):
     fieldkeys_cmd = "show field keys from \"%s\""
     fieldkeys_query = fieldkeys_cmd % (self.yaml_name)
     query_exec = influx.query(fieldkeys_query)
     if query_exec:
         return query_exec
     else:
         raise KeyError("Task ID or Test case not found..")
Exemple #4
0
 def _get_task_end_time(self):
     # NOTE(elfoley): when using select first() and select last() for the
     # DB query, the timestamp returned is 0, so later queries try to
     # return metrics from 1970
     cmd = "select * from \"%s\" where task_id='%s' ORDER BY time DESC limit 1"
     task_query = cmd % (self.yaml_name, self.task_id)
     query_exec = influx.query(task_query)
     end_time = query_exec[0]['time']
     return end_time
Exemple #5
0
    def _get_task_start_time(self):
        # The start time should come from the task or the metadata table.
        # The first entry into influx for a task will be AFTER the first TC
        # iteration
        cmd = "select * from \"%s\" where task_id='%s' ORDER BY time ASC limit 1"
        task_query = cmd % (self.yaml_name, self.task_id)

        query_exec = influx.query(task_query)
        start_time = query_exec[0]['time']
        return start_time
Exemple #6
0
    def _get_baro_metrics(self):
        start_time = self._get_task_start_time()
        end_time = self._get_task_end_time()
        metric_list = [
            "cpu_value", "cpufreq_value", "intel_pmu_value", "virt_value",
            "memory_value"
        ]
        metrics = {}
        times = []
        query_exec = {}
        for metric in metric_list:
            cmd = "select * from \"%s\" where time >= '%s' and time <= '%s'"
            query = cmd % (metric, start_time, end_time)
            query_exec[metric] = influx.query(query, db='collectd')
            print("query_exec: {}".format(query_exec))

        for metric in query_exec:
            print("metric in query_exec: {}".format(metric))
            met_values = query_exec[metric]
            print("met_values: {}".format(met_values))
            for x in met_values:
                x['name'] = metric
                metric_name = str('.'.join([
                    x[f] for f in
                    ['host', 'name', 'type', 'type_instance', 'instance']
                    if x.get(f)
                ]))

                if not metrics.get(metric_name):
                    metrics[metric_name] = {}
                metric_time = self._get_trimmed_timestamp(x['time'])
                times.append(metric_time)
                time = metric_time
                metrics[metric_name][time] = x['value']

        times = sorted(list(set(times)))

        metrics['Timestamp'] = times
        print("metrics: {}".format(metrics))
        return metrics
Exemple #7
0
 def get_data(testcase):
     query_template = "select * from %s where task_id='%s'"
     query_sql = query_template % (testcase, task_id)
     data = common_utils.translate_to_str(influx_utils.query(query_sql))
     return data