diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-08-29 17:15:07 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-08-29 17:15:07 +0000 |
commit | f69f7711342995c74d9cc4cd4ce392668a1e591c (patch) | |
tree | 4b38a9490e9976f2d220529a6e9d3e8aba7b049a /ceilometer/compute | |
parent | 1c8c30ddb5eb7d3e65ea52302afd57a98b53fbc8 (diff) | |
parent | ed67c2bd3a5e1c4034a1f8a59761861f6eb0fc7d (diff) | |
download | ceilometer-f69f7711342995c74d9cc4cd4ce392668a1e591c.tar.gz |
Merge "Add disk total duration of reads/writes metric"
Diffstat (limited to 'ceilometer/compute')
-rw-r--r-- | ceilometer/compute/pollsters/disk.py | 14 | ||||
-rw-r--r-- | ceilometer/compute/virt/hyperv/inspector.py | 2 | ||||
-rw-r--r-- | ceilometer/compute/virt/inspector.py | 3 | ||||
-rw-r--r-- | ceilometer/compute/virt/libvirt/inspector.py | 7 |
4 files changed, 23 insertions, 3 deletions
diff --git a/ceilometer/compute/pollsters/disk.py b/ceilometer/compute/pollsters/disk.py index 8a190141..c3074309 100644 --- a/ceilometer/compute/pollsters/disk.py +++ b/ceilometer/compute/pollsters/disk.py @@ -237,3 +237,17 @@ class PerDevicePhysicalPollster(PerDeviceDiskPollster): sample_name = 'disk.device.usage' sample_unit = 'B' sample_stats_key = 'physical' + + +class PerDeviceDiskReadLatencyPollster(PerDeviceDiskPollster): + sample_name = 'disk.device.read.latency' + sample_type = sample.TYPE_CUMULATIVE + sample_unit = 'ms' + sample_stats_key = 'rd_total_times' + + +class PerDeviceDiskWriteLatencyPollster(PerDeviceDiskPollster): + sample_name = 'disk.device.write.latency' + sample_type = sample.TYPE_CUMULATIVE + sample_unit = 'ms' + sample_stats_key = 'wr_total_times' diff --git a/ceilometer/compute/virt/hyperv/inspector.py b/ceilometer/compute/virt/hyperv/inspector.py index 8771e8d5..f1819f22 100644 --- a/ceilometer/compute/virt/hyperv/inspector.py +++ b/ceilometer/compute/virt/hyperv/inspector.py @@ -132,7 +132,7 @@ class HyperVInspector(virt_inspector.Inspector): read_bytes=disk_metrics['read_mb'] * units.Mi, write_requests=0, write_bytes=disk_metrics['write_mb'] * units.Mi, - errors=0) + errors=0, wr_total_times=0, rd_total_times=0) def inspect_disk_latency(self, instance, duration): instance_name = util.instance_name(instance) diff --git a/ceilometer/compute/virt/inspector.py b/ceilometer/compute/virt/inspector.py index 7f6f5174..eb705168 100644 --- a/ceilometer/compute/virt/inspector.py +++ b/ceilometer/compute/virt/inspector.py @@ -112,7 +112,8 @@ DiskStats = collections.namedtuple('DiskStats', ['device', 'read_bytes', 'read_requests', 'write_bytes', 'write_requests', - 'errors']) + 'errors', 'wr_total_times', + 'rd_total_times']) # Named tuple representing disk rate statistics. # diff --git a/ceilometer/compute/virt/libvirt/inspector.py b/ceilometer/compute/virt/libvirt/inspector.py index 3c2d3023..eaf4d575 100644 --- a/ceilometer/compute/virt/libvirt/inspector.py +++ b/ceilometer/compute/virt/libvirt/inspector.py @@ -121,12 +121,17 @@ class LibvirtInspector(virt_inspector.Inspector): [target.get("dev") 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]) + errors=block_stats[4], + wr_total_times=wr_times, + rd_total_times=rd_times) @libvirt_utils.retry_on_disconnect def inspect_disk_info(self, instance, duration): |