Merge "Introduce power.state metric"

This commit is contained in:
Zuul 2024-11-26 15:34:15 +00:00 committed by Gerrit Code Review
commit 27faf0e97c
9 changed files with 21 additions and 0 deletions

View File

@ -22,6 +22,11 @@ class InstanceStatsPollster(pollsters.GenericComputePollster):
inspector_method = 'inspect_instance'
class PowerStatePollster(InstanceStatsPollster):
sample_name = 'power.state'
sample_stats_key = 'power_state'
class CPUPollster(InstanceStatsPollster):
sample_name = 'cpu'
sample_unit = 'ns'

View File

@ -38,6 +38,7 @@ LOG = log.getLogger(__name__)
class InstanceStats(object):
fields = [
'power_state', # the power state of the domain
'cpu_number', # number: number of CPUs
'cpu_time', # time: cumulative CPU time
'cpu_util', # util: CPU utilization in percentage

View File

@ -242,6 +242,7 @@ class LibvirtInspector(virt_inspector.Inspector):
cpu_time = stats.get('cpu.time')
return virt_inspector.InstanceStats(
power_state=domain.info()[0],
cpu_number=stats.get('vcpu.current'),
cpu_time=cpu_time,
memory_usage=memory_used,

View File

@ -84,6 +84,7 @@ resources:
memory.bandwidth.total:
memory.bandwidth.local:
vcpus:
power.state:
cpu:
archive_policy_name: ceilometer-low-rate
cpu_l3_cache:

View File

@ -78,6 +78,7 @@ class TestLibvirtInspection(base.BaseTestCase):
with mock.patch('ceilometer.compute.virt.libvirt.utils.'
'refresh_libvirt_connection', return_value=conn):
stats = self.inspector.inspect_instance(self.instance, None)
self.assertEqual(0, stats.power_state)
self.assertEqual(2, stats.cpu_number)
self.assertEqual(40000, stats.cpu_time)
self.assertEqual(90112, stats.cpu_l3_cache_usage)

View File

@ -233,6 +233,11 @@ The following meters are collected for OpenStack Compute.
| ce.write.\| ative | ns | Disk ID | Pollster | Libvirt | operations have |
| latency | | | | | | taken |
+-----------+-------+------+----------+----------+---------+------------------+
| **Meters added in the Epoxy release** |
+-----------+-------+------+----------+----------+---------+------------------+
| power.sta\| Gauge | state| instance | Pollster | Libvirt | virDomainState |
| te | | | ID | | | of the VM |
+-----------+-------+------+----------+----------+---------+------------------+
.. note::

View File

@ -3,6 +3,7 @@ sources:
- name: some_pollsters
interval: 300
meters:
- power.state
- cpu
- cpu_l3_cache
- memory.usage

View File

@ -0,0 +1,5 @@
---
features:
- |
Added the new power.state metric from virDomainState.

View File

@ -73,6 +73,7 @@ ceilometer.poll.compute =
disk.device.write.bytes = ceilometer.compute.pollsters.disk:PerDeviceWriteBytesPollster
disk.device.read.latency = ceilometer.compute.pollsters.disk:PerDeviceDiskReadLatencyPollster
disk.device.write.latency = ceilometer.compute.pollsters.disk:PerDeviceDiskWriteLatencyPollster
power.state = ceilometer.compute.pollsters.instance_stats:PowerStatePollster
cpu = ceilometer.compute.pollsters.instance_stats:CPUPollster
cpu_util = ceilometer.compute.pollsters.instance_stats:CPUUtilPollster
cpu_l3_cache = ceilometer.compute.pollsters.instance_stats:CPUL3CachePollster