Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-17350

Fix an issue with pool capacity metrics when running with ceph as storage backend

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: Major Major
    • None
    • None
    • openstack-ceilometer
    • None
    • CloudOps 2025 Sprint 11
    • 1

      Goal: 

      We see the following on uni jobs with ceph enabled:

      2025-06-09 06:14:56.124 18 INFO ceilometer.polling.manager [-] Polling pollster volume.provider.pool.capacity.provisioned in the context of pollsters
      2025-06-09 06:14:56.124 18 DEBUG ceilometer.polling.manager [-] Polster heartbeat update: volume.provider.pool.capacity.provisioned heartbeat /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:494
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager [-] Continue after error from volume.provider.pool.capacity.provisioned: provisioned_capacity_gb: AttributeError: provisioned_capacity_gb
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager Traceback (most recent call last):
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/polling/manager.py", line 252, in poll_and_notify
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager     for sample in samples:
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/volume/cinder.py", line 176, in get_samples
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager     volume=pool.provisioned_capacity_gb,
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/cinderclient/apiclient/base.py", line 502, in __getattr__
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager     raise AttributeError(k)
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager AttributeError: provisioned_capacity_gb
      2025-06-09 06:14:56.124 18 ERROR ceilometer.polling.manager 
      2025-06-09 06:14:56.123 16 DEBUG ceilometer.polling.manager [-] Updated heartbeat for image.size (2025-06-09T06:14:56.113806) _update_status /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:367
      2025-06-09 06:14:56.143 16 DEBUG ceilometer.polling.manager [-] Updated heartbeat for volume.provider.pool.capacity.free (2025-06-09T06:14:56.122727) _update_status /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:367
      2025-06-09 06:14:56.143 16 DEBUG ceilometer.polling.manager [-] Updated heartbeat for volume.provider.pool.capacity.provisioned (2025-06-09T06:14:56.124594) _update_status /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:367
      2025-06-09 06:14:56.389 18 DEBUG ceilometer.polling.manager [-] Skip pollster volume.backup.size, no  resources found this cycle poll_and_notify /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:233
      2025-06-09 06:14:56.390 18 INFO ceilometer.polling.manager [-] Polling pollster volume.provider.pool.capacity.virtual_free in the context of pollsters
      2025-06-09 06:14:56.390 18 DEBUG ceilometer.polling.manager [-] Polster heartbeat update: volume.provider.pool.capacity.virtual_free heartbeat /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:494
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager [-] Continue after error from volume.provider.pool.capacity.virtual_free: can't multiply sequence by non-int of type 'float': TypeError: can't multiply sequence by non-int of type 'float'
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager Traceback (most recent call last):
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/polling/manager.py", line 252, in poll_and_notify
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager     for sample in samples:
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/volume/cinder.py", line 200, in get_samples
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager     max_over_subscription_ratio *
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager TypeError: can't multiply sequence by non-int of type 'float'
      2025-06-09 06:14:56.390 18 ERROR ceilometer.polling.manager 
      2025-06-09 06:14:56.391 18 INFO ceilometer.polling.manager [-] Polling pollster volume.provider.pool.capacity.allocated in the context of pollsters
      2025-06-09 06:14:56.391 18 DEBUG ceilometer.polling.manager [-] Polster heartbeat update: volume.provider.pool.capacity.allocated heartbeat /usr/lib/python3.9/site-packages/ceilometer/polling/manager.py:494
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager [-] Continue after error from volume.provider.pool.capacity.allocated: pool_name: AttributeError: pool_name
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager Traceback (most recent call last):
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/polling/manager.py", line 252, in poll_and_notify
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager     for sample in samples:
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/volume/cinder.py", line 233, in get_samples
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager     resource_metadata=self.extract_metadata(pool),
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/volume/cinder.py", line 23, in extract_metadata
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager     metadata = dict((k, getattr(obj, k)) for k in self.FIELDS)
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/ceilometer/volume/cinder.py", line 23, in <genexpr>
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager     metadata = dict((k, getattr(obj, k)) for k in self.FIELDS)
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager   File "/usr/lib/python3.9/site-packages/cinderclient/apiclient/base.py", line 502, in __getattr__
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager     raise AttributeError(k)
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager AttributeError: pool_name
      2025-06-09 06:14:56.392 18 ERROR ceilometer.polling.manager 

      Acceptance Criteria:

      • Fix for the exception is proposed along with an upstream test.
      • CI is passing

              rh-ee-jwysogla Jaromir Wysoglad
              rh-ee-jwysogla Jaromir Wysoglad
              rhos-conplat-observability
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: