raylu 10 years ago
parent
commit
fb3843f005
3 changed files with 15 additions and 6 deletions
  1. 4 2
      api/fileio.py
  2. 3 2
      api/sysvitals_api.py
  3. 8 2
      client/sysvitals_client

+ 4 - 2
api/fileio.py

@@ -13,14 +13,16 @@ fields = [
 		'bytes_recv', 'bytes_sent',
 		'dropin', 'dropout', 'errin', 'errout',
 	]),
-	('disk', 'q', ['total', 'used']),
+	('disk', 'q', ['read_bytes', 'write_bytes', 'total', 'used']),
 ]
 
 def gen_template(val):
 	template = {}
 	for stat_group, _, subfields in fields:
 		field_data = {}
-		if stat_group != 'disk':
+		if stat_group == 'disk':
+			field_data = 
+		else:
 			for field in subfields:
 				field_data[field] = copy.copy(val)
 		template[stat_group] = field_data

+ 3 - 2
api/sysvitals_api.py

@@ -46,7 +46,7 @@ class HTTPException(Exception):
 
 BASE_HEADERS = [
 	('Access-Control-Allow-Origin', '*'),
-	('Access-Control-Allow-Headers', 'Authorization, X-Requested-With, X-Request'),
+	('Access-Control-Allow-Headers', 'X-Requested-With, X-Request'),
 ]
 DEFAULT_HEADERS = BASE_HEADERS + [('Content-type', 'application/json')]
 ERROR_HEADERS = BASE_HEADERS + [('Content-type', 'text/plain')]
@@ -248,7 +248,8 @@ def post_datum(split, query, environ):
 		if field == 'disk':
 			disk = stats['disk']
 			for mountpoint, datum in body['disk'].iteritems(): # iterate through body to get new mountpoints
-				disk.setdefault(mountpoint, {'total': [-1] * 1440, 'used': [-1] * 1440})
+				if mountpoint not in disk:
+					disk[mountpoint] = {'total': [-1] * 1440, 'used': [-1] * 1440}
 				field_data[mountpoint] = {}
 				for subfield, array in disk[mountpoint].iteritems():
 					array = list(array)

+ 8 - 2
client/sysvitals_client

@@ -25,6 +25,7 @@ def post():
 	cpu = psutil.cpu_times()
 	mem = psutil.virtual_memory()
 	net = psutil.net_io_counters()
+	disk = psutil.disk_io_counters()
 	datum = {
 		'cpu': cpu._asdict(),
 		'mem': {
@@ -34,7 +35,10 @@ def post():
 			'cached': mem.cached,
 		},
 		'net': net._asdict(),
-		'disk': {}
+		'disk': {
+			'read_bytes': disk.read_bytes,
+			'write_bytes': disk.write_bytes,
+		},
 	}
 	datum['cpu']['num_cpus'] = psutil.NUM_CPUS
 	for partition in psutil.disk_partitions():
@@ -47,7 +51,9 @@ def post():
 	api_key = config.get('client', 'api_key')
 	group_id = config.get('client', 'group_id')
 	server_id = config.get('client', 'server_id')
-	__query(group_id, 'datum/' + server_id, api_key, datum)
+	from pprint import pprint
+	pprint(datum)
+	#__query(group_id, 'datum/' + server_id, api_key, datum)
 
 def configure():
 	if not is_root: