Sfoglia il codice sorgente

对 guest 性能统计模型进行了轻量级重构

James Iter 8 anni fa
parent
commit
32d91a5b72

+ 29 - 29
api/performance.py → api/guest_performance.py

@@ -7,7 +7,7 @@ import json
 import jimit as ji
 
 from api.base import Base
-from models import CPUMemory, Traffic, DiskIO, Utils, Rules
+from models import GuestCPUMemory, GuestTraffic, GuestDiskIO, Utils, Rules
 
 
 __author__ = 'James Iter'
@@ -17,36 +17,36 @@ __copyright__ = '(c) 2017 by James Iter.'
 
 
 blueprint = Blueprint(
-    'api_performance',
+    'api_guest_performance',
     __name__,
-    url_prefix='/api/performance'
+    url_prefix='/api/guest_performance'
 )
 
 blueprints = Blueprint(
-    'api_performances',
+    'api_guest_performances',
     __name__,
-    url_prefix='/api/performances'
+    url_prefix='/api/guest_performances'
 )
 
 
-cpu_memory = Base(the_class=CPUMemory, the_blueprint=blueprint, the_blueprints=blueprints)
-traffic = Base(the_class=Traffic, the_blueprint=blueprint, the_blueprints=blueprints)
-disk_io = Base(the_class=DiskIO, the_blueprint=blueprint, the_blueprints=blueprints)
+guest_cpu_memory = Base(the_class=GuestCPUMemory, the_blueprint=blueprint, the_blueprints=blueprints)
+guest_traffic = Base(the_class=GuestTraffic, the_blueprint=blueprint, the_blueprints=blueprints)
+guest_disk_io = Base(the_class=GuestDiskIO, the_blueprint=blueprint, the_blueprints=blueprints)
 
 
 @Utils.dumps2response
 def r_cpu_memory_get_by_filter():
-    return cpu_memory.get_by_filter()
+    return guest_cpu_memory.get_by_filter()
 
 
 @Utils.dumps2response
 def r_traffic_get_by_filter():
-    return traffic.get_by_filter()
+    return guest_traffic.get_by_filter()
 
 
 @Utils.dumps2response
 def r_disk_io_get_by_filter():
-    return disk_io.get_by_filter()
+    return guest_disk_io.get_by_filter()
 
 
 def get_performance_data(uuid, uuid_field, the_class=None, granularity='hour'):
@@ -144,62 +144,62 @@ def get_performance_data(uuid, uuid_field, the_class=None, granularity='hour'):
 
 @Utils.dumps2response
 def r_cpu_memory_last_hour(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=CPUMemory, granularity='hour')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestCPUMemory, granularity='hour')
 
 
 @Utils.dumps2response
 def r_cpu_memory_last_six_hours(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=CPUMemory, granularity='six_hours')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestCPUMemory, granularity='six_hours')
 
 
 @Utils.dumps2response
 def r_cpu_memory_last_day(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=CPUMemory, granularity='day')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestCPUMemory, granularity='day')
 
 
 @Utils.dumps2response
 def r_cpu_memory_last_seven_days(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=CPUMemory, granularity='seven_days')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestCPUMemory, granularity='seven_days')
 
 
 @Utils.dumps2response
 def r_traffic_last_hour(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=Traffic, granularity='hour')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestTraffic, granularity='hour')
 
 
 @Utils.dumps2response
 def r_traffic_last_six_hours(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=Traffic, granularity='six_hours')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestTraffic, granularity='six_hours')
 
 
 @Utils.dumps2response
 def r_traffic_last_day(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=Traffic, granularity='day')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestTraffic, granularity='day')
 
 
 @Utils.dumps2response
 def r_traffic_last_seven_days(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=Traffic, granularity='seven_days')
+    return get_performance_data(uuid=uuid, uuid_field='guest_uuid', the_class=GuestTraffic, granularity='seven_days')
 
 
 @Utils.dumps2response
 def r_disk_io_last_hour(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=DiskIO, granularity='hour')
+    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=GuestDiskIO, granularity='hour')
 
 
 @Utils.dumps2response
 def r_disk_io_last_six_hours(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=DiskIO, granularity='six_hours')
+    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=GuestDiskIO, granularity='six_hours')
 
 
 @Utils.dumps2response
 def r_disk_io_last_day(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=DiskIO, granularity='day')
+    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=GuestDiskIO, granularity='day')
 
 
 @Utils.dumps2response
 def r_disk_io_last_seven_days(uuid):
