fix disk total_time metrics
libvirt rd_total_time and wr_total_time metrics are in nanoseconds[1]. the current computation puts it to us not ms as defined. just skip any conversion completely as we already capture cputime in nanoseconds. [1] https://linux.die.net/man/1/virsh Change-Id: I68951a2c7d08c58497952f2f2a448d813e17e2cb
This commit is contained in:
parent
f69f771134
commit
0d4eb0bb86
@ -242,12 +242,12 @@ class PerDevicePhysicalPollster(PerDeviceDiskPollster):
|
||||
class PerDeviceDiskReadLatencyPollster(PerDeviceDiskPollster):
|
||||
sample_name = 'disk.device.read.latency'
|
||||
sample_type = sample.TYPE_CUMULATIVE
|
||||
sample_unit = 'ms'
|
||||
sample_unit = 'ns'
|
||||
sample_stats_key = 'rd_total_times'
|
||||
|
||||
|
||||
class PerDeviceDiskWriteLatencyPollster(PerDeviceDiskPollster):
|
||||
sample_name = 'disk.device.write.latency'
|
||||
sample_type = sample.TYPE_CUMULATIVE
|
||||
sample_unit = 'ms'
|
||||
sample_unit = 'ns'
|
||||
sample_stats_key = 'wr_total_times'
|
||||
|
@ -122,16 +122,13 @@ class LibvirtInspector(virt_inspector.Inspector):
|
||||
for target in tree.findall('devices/disk/target')]):
|
||||
block_stats = domain.blockStats(device)
|
||||
block_stats_flags = domain.blockStatsFlags(device, 0)
|
||||
wr_times = block_stats_flags['wr_total_times']*1.0/1000
|
||||
rd_times = block_stats_flags['rd_total_times']*1.0/1000
|
||||
yield virt_inspector.DiskStats(device=device,
|
||||
read_requests=block_stats[0],
|
||||
read_bytes=block_stats[1],
|
||||
write_requests=block_stats[2],
|
||||
write_bytes=block_stats[3],
|
||||
errors=block_stats[4],
|
||||
wr_total_times=wr_times,
|
||||
rd_total_times=rd_times)
|
||||
yield virt_inspector.DiskStats(
|
||||
device=device,
|
||||
read_requests=block_stats[0], read_bytes=block_stats[1],
|
||||
write_requests=block_stats[2], write_bytes=block_stats[3],
|
||||
errors=block_stats[4],
|
||||
wr_total_times=block_stats_flags['wr_total_times'],
|
||||
rd_total_times=block_stats_flags['rd_total_times'])
|
||||
|
||||
@libvirt_utils.retry_on_disconnect
|
||||
def inspect_disk_info(self, instance, duration):
|
||||
|
@ -305,8 +305,8 @@ class TestLibvirtInspection(base.BaseTestCase):
|
||||
self.assertEqual(2, disks[0].read_bytes)
|
||||
self.assertEqual(3, disks[0].write_requests)
|
||||
self.assertEqual(4, disks[0].write_bytes)
|
||||
self.assertEqual(91752302.267, disks[0].wr_total_times)
|
||||
self.assertEqual(29142253.616, disks[0].rd_total_times)
|
||||
self.assertEqual(91752302267, disks[0].wr_total_times)
|
||||
self.assertEqual(29142253616, disks[0].rd_total_times)
|
||||
|
||||
def test_inspect_disks_with_domain_shutoff(self):
|
||||
domain = mock.Mock()
|
||||
|
Loading…
Reference in New Issue
Block a user