| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| import dk_public as dp |
| import time |
|
|
| class main: |
|
|
| def get_status(self,args): |
| """ |
| start_time |
| stop_time |
| :param args: |
| :return: |
| """ |
| data = dict() |
| |
| data['container_count'] = self.__get_container_count(args) |
| |
| data['image_info'] = dp.sql("image_infos").where("time>=? and time<=?",(args.start_time,args.stop_time)).select() |
| |
| data['host'] = len(dp.sql('hosts').select()) |
| |
| data['container_top'] = {"cpu":self.__get_cpu_avg(),"mem":self.__get_mem_avg()} |
| return data |
|
|
| def __get_container_count(self,args): |
| count = dp.sql('container_count').where("time>=? and time<=?", (args.start_time, args.stop_time)).select() |
| if not count: |
| return 0 |
| return count[-1] |
|
|
| def __get_mem_avg(self): |
| now = int(time.time()) |
| start_time = now - 3600 |
| data = dp.sql("mem_stats").where("time>=? and time<=?",(start_time,now)).select() |
| containers = list() |
| info = dict() |
| |
| for d in data: |
| containers.append(d['container_id']) |
| |
| containers = set(containers) |
| for c in containers: |
| num = 0 |
| usage = 0 |
| for d in data: |
| if d['container_id'] == c: |
| num += 1 |
| usage += float(d['usage']) |
| if num != 0: |
| info[c] = usage / num |
| return info |
|
|
| def __get_cpu_avg(self): |
| now = int(time.time()) |
| start_time = now - 3600 |
| data = dp.sql("cpu_stats").where("time>=? and time<=?",(start_time,now)).select() |
| containers = list() |
| info = dict() |
| |
| for d in data: |
| containers.append(d['container_id']) |
| |
| containers = set(containers) |
| for c in containers: |
| num = 0 |
| cpu_usage = 0 |
| for d in data: |
| if d['container_id'] == c: |
| num += 1 |
| cpu_usage += float(0 if d['cpu_usage'] == '0.0' else d['cpu_usage']) |
| if num != 0: |
| info[c] = cpu_usage / num |
| return info |