-    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=DiskIO, granularity='seven_days')
+    return get_performance_data(uuid=uuid, uuid_field='disk_uuid', the_class=GuestDiskIO, granularity='seven_days')
 
 
 @Utils.dumps2response
@@ -229,7 +229,7 @@ def r_current_top_10():
     filter_str = ';'.join([':'.join(['timestamp', 'gt', start_ts.__str__()]),
                            ':'.join(['timestamp', 'lt', end_ts.__str__()])])
 
-    rows, _ = CPUMemory.get_by_filter(limit=limit, filter_str=filter_str)
+    rows, _ = GuestCPUMemory.get_by_filter(limit=limit, filter_str=filter_str)
     rows.sort(key=lambda k: k['cpu_load'], reverse=True)
 
     effective_range = length
@@ -242,7 +242,7 @@ def r_current_top_10():
 
         ret['data']['cpu_load'].append(rows[i])
 
-    rows, _ = DiskIO.get_by_filter(limit=limit, filter_str=filter_str)
+    rows, _ = GuestDiskIO.get_by_filter(limit=limit, filter_str=filter_str)
     for i in range(rows.__len__()):
         rows[i]['rw_bytes'] = rows[i]['rd_bytes'] + rows[i]['wr_bytes']
         rows[i]['rw_req'] = rows[i]['rd_req'] + rows[i]['wr_req']
@@ -267,7 +267,7 @@ def r_current_top_10():
 
         ret['data']['rw_req'].append(rows[i])
 
-    rows, _ = Traffic.get_by_filter(limit=limit, filter_str=filter_str)
+    rows, _ = GuestTraffic.get_by_filter(limit=limit, filter_str=filter_str)
     for i in range(rows.__len__()):
         rows[i]['rt_bytes'] = rows[i]['rx_bytes'] + rows[i]['tx_bytes']
         rows[i]['rt_packets'] = rows[i]['rx_packets'] + rows[i]['tx_packets']
@@ -323,7 +323,7 @@ def r_last_the_range_minutes_top_10(_range):
 
     # cpu 负载
     guests_uuid_mapping = dict()
-    rows, _ = CPUMemory.get_by_filter(limit=limit, filter_str=filter_str)
+    rows, _ = GuestCPUMemory.get_by_filter(limit=limit, filter_str=filter_str)
     for row in rows:
         if row['guest_uuid'] not in guests_uuid_mapping:
             guests_uuid_mapping[row['guest_uuid']] = {'cpu_load': 0, 'count': 0}
@@ -350,7 +350,7 @@ def r_last_the_range_minutes_top_10(_range):
 
     # 磁盘使用统计
     guests_uuid_mapping.clear()
-    rows, _ = DiskIO.get_by_filter(limit=limit, filter_str=filter_str)
+    rows, _ = GuestDiskIO.get_by_filter(limit=limit, filter_str=filter_str)
     for row in rows:
         if row['disk_uuid'] not in guests_uuid_mapping:
             guests_uuid_mapping[row['disk_uuid']] = {'rw_bytes': 0, 'rw_req': 0}
@@ -379,7 +379,7 @@ def r_last_the_range_minutes_top_10(_range):
 
     # 网络流量
     guests_uuid_mapping.clear()
-    rows, _ = Traffic.get_by_filter(limit=limit, filter_str=filter_str)
+    rows, _ = GuestTraffic.get_by_filter(limit=limit, filter_str=filter_str)
     for row in rows:
         if row['guest_uuid'] not in guests_uuid_mapping:
             guests_uuid_mapping[row['guest_uuid']] = {'rt_bytes': 0, 'rt_packets': 0}

+ 41 - 38
api_route_table.py

@@ -12,7 +12,7 @@ from api import operate_rule
 from api import os_template
 from api import log
 from api import host
-from api import performance
+from api import guest_performance
 from api import host_performance
 
 
@@ -111,59 +111,62 @@ add_rule_api(host.blueprints, '/<nodes_id>', api_func='host.r_delete', methods=[
 add_rule_api(host.blueprints, '/<hosts_name>/<random>', api_func='host.r_nonrandom', methods=['PUT'])
 
 # Guest 性能查询
-add_rule_api(performance.blueprint, '/cpu_memory', api_func='performance.r_cpu_memory_get_by_filter', methods=['GET'])
-add_rule_api(performance.blueprint, '/traffic', api_func='performance.r_traffic_get_by_filter', methods=['GET'])
-add_rule_api(performance.blueprint, '/disk_io', api_func='performance.r_disk_io_get_by_filter', methods=['GET'])
-add_rule_api(performance.blueprint, '/cpu_memory/last_hour/<uuid>',
-             api_func='performance.r_cpu_memory_last_hour', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/cpu_memory',
+             api_func='guest_performance.r_cpu_memory_get_by_filter', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/traffic',
+             api_func='guest_performance.r_traffic_get_by_filter', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/disk_io',
+             api_func='guest_performance.r_disk_io_get_by_filter', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/cpu_memory/last_hour/<uuid>',
+             api_func='guest_performance.r_cpu_memory_last_hour', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/cpu_memory/last_six_hours/<uuid>',
-             api_func='performance.r_cpu_memory_last_six_hours', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/cpu_memory/last_six_hours/<uuid>',
+             api_func='guest_performance.r_cpu_memory_last_six_hours', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/cpu_memory/last_day/<uuid>',
-             api_func='performance.r_cpu_memory_last_day', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/cpu_memory/last_day/<uuid>',
+             api_func='guest_performance.r_cpu_memory_last_day', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/cpu_memory/last_seven_days/<uuid>',
-             api_func='performance.r_cpu_memory_last_seven_days', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/cpu_memory/last_seven_days/<uuid>',
+             api_func='guest_performance.r_cpu_memory_last_seven_days', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/traffic/last_hour/<uuid>',
-             api_func='performance.r_traffic_last_hour', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/traffic/last_hour/<uuid>',
+             api_func='guest_performance.r_traffic_last_hour', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/traffic/last_six_hours/<uuid>',
-             api_func='performance.r_traffic_last_six_hours', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/traffic/last_six_hours/<uuid>',
+             api_func='guest_performance.r_traffic_last_six_hours', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/traffic/last_day/<uuid>',
-             api_func='performance.r_traffic_last_day', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/traffic/last_day/<uuid>',
+             api_func='guest_performance.r_traffic_last_day', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/traffic/last_seven_days/<uuid>',
-             api_func='performance.r_traffic_last_seven_days', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/traffic/last_seven_days/<uuid>',
+             api_func='guest_performance.r_traffic_last_seven_days', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/disk_io/last_hour/<uuid>',
-             api_func='performance.r_disk_io_last_hour', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/disk_io/last_hour/<uuid>',
+             api_func='guest_performance.r_disk_io_last_hour', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/disk_io/last_six_hours/<uuid>',
-             api_func='performance.r_disk_io_last_six_hours', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/disk_io/last_six_hours/<uuid>',
+             api_func='guest_performance.r_disk_io_last_six_hours', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/disk_io/last_day/<uuid>',
-             api_func='performance.r_disk_io_last_day', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/disk_io/last_day/<uuid>',
+             api_func='guest_performance.r_disk_io_last_day', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/disk_io/last_seven_days/<uuid>',
-             api_func='performance.r_disk_io_last_seven_days', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/disk_io/last_seven_days/<uuid>',
+             api_func='guest_performance.r_disk_io_last_seven_days', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/_current_top_10',
-             api_func='performance.r_current_top_10', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/_current_top_10',
+             api_func='guest_performance.r_current_top_10', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/_last_10_minutes_top_10',
-             api_func='performance.r_last_10_minutes_top_10', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/_last_10_minutes_top_10',
+             api_func='guest_performance.r_last_10_minutes_top_10', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/_last_hour_top_10',
-             api_func='performance.r_last_hour_top_10', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/_last_hour_top_10',
+             api_func='guest_performance.r_last_hour_top_10', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/_last_six_hours_top_10',
-             api_func='performance.r_last_six_hours_top_10', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/_last_six_hours_top_10',
+             api_func='guest_performance.r_last_six_hours_top_10', methods=['GET'])
 
-add_rule_api(performance.blueprint, '/_last_day_top_10',
-             api_func='performance.r_last_day_top_10', methods=['GET'])
+add_rule_api(guest_performance.blueprint, '/_last_day_top_10',
+             api_func='guest_performance.r_last_day_top_10', methods=['GET'])
 
 # Host 性能查询
 add_rule_api(host_performance.blueprint, '/cpu_memory', api_func='host_performance.r_cpu_memory_get_by_filter',

+ 2 - 2
main.py

@@ -40,8 +40,8 @@ from api.log import blueprint as log_blueprint
 from api.log import blueprints as log_blueprints
 from api.host import blueprint as host_blueprint
 from api.host import blueprints as host_blueprints
-from api.performance import blueprint as performance_blueprint
-from api.performance import blueprints as performance_blueprints
+from api.guest_performance import blueprint as performance_blueprint
+from api.guest_performance import blueprints as performance_blueprints
 from api.host_performance import blueprint as host_performance_blueprint
 from api.host_performance import blueprints as host_performance_blueprints
 

+ 21 - 21
misc/init.sql

@@ -192,7 +192,7 @@ CREATE TABLE IF NOT EXISTS log(
 ALTER TABLE log ADD INDEX (host);
 
 
-CREATE TABLE IF NOT EXISTS cpu_memory(
+CREATE TABLE IF NOT EXISTS guest_cpu_memory(
     id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
     guest_uuid CHAR(36) NOT NULL,
     cpu_load INT UNSIGNED NOT NULL,
@@ -203,13 +203,13 @@ CREATE TABLE IF NOT EXISTS cpu_memory(
     ENGINE=Innodb
     DEFAULT CHARSET=utf8;
 
-ALTER TABLE cpu_memory ADD INDEX (guest_uuid);
-ALTER TABLE cpu_memory ADD INDEX (cpu_load);
-ALTER TABLE cpu_memory ADD INDEX (timestamp);
-ALTER TABLE cpu_memory ADD INDEX (guest_uuid, timestamp);
+ALTER TABLE guest_cpu_memory ADD INDEX (guest_uuid);
+ALTER TABLE guest_cpu_memory ADD INDEX (cpu_load);
+ALTER TABLE guest_cpu_memory ADD INDEX (timestamp);
+ALTER TABLE guest_cpu_memory ADD INDEX (guest_uuid, timestamp);
 
 
-CREATE TABLE IF NOT EXISTS traffic(
+CREATE TABLE IF NOT EXISTS guest_traffic(
     id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
     guest_uuid CHAR(36) NOT NULL,
     name VARCHAR(36) NOT NULL,
@@ -226,16 +226,16 @@ CREATE TABLE IF NOT EXISTS traffic(
     ENGINE=Innodb
     DEFAULT CHARSET=utf8;
 
-ALTER TABLE traffic ADD INDEX (guest_uuid);
-ALTER TABLE traffic ADD INDEX (rx_bytes);
-ALTER TABLE traffic ADD INDEX (rx_packets);
-ALTER TABLE traffic ADD INDEX (tx_bytes);
-ALTER TABLE traffic ADD INDEX (tx_packets);
-ALTER TABLE traffic ADD INDEX (timestamp);
-ALTER TABLE traffic ADD INDEX (guest_uuid, timestamp);
+ALTER TABLE guest_traffic ADD INDEX (guest_uuid);
+ALTER TABLE guest_traffic ADD INDEX (rx_bytes);
+ALTER TABLE guest_traffic ADD INDEX (rx_packets);
+ALTER TABLE guest_traffic ADD INDEX (tx_bytes);
+ALTER TABLE guest_traffic ADD INDEX (tx_packets);
+ALTER TABLE guest_traffic ADD INDEX (timestamp);
+ALTER TABLE guest_traffic ADD INDEX (guest_uuid, timestamp);
 
 
-CREATE TABLE IF NOT EXISTS disk_io(
+CREATE TABLE IF NOT EXISTS guest_disk_io(
     id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
     disk_uuid CHAR(36) NOT NULL,
     rd_req BIGINT UNSIGNED NOT NULL,
@@ -247,13 +247,13 @@ CREATE TABLE IF NOT EXISTS disk_io(
     ENGINE=Innodb
     DEFAULT CHARSET=utf8;
 
-ALTER TABLE disk_io ADD INDEX (disk_uuid);
-ALTER TABLE disk_io ADD INDEX (rd_req);
-ALTER TABLE disk_io ADD INDEX (rd_bytes);
-ALTER TABLE disk_io ADD INDEX (wr_req);
-ALTER TABLE disk_io ADD INDEX (wr_bytes);
-ALTER TABLE disk_io ADD INDEX (timestamp);
-ALTER TABLE disk_io ADD INDEX (disk_uuid, timestamp);
+ALTER TABLE guest_disk_io ADD INDEX (disk_uuid);
+ALTER TABLE guest_disk_io ADD INDEX (rd_req);
+ALTER TABLE guest_disk_io ADD INDEX (rd_bytes);
+ALTER TABLE guest_disk_io ADD INDEX (wr_req);
+ALTER TABLE guest_disk_io ADD INDEX (wr_bytes);
+ALTER TABLE guest_disk_io ADD INDEX (timestamp);
+ALTER TABLE guest_disk_io ADD INDEX (disk_uuid, timestamp);
 
 
 CREATE TABLE IF NOT EXISTS host_cpu_memory(

+ 6 - 0
misc/v0.1_to_v0.2/update.sql

@@ -73,3 +73,9 @@ ALTER TABLE disk ADD INDEX (node_id);
 -- UPDATE host_cpu_memory SET node_id=new_node_id WHERE node_id=old_node_id;
 -- UPDATE host_traffic SET node_id=new_node_id WHERE node_id=old_node_id;
 -- UPDATE host_disk_usage_io SET node_id=new_node_id WHERE node_id=old_node_id;
+
+
+-- guest 性能统计表更名
+ALTER TABLE cpu_memory RENAME TO guest_cpu_memory;
+ALTER TABLE traffic RENAME TO guest_traffic;
+ALTER TABLE disk_io RENAME TO guest_disk_io;

+ 5 - 5
models/__init__.py

@@ -64,10 +64,10 @@ from log import (
     Log
 )
 
-from performance import (
-    CPUMemory,
-    Traffic,
-    DiskIO
+from guest_performance import (
+    GuestCPUMemory,
+    GuestTraffic,
+    GuestDiskIO
 )
 
 from host import (
@@ -94,7 +94,7 @@ __copyright__ = '(c) 2017 by James Iter.'
 __all__ = [
     'Rules', 'Utils', 'Init', 'Database', 'FilterFieldType', 'Filter', 'EmitKind', 'GuestState', 'DiskState', 'OSType',
     'LogLevel', 'ORM', 'User', 'Config', 'Guest', 'Disk', 'BootJob', 'OperateRule', 'OSTemplate', 'GuestXML', 'Log',
-    'EventProcessor', 'ResponseState', 'CPUMemory', 'Traffic', 'DiskIO', 'HostCPUMemory', 'HostTraffic',
+    'EventProcessor', 'ResponseState', 'GuestCPUMemory', 'GuestTraffic', 'GuestDiskIO', 'HostCPUMemory', 'HostTraffic',
     'HostDiskUsageIO', 'Host'
 ]
 

+ 38 - 38
models/event_processor.py

@@ -8,7 +8,7 @@ import time
 from IPy import IP
 import jimit as ji
 
-from models import Database as db, Config, CPUMemory, Traffic, DiskIO
+from models import Database as db, Config, GuestCPUMemory, GuestTraffic, GuestDiskIO
 from models import Guest
 from models import Disk
 from models import Log
@@ -17,7 +17,7 @@ from models import EmitKind
 from models import ResponseState, GuestState, DiskState
 from models.guest import GuestMigrateInfo
 from models.initialize import app, logger
-from models.status import CollectionPerformanceDataKind, HostCollectionPerformanceDataKind
+from models.status import GuestCollectionPerformanceDataKind, HostCollectionPerformanceDataKind
 from models import HostCPUMemory, HostTraffic, HostDiskUsageIO
 
 
@@ -35,9 +35,9 @@ class EventProcessor(object):
     disk = Disk()
     config = Config()
     config.id = 1
-    cpu_memory = CPUMemory()
-    traffic = Traffic()
-    disk_io = DiskIO()
+    guest_cpu_memory = GuestCPUMemory()
+    guest_traffic = GuestTraffic()
+    guest_disk_io = GuestDiskIO()
     host_cpu_memory = HostCPUMemory()
     host_traffic = HostTraffic()
     host_disk_usage_io = HostDiskUsageIO()
@@ -241,45 +241,45 @@ class EventProcessor(object):
             pass
 
     @classmethod
-    def collection_performance_processor(cls):
+    def guest_collection_performance_processor(cls):
         data_kind = cls.message['type']
         timestamp = ji.Common.ts()
         timestamp -= (timestamp % 60)
         data = cls.message['message']['data']
 
-        if data_kind == CollectionPerformanceDataKind.cpu_memory.value:
+        if data_kind == GuestCollectionPerformanceDataKind.cpu_memory.value:
             for item in data:
-                cls.cpu_memory.guest_uuid = item['guest_uuid']
-                cls.cpu_memory.cpu_load = item['cpu_load']
-                cls.cpu_memory.memory_available = item['memory_available']
-                cls.cpu_memory.memory_unused = item['memory_unused']
-                cls.cpu_memory.timestamp = timestamp
-                cls.cpu_memory.create()
-
-        if data_kind == CollectionPerformanceDataKind.traffic.value:
+                cls.guest_cpu_memory.guest_uuid = item['guest_uuid']
+                cls.guest_cpu_memory.cpu_load = item['cpu_load']
+                cls.guest_cpu_memory.memory_available = item['memory_available']
+                cls.guest_cpu_memory.memory_unused = item['memory_unused']
+                cls.guest_cpu_memory.timestamp = timestamp
+                cls.guest_cpu_memory.create()
+
+        if data_kind == GuestCollectionPerformanceDataKind.traffic.value:
             for item in data:
-                cls.traffic.guest_uuid = item['guest_uuid']
-                cls.traffic.name = item['name']
-                cls.traffic.rx_bytes = item['rx_bytes']
-                cls.traffic.rx_packets = item['rx_packets']
-                cls.traffic.rx_errs = item['rx_errs']
-                cls.traffic.rx_drop = item['rx_drop']
-                cls.traffic.tx_bytes = item['tx_bytes']
-                cls.traffic.tx_packets = item['tx_packets']
-                cls.traffic.tx_errs = item['tx_errs']
-                cls.traffic.tx_drop = item['tx_drop']
-                cls.traffic.timestamp = timestamp
-                cls.traffic.create()
-
-        if data_kind == CollectionPerformanceDataKind.disk_io.value:
+                cls.guest_traffic.guest_uuid = item['guest_uuid']
+                cls.guest_traffic.name = item['name']
+                cls.guest_traffic.rx_bytes = item['rx_bytes']
+                cls.guest_traffic.rx_packets = item['rx_packets']
+                cls.guest_traffic.rx_errs = item['rx_errs']
+                cls.guest_traffic.rx_drop = item['rx_drop']
+                cls.guest_traffic.tx_bytes = item['tx_bytes']
+                cls.guest_traffic.tx_packets = item['tx_packets']
+                cls.guest_traffic.tx_errs = item['tx_errs']
+                cls.guest_traffic.tx_drop = item['tx_drop']
+                cls.guest_traffic.timestamp = timestamp
+                cls.guest_traffic.create()
+
+        if data_kind == GuestCollectionPerformanceDataKind.disk_io.value:
             for item in data:
-                cls.disk_io.disk_uuid = item['disk_uuid']
-                cls.disk_io.rd_req = item['rd_req']
-                cls.disk_io.rd_bytes = item['rd_bytes']
-                cls.disk_io.wr_req = item['wr_req']
-                cls.disk_io.wr_bytes = item['wr_bytes']
-                cls.disk_io.timestamp = timestamp
-                cls.disk_io.create()
+                cls.guest_disk_io.disk_uuid = item['disk_uuid']
+                cls.guest_disk_io.rd_req = item['rd_req']
+                cls.guest_disk_io.rd_bytes = item['rd_bytes']
+                cls.guest_disk_io.wr_req = item['wr_req']
+                cls.guest_disk_io.wr_bytes = item['wr_bytes']
+                cls.guest_disk_io.timestamp = timestamp
+                cls.guest_disk_io.create()
 
         else:
             pass
@@ -360,8 +360,8 @@ class EventProcessor(object):
                 elif cls.message['kind'] == EmitKind.response.value:
                     cls.response_processor()
 
-                elif cls.message['kind'] == EmitKind.collection_performance.value:
-                    cls.collection_performance_processor()
+                elif cls.message['kind'] == EmitKind.guest_collection_performance.value:
+                    cls.guest_collection_performance_processor()
 
                 elif cls.message['kind'] == EmitKind.host_collection_performance.value:
                     cls.host_collection_performance_processor()

+ 9 - 9
models/performance.py → models/guest_performance.py

@@ -11,13 +11,13 @@ __contact__ = 'james.iter.cn@gmail.com'
 __copyright__ = '(c) 2017 by James Iter.'
 
 
-class CPUMemory(ORM):
+class GuestCPUMemory(ORM):
 
-    _table_name = 'cpu_memory'
+    _table_name = 'guest_cpu_memory'
     _primary_key = 'id'
 
     def __init__(self):
-        super(CPUMemory, self).__init__()
+        super(GuestCPUMemory, self).__init__()
         self.id = 0
         self.guest_uuid = None
         self.cpu_load = None
@@ -43,13 +43,13 @@ class CPUMemory(ORM):
         return []
 
 
-class Traffic(ORM):
+class GuestTraffic(ORM):
 
-    _table_name = 'traffic'
+    _table_name = 'guest_traffic'
     _primary_key = 'id'
 
     def __init__(self):
-        super(Traffic, self).__init__()
+        super(GuestTraffic, self).__init__()
         self.id = 0
         self.guest_uuid = None
         self.name = None
@@ -85,13 +85,13 @@ class Traffic(ORM):
         return []
 
 
-class DiskIO(ORM):
+class GuestDiskIO(ORM):
 
-    _table_name = 'disk_io'
+    _table_name = 'guest_disk_io'
     _primary_key = 'id'
 
     def __init__(self):
-        super(DiskIO, self).__init__()
+        super(GuestDiskIO, self).__init__()
         self.id = 0
         self.disk_uuid = None
         self.rd_req = None

+ 4 - 4
models/initialize.py

@@ -153,7 +153,7 @@ class Init(object):
 
     @staticmethod
     def clear_expire_monitor_log():
-        from models import CPUMemory, Traffic, DiskIO, HostCPUMemory, HostTraffic, HostDiskUsageIO
+        from models import GuestCPUMemory, GuestTraffic, GuestDiskIO, HostCPUMemory, HostTraffic, HostDiskUsageIO
         from models import Utils
 
         already_clear = False
@@ -175,9 +175,9 @@ class Init(object):
                     boundary = ji.Common.ts() - 86400 * 15
                     filter_str = 'timestamp:lt:' + boundary.__str__()
 
-                    CPUMemory.delete_by_filter(filter_str=filter_str)
-                    Traffic.delete_by_filter(filter_str=filter_str)
-                    DiskIO.delete_by_filter(filter_str=filter_str)
+                    GuestCPUMemory.delete_by_filter(filter_str=filter_str)
+                    GuestTraffic.delete_by_filter(filter_str=filter_str)
+                    GuestDiskIO.delete_by_filter(filter_str=filter_str)
 
                     HostCPUMemory.delete_by_filter(filter_str=filter_str)
                     HostTraffic.delete_by_filter(filter_str=filter_str)

+ 2 - 2
models/status.py

@@ -28,7 +28,7 @@ class EmitKind(IntEnum):
     guest_event = 1
     host_event = 2
     response = 3
-    collection_performance = 4
+    guest_collection_performance = 4
     host_collection_performance = 5
 
 
@@ -91,7 +91,7 @@ class OperateRuleKind(IntEnum):
     append_file = 2
 
 
-class CollectionPerformanceDataKind(IntEnum):
+class GuestCollectionPerformanceDataKind(IntEnum):
     cpu_memory = 0
     traffic = 1
     disk_io = 2

+ 10 - 10
templates/disk_detail.html

@@ -77,15 +77,15 @@
     }
 
     function render_disk_throughput_chart(disk_uuid, granularity, dev_id, dev_name) {
-        var url = '/api/performance/disk_io/last_hour/' + disk_uuid;
+        var url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid;
         if (granularity === 'hour') {
-            url = '/api/performance/disk_io/last_hour/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid
         } else if (granularity === 'six_hours') {
-            url = '/api/performance/disk_io/last_six_hours/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_six_hours/' + disk_uuid
         } else if (granularity === 'day') {
-            url = '/api/performance/disk_io/last_day/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_day/' + disk_uuid
         } else {
-            url = '/api/performance/disk_io/last_seven_days/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_seven_days/' + disk_uuid
         }
 
         $.ajax({
@@ -238,15 +238,15 @@
     }
 
     function render_disk_iops_chart(disk_uuid, granularity, dev_id, dev_name) {
-        var url = '/api/performance/disk_io/last_hour/' + disk_uuid;
+        var url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid;
         if (granularity === 'hour') {
-            url = '/api/performance/disk_io/last_hour/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid
         } else if (granularity === 'six_hours') {
-            url = '/api/performance/disk_io/last_six_hours/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_six_hours/' + disk_uuid
         } else if (granularity === 'day') {
-            url = '/api/performance/disk_io/last_day/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_day/' + disk_uuid
         } else {
-            url = '/api/performance/disk_io/last_seven_days/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_seven_days/' + disk_uuid
         }
 
         $.ajax({

+ 25 - 25
templates/guest_detail.html

@@ -75,15 +75,15 @@
     }
 
     function render_cpu_chart(uuid, granularity) {
-        var url = '/api/performance/cpu_memory/last_hour/' + uuid;
+        var url = '/api/guest_performance/cpu_memory/last_hour/' + uuid;
         if (granularity === 'hour') {
-            url = '/api/performance/cpu_memory/last_hour/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_hour/' + uuid
         } else if (granularity === 'six_hours') {
-            url = '/api/performance/cpu_memory/last_six_hours/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_six_hours/' + uuid
         } else if (granularity === 'day') {
-            url = '/api/performance/cpu_memory/last_day/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_day/' + uuid
         } else {
-            url = '/api/performance/cpu_memory/last_seven_days/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_seven_days/' + uuid
         }
 
         $.ajax({
@@ -209,15 +209,15 @@
     }
 
     function render_traffic_chart(uuid, granularity) {
-        var url = '/api/performance/traffic/last_hour/' + uuid;
+        var url = '/api/guest_performance/traffic/last_hour/' + uuid;
         if (granularity === 'hour') {
-            url = '/api/performance/traffic/last_hour/' + uuid
+            url = '/api/guest_performance/traffic/last_hour/' + uuid
         } else if (granularity === 'six_hours') {
-            url = '/api/performance/traffic/last_six_hours/' + uuid
+            url = '/api/guest_performance/traffic/last_six_hours/' + uuid
         } else if (granularity === 'day') {
-            url = '/api/performance/traffic/last_day/' + uuid
+            url = '/api/guest_performance/traffic/last_day/' + uuid
         } else {
-            url = '/api/performance/traffic/last_seven_days/' + uuid
+            url = '/api/guest_performance/traffic/last_seven_days/' + uuid
         }
 
         $.ajax({
@@ -371,15 +371,15 @@
     }
 
     function render_memory_chart(uuid, granularity) {
-        var url = '/api/performance/cpu_memory/last_hour/' + uuid;
+        var url = '/api/guest_performance/cpu_memory/last_hour/' + uuid;
         if (granularity === 'hour') {
-            url = '/api/performance/cpu_memory/last_hour/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_hour/' + uuid
         } else if (granularity === 'six_hours') {
-            url = '/api/performance/cpu_memory/last_six_hours/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_six_hours/' + uuid
         } else if (granularity === 'day') {
-            url = '/api/performance/cpu_memory/last_day/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_day/' + uuid
         } else {
-            url = '/api/performance/cpu_memory/last_seven_days/' + uuid
+            url = '/api/guest_performance/cpu_memory/last_seven_days/' + uuid
         }
 
         $.ajax({
@@ -506,15 +506,15 @@
     }
 
     function render_disk_throughput_chart(disk_uuid, granularity, dev_id, dev_name) {
-        var url = '/api/performance/disk_io/last_hour/' + disk_uuid;
+        var url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid;
         if (granularity === 'hour') {
-            url = '/api/performance/disk_io/last_hour/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid
         } else if (granularity === 'six_hours') {
-            url = '/api/performance/disk_io/last_six_hours/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_six_hours/' + disk_uuid
         } else if (granularity === 'day') {
-            url = '/api/performance/disk_io/last_day/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_day/' + disk_uuid
         } else {
-            url = '/api/performance/disk_io/last_seven_days/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_seven_days/' + disk_uuid
         }
 
         $.ajax({
@@ -669,15 +669,15 @@
     }
 
     function render_disk_iops_chart(disk_uuid, granularity, dev_id, dev_name) {
-        var url = '/api/performance/disk_io/last_hour/' + disk_uuid;
+        var url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid;
         if (granularity === 'hour') {
-            url = '/api/performance/disk_io/last_hour/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_hour/' + disk_uuid
         } else if (granularity === 'six_hours') {
-            url = '/api/performance/disk_io/last_six_hours/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_six_hours/' + disk_uuid
         } else if (granularity === 'day') {
-            url = '/api/performance/disk_io/last_day/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_day/' + disk_uuid
         } else {
-            url = '/api/performance/disk_io/last_seven_days/' + disk_uuid
+            url = '/api/guest_performance/disk_io/last_seven_days/' + disk_uuid
         }
 
         $.ajax({

+ 1 - 1
views/dashboard.py

@@ -30,7 +30,7 @@ def show():
     hosts_url = host_url + url_for('api_hosts.r_get_by_filter', alive=True)
     guests_distribute_count_url = host_url + url_for('api_guests.r_distribute_count')
     disks_distribute_count_url = host_url + url_for('api_disks.r_distribute_count')
-    guests_current_top_10_url = host_url + url_for('api_performance.r_current_top_10')
+    guests_current_top_10_url = host_url + url_for('api_guest_performance.r_current_top_10')
     hosts_current_top_10_url = host_url + url_for('api_host_performance.r_current_top_10')
 
     hosts_ret = requests.get(url=hosts_url, cookies=request.cookies)