Improve debug output and use ceph df util data
This commit is contained in:
parent
9b65d3271a
commit
654a3cb7fa
|
@ -2489,7 +2489,7 @@ class API_Storage_Ceph_Utilization(Resource):
|
||||||
type: string
|
type: string
|
||||||
description: The raw output data
|
description: The raw output data
|
||||||
"""
|
"""
|
||||||
return api_helper.ceph_radosdf()
|
return api_helper.ceph_util()
|
||||||
api.add_resource(API_Storage_Ceph_Utilization, '/storage/ceph/utilization')
|
api.add_resource(API_Storage_Ceph_Utilization, '/storage/ceph/utilization')
|
||||||
|
|
||||||
# /storage/ceph/option
|
# /storage/ceph/option
|
||||||
|
|
|
@ -984,12 +984,12 @@ def ceph_status():
|
||||||
|
|
||||||
return retdata, retcode
|
return retdata, retcode
|
||||||
|
|
||||||
def ceph_radosdf():
|
def ceph_util():
|
||||||
"""
|
"""
|
||||||
Get the current Ceph cluster utilization.
|
Get the current Ceph cluster utilization.
|
||||||
"""
|
"""
|
||||||
zk_conn = pvc_common.startZKConnection(config['coordinators'])
|
zk_conn = pvc_common.startZKConnection(config['coordinators'])
|
||||||
retflag, retdata = pvc_ceph.get_radosdf(zk_conn)
|
retflag, retdata = pvc_ceph.get_util(zk_conn)
|
||||||
pvc_common.stopZKConnection(zk_conn)
|
pvc_common.stopZKConnection(zk_conn)
|
||||||
|
|
||||||
if retflag:
|
if retflag:
|
||||||
|
|
|
@ -154,9 +154,9 @@ def get_status(zk_conn):
|
||||||
}
|
}
|
||||||
return True, status_data
|
return True, status_data
|
||||||
|
|
||||||
def get_radosdf(zk_conn):
|
def get_util(zk_conn):
|
||||||
primary_node = zkhandler.readdata(zk_conn, '/primary_node')
|
primary_node = zkhandler.readdata(zk_conn, '/primary_node')
|
||||||
ceph_df = zkhandler.readdata(zk_conn, '/ceph/radosdf').rstrip()
|
ceph_df = zkhandler.readdata(zk_conn, '/ceph/util').rstrip()
|
||||||
|
|
||||||
# Create a data structure for the information
|
# Create a data structure for the information
|
||||||
status_data = {
|
status_data = {
|
||||||
|
|
|
@ -1049,7 +1049,7 @@ def collect_ceph_stats(queue):
|
||||||
print("Set ceph health information in zookeeper (primary only)")
|
print("Set ceph health information in zookeeper (primary only)")
|
||||||
|
|
||||||
command = { "prefix": "status", "format": "pretty" }
|
command = { "prefix": "status", "format": "pretty" }
|
||||||
ceph_status = ceph_conn.mon_command(json.dumps(command), b'', timeout=1)[1]
|
ceph_status = ceph_conn.mon_command(json.dumps(command), b'', timeout=1)[1].decode('ascii')
|
||||||
try:
|
try:
|
||||||
zkhandler.writedata(zk_conn, {
|
zkhandler.writedata(zk_conn, {
|
||||||
'/ceph': str(ceph_status)
|
'/ceph': str(ceph_status)
|
||||||
|
@ -1062,14 +1062,14 @@ def collect_ceph_stats(queue):
|
||||||
print("Set ceph rados df information in zookeeper (primary only)")
|
print("Set ceph rados df information in zookeeper (primary only)")
|
||||||
|
|
||||||
# Get rados df info
|
# Get rados df info
|
||||||
retcode, stdout, stderr = common.run_os_command('rados df', timeout=1)
|
command = { "prefix": "df", "format": "pretty" }
|
||||||
rados_df = stdout
|
ceph_df = ceph_conn.mon_command(json.dumps(command), b'', timeout=1)[1].decode('ascii')
|
||||||
try:
|
try:
|
||||||
zkhandler.writedata(zk_conn, {
|
zkhandler.writedata(zk_conn, {
|
||||||
'/ceph/radosdf': str(rados_df)
|
'/ceph/util': str(ceph_df)
|
||||||
})
|
})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.out('Failed to set Rados space data: {}'.format(e), state='e')
|
logger.out('Failed to set Ceph utilization data: {}'.format(e), state='e')
|
||||||
return
|
return
|
||||||
|
|
||||||
if debug:
|
if debug:
|
||||||
|
@ -1337,10 +1337,13 @@ def collect_vm_stats(queue):
|
||||||
|
|
||||||
# Get all the raw information about the VM
|
# Get all the raw information about the VM
|
||||||
if debug:
|
if debug:
|
||||||
print("Getting statistics for VM {}".format(domain_name))
|
print("Getting general statistics for VM {}".format(domain_name))
|
||||||
domain_state, domain_maxmem, domain_mem, domain_vcpus, domain_cputime = domain.info()
|
domain_state, domain_maxmem, domain_mem, domain_vcpus, domain_cputime = domain.info()
|
||||||
domain_memory_stats = domain.memoryStats()
|
domain_memory_stats = domain.memoryStats()
|
||||||
domain_cpu_stats = domain.getCPUStats(True)[0]
|
domain_cpu_stats = domain.getCPUStats(True)[0]
|
||||||
|
|
||||||
|
if debug:
|
||||||
|
print("Getting disk statistics for VM {}".format(domain_name))
|
||||||
domain_disk_stats = []
|
domain_disk_stats = []
|
||||||
for disk in tree.findall('devices/disk'):
|
for disk in tree.findall('devices/disk'):
|
||||||
disk_name = disk.find('source').get('name')
|
disk_name = disk.find('source').get('name')
|
||||||
|
@ -1356,6 +1359,8 @@ def collect_vm_stats(queue):
|
||||||
"err": disk_stats[4]
|
"err": disk_stats[4]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if debug:
|
||||||
|
print("Getting network statistics for VM {}".format(domain_name))
|
||||||
domain_network_stats = []
|
domain_network_stats = []
|
||||||
for interface in tree.findall('devices/interface'):
|
for interface in tree.findall('devices/interface'):
|
||||||
interface_name = interface.find('target').get('dev')
|
interface_name = interface.find('target').get('dev')
|
||||||
|
|
Loading…
Reference in New Issue