示例#1
0
 def run_query(self, query):
     database = self.database
     result = {}
     data = new_execute_ash_return_json(query)
     result[database.alias] = data2result(
         data, PERFORMANCE_DICT.get(database.db_type))
     return result
示例#2
0
 def get_history_data_by_range(self,
                               begin_time,
                               end_time,
                               instance_id=None):
     """
     
     :param instance_id:  id
     :param begin_time: 
     :param end_time: 
     
     :return:
     """
     database = self.database
     performance_name = enum2str(PERFORMANCE_DICT.get(database.db_type))
     group_by_clause = "group by database_id, name_id, date_trunc('minute', created_at)" if int(
         end_time
     ) - int(
         begin_time
     ) <= 604800 else "group by database_id, name_id, date_trunc('hour', created_at)"
     filter_by_clause = f'''created_at between to_timestamp({begin_time}) and to_timestamp({end_time})'''
     query = f'''select name_id, avg(value), cast(extract(epoch from min(created_at)) as bigint)*1000 from monitor_performance 
             where database_id = '{(database.id)}' and {filter_by_clause}
             and name_id in ({performance_name}) {group_by_clause} order by name_id, 3'''
     result = {}
     data = new_execute_ash_return_json(query)
     result = data2result(data, PERFORMANCE_DICT.get(database.db_type))
     return result
示例#3
0
 def get_realtime_data(self):
     database = self.database
     result = {}
     query = (
         "select name_id, avg(value), cast(extract(epoch from created_at) as bigint)*1000  from monitor_performance where database_id = '{}'  and created_at = timestamp 'now' - EXTRACT(SECOND FROM TIMESTAMP 'now') * interval '1 seconds' and name_id in ({}) group by database_id,name_id,created_at"
     ).format(database.id, enum2str(SQLServerPerformanceType))
     data_dic = new_execute_performance_return_json(query)
     result[database.alias] = data2result(data_dic,
                                          SQLServerPerformanceType,
                                          is_open=False)
     return result
示例#4
0
 def get_realtime_data(self):
     database = self.database
     result = {}
     query = (
         "with max_t as (select max(created_at) t from monitor_performance where database_id = '{}') select name_id, avg(value), cast(extract(epoch from created_at) as bigint)*1000 from monitor_performance, max_t where database_id = '{}' and created_at = t and name_id in ({}) group by database_id,name_id,created_at"
     ).format(database.id, database.id, enum2str(DB2PerformanceType))
     data_dic = new_execute_performance_return_json(query)
     result[database.alias] = data2result(data_dic,
                                          DB2PerformanceType,
                                          is_open=False)
     return result