** Description changed: - Watcher uses cpu_util wich was deprecated. - The `cpu_util` metric was deprecated and replaced with raw CPU time measurements stored in Gnocchi. + [ Impact ] - There is an upstream fix: - https://review.opendev.org/c/openstack/watcher/+/898791 + * The watcher releases targeted by this SRU are using a deprecated + ceilometer metric, cpu_util, which reported cpu utilization as a + percentage. This metric was deprecated in Openstack Rocky in favor of + the Gnocchi rate calculation equivalent [1]. + + * Upstream Watcher continued to use cpu_util until the commit at [2] + landed on master for 2024.1. This commit correctly performs the cpu + calculation and removes the deprecated metric. The calculation is + summarized in the next bullet point and there is an example calculation + in the original commit + + * The gnocchi calculation uses the cumulative cpu time in ns (reported + by the cpu metric), taken as a rate (the difference in cumulative time + over the last two sampling intervals) to find the total cpu time during + the previous sampling period. Dividing the cpu time in one interval by + the duration of the interval multiplied by the number of vcpus provides + the cpu utilization as a percentage: cpu_usage = [cpu_time / (period * + 10^9 * nvcpus)] * 100%. A sample calculation is provided in the original + commit message. + + * I cherry-picked to stable/2023.2 [3], but the other branches have + gone unmaintained + + [ Test Plan ] + + * Deploy openstack yoga on jammy with watcher and gnocchi services + + * Launch a server and take note of it's resource id. Then find the + gnocchi cpu metric associated with the instance + + * Create a watcher audit based on a goal that previously depended on instance cpu utilization. For example the workload_balance goal [4] + Ex. openstack optimize audit create -t CONTINUOUS -i 60 -g workload_balancing -s workload_balance --auto-trigger + Without the patch instance_cpu_usage appears as None in the audits. With the patch you can observe the correct cpu utilization percentage in the watcher-decision-engine.log + + * Wait for at least one sampling period to elapse and check + /var/log/watcher/watcher-decision-engine.log for entries showing + "instance_cpu_usage" - this is the cpu utilization as a percentage. + + * To verify the percentage with a manual calculation, run gnocchi + measure show <metric uuid> --aggregation "rate:mean" and perform the + calculation instance_cpu_usage = 100*[<value> / (period * 10^9 * nvcpus) + using the cpu time from the corresponding sampling period + + [ What can go wrong ] + + * While this is replacing a deprecated methodology and metric and + should lead to improvements, any custom strategies relying on cpu_util + may be affected. + + [1] https://docs.openstack.org/releasenotes/ceilometer/rocky.html + [2] https://review.opendev.org/c/openstack/watcher/+/898791 + [3] https://review.opendev.org/c/openstack/watcher/+/934181 + [4] https://docs.openstack.org/watcher/rocky/strategies/workload_balance.html
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2088620 Title: [SRU] Deprecated usage of cpu_util To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-archive/+bug/2088620/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs