ceilometer zvm inspector can pull rx/tx drops/errors

Add ceilometer zvm inspector support of pull vnic rx/tx drops and
errors.

Reference:
https://review.openstack.org/#/c/368225/

Change-Id: I22794af0d064944bb190d35e46a7fdd7c6458d28
This commit is contained in:
Huang Rui 2016-11-15 10:44:12 +08:00
parent 85c4ed3395
commit ea63de838f
2 changed files with 44 additions and 19 deletions

View File

@ -104,12 +104,17 @@ class ZVMInspector(virt_inspector.Inspector):
for nic in vsw['nics']:
for inst_name, userid in instances.items():
if nic['userid'].upper() == userid.upper():
nic_entry = {'vswitch_name': vsw['vswitch_name'],
'nic_vdev': nic['vdev'],
'nic_fr_rx': int(nic['nic_fr_rx']),
'nic_fr_tx': int(nic['nic_fr_tx']),
'nic_rx': int(nic['nic_rx']),
'nic_tx': int(nic['nic_tx'])}
nic_entry = {
'vswitch_name': vsw['vswitch_name'],
'nic_vdev': nic['vdev'],
'nic_fr_rx': int(nic['nic_fr_rx']),
'nic_fr_tx': int(nic['nic_fr_tx']),
'nic_fr_rx_dsc': int(nic['nic_fr_rx_dsc']),
'nic_fr_tx_dsc': int(nic['nic_fr_tx_dsc']),
'nic_fr_rx_err': int(nic['nic_fr_rx_err']),
'nic_fr_tx_err': int(nic['nic_fr_tx_err']),
'nic_rx': int(nic['nic_rx']),
'nic_tx': int(nic['nic_tx'])}
inst_stat = self.cache.get('vnics', inst_name)
if inst_stat is None:
inst_stat = {
@ -185,5 +190,9 @@ class ZVMInspector(virt_inspector.Inspector):
rx_bytes=nic['nic_rx'],
rx_packets=nic['nic_fr_rx'],
tx_bytes=nic['nic_tx'],
tx_packets=nic['nic_fr_tx'])
tx_packets=nic['nic_fr_tx'],
rx_drop=nic['nic_fr_rx_dsc'],
tx_drop=nic['nic_fr_tx_dsc'],
rx_errors=nic['nic_fr_rx_err'],
tx_errors=nic['nic_fr_tx_err'])
yield (interface, stats)

View File

@ -258,18 +258,26 @@ class TestZVMInspector(base.BaseTestCase):
self.inspector._update_inst_nic_stat(instances)
exp_inst1_nics_data = [
{'nic_vdev': '0600',
'vswitch_name': 'XCATVSW1',
'nic_rx': 103024058,
'nic_fr_rx': 573952,
{'nic_fr_rx': 573952,
'nic_fr_rx_dsc': 0,
'nic_fr_rx_err': 0,
'nic_fr_tx': 548780,
'nic_tx': 102030890},
{'nic_vdev': '1000',
'vswitch_name': 'XCATVSW2',
'nic_rx': 4684435,
'nic_fr_rx': 34958,
'nic_fr_tx_dsc': 0,
'nic_fr_tx_err': 4,
'nic_rx': 103024058,
'nic_tx': 102030890,
'nic_vdev': '0600',
'vswitch_name': 'XCATVSW1'},
{'nic_fr_rx': 34958,
'nic_fr_rx_dsc': 0,
'nic_fr_rx_err': 0,
'nic_fr_tx': 16211,
'nic_tx': 3316601}
'nic_fr_tx_dsc': 0,
'nic_fr_tx_err': 0,
'nic_rx': 4684435,
'nic_tx': 3316601,
'nic_vdev': '1000',
'vswitch_name': 'XCATVSW2'}
]
self.assertEqual(exp_inst1_nics_data,
self.inspector.cache.get('vnics', 'inst1')['nics'])
@ -286,13 +294,21 @@ class TestZVMInspector(base.BaseTestCase):
'nic_fr_rx': 99999,
'nic_fr_tx': 99999,
'nic_rx': 9999999,
'nic_tx': 9999999},
'nic_tx': 9999999,
'nic_fr_rx_dsc': 0,
'nic_fr_tx_dsc': 0,
'nic_fr_rx_err': 0,
'nic_fr_tx_err': 0},
{'vswitch_name': 'vsw2',
'nic_vdev': '0700',
'nic_fr_rx': 88888,
'nic_fr_tx': 88888,
'nic_rx': 8888888,
'nic_tx': 8888888}]}
'nic_tx': 8888888,
'nic_fr_rx_dsc': 0,
'nic_fr_tx_dsc': 0,
'nic_fr_rx_err': 0,
'nic_fr_tx_err': 0}]}
nic, stat = list(self.inspector.inspect_vnics({'inst1': 'INST1'}))[0]
if nic.name == 'vsw1_INST1_0600':
self.assertEqual(99999, stat.rx_packets)