)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"12df791cb0ad3c57f8c0600a917f641173b6616b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"fd93bee9_3c773cfa","updated":"2025-05-28 06:33:36.000000000","message":"https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_c59/openstack/c594b8f0638f4731929b04df2f72705b/job-output.txt\n```\n/home/zuul/src/opendev.org/openstack/watcher/doc/source/strategies/workload_balance.rst:24: ERROR: Malformed table.\n2025-05-27 20:00:19.984248 | ubuntu-noble | Bottom/header table border does not match top border.\n2025-05-27 20:00:19.984259 | ubuntu-noble |\n2025-05-27 20:00:19.984270 | ubuntu-noble | \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2025-05-27 20:00:19.984280 | ubuntu-noble | metric                  service name plugins comment\n2025-05-27 20:00:19.984290 | ubuntu-noble | \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2025-05-27 20:00:19.984299 | ubuntu-noble | ``cpu``                 ceilometer_  none    CPU of the instance.\n2025-05-27 20:00:19.984308 | ubuntu-noble |                                              Used to calculate the threshold\n2025-05-27 20:00:19.984323 | ubuntu-noble | ``memory.resident``     ceilometer_  none    RAM of the instance.\n2025-05-27 20:00:19.984360 | ubuntu-noble |                                              Used to calculate the threshold\n2025-05-27 20:00:19.984371 | ubuntu-noble | \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d [docutils]\n```","commit_id":"fb9d8280d7cc6c70195ef591508941545e18dd5d"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"5573fcf8e1b096ef5f5ece188f1169631ab0bb18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5f3aabb7_7ce8740f","updated":"2025-05-29 05:23:08.000000000","message":"Left few improvements!","commit_id":"ac218b59825f1624114cc7057fe050c1a6df3fda"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6818329333db31d04ef773d63270c9878ad89601","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a70987f7_2abbf870","updated":"2025-06-05 14:42:58.000000000","message":"I left a few possible improvements to consider","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"00aa0dfac6ba4fa05596dd921a085220e6eef2a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ad48115f_642e8078","updated":"2025-05-30 10:58:46.000000000","message":"LGTM","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"f2308cb69d4b7bccdf0a650e6b3989a1b26a1cd0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e3d8a3ff_4fd9d92a","updated":"2025-05-30 10:25:56.000000000","message":"recheck","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"45053c957259056136bfa7dcd30013519f33f149","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7e0b2ff2_f805771e","updated":"2025-06-05 19:11:22.000000000","message":"recheck","commit_id":"e3386a95551647878a65398a29fb5f9777cfe1d5"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8d93c6e2a3e7107a543c58bac5524997cf49886e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6a5b1e1e_eb6d1d1e","updated":"2025-06-06 17:44:22.000000000","message":"Thanks, just a comment about metric naming, which may be updated or not, we can discuss more","commit_id":"e255e6f35ef631497339da2f8a97a5be1bbe4f2d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d45f665fae1030182ea785df0f11d7404266e29f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fd4a6729_5be618f6","updated":"2025-06-06 12:32:54.000000000","message":"lgtm","commit_id":"e255e6f35ef631497339da2f8a97a5be1bbe4f2d"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"e54b161800fb274d06bc1d36684bb53b9fe06bf0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"24874118_5986ba6c","updated":"2025-06-10 14:40:56.000000000","message":"LGTM","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a53fd711c7df91ac55e96192fdd1e3292611d91f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4f51d805_37ee8041","updated":"2025-06-20 18:35:13.000000000","message":"LGTM, output is looking good too [1]\n\n[1] https://96b713f55ce3ddbd612d-69e632a7aa98516f459f7791ccff0cc0.ssl.cf5.rackcdn.com/openstack/91b4ea2b71cd404494cfb01c1dafc5e6/docs/strategies/workload_balance.html","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"9ff5403b0f628d5d4df50cdb24bf95bf536b852d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"350c45e0_356fbcf0","updated":"2025-06-26 21:56:20.000000000","message":"Thanks for the review.\nI will prep a follow up patch and advocate to merge what we have so far","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e0cd136d_d2aefb4c","updated":"2025-06-24 18:32:00.000000000","message":"overall this is ok but there are a couple of issues \nwe could adress thsoe in followups i guess so ill leave this here for a day or so so you can read it and we can decied if we want to proceed and fix in a follow up or fix it now.","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"}],"doc/source/strategies/workload_balance.rst":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"5573fcf8e1b096ef5f5ece188f1169631ab0bb18","unresolved":true,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: shell"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    $ openstack optimize audittemplate create \\"},{"line_number":110,"context_line":"      at1 workload_balancing --strategy workload_balance"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    $ openstack optimize audit create -a at1 -p threshold\u003d26.0 \\"},{"line_number":113,"context_line":"            -p period\u003d310 -p metrics\u003dinstance_cpu_usage"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    $ openstack optimize audit create -a WorkLoadBalance \\"},{"line_number":116,"context_line":"           -p granularity\u003d30 -p threshold\u003d20 -p period\u003d300 \\"},{"line_number":117,"context_line":"           -p metrics\u003dinstance_cpu_usage --auto-trigger"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4776c615_f2225c3e","line":114,"range":{"start_line":109,"start_character":4,"end_line":114,"end_character":1},"updated":"2025-05-29 05:23:08.000000000","message":"Can we also add some notes about what does commands are doing?","commit_id":"ac218b59825f1624114cc7057fe050c1a6df3fda"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"568ee14da41cfd82c9b6ff270c3daaa5adf3da73","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: shell"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    $ openstack optimize audittemplate create \\"},{"line_number":110,"context_line":"      at1 workload_balancing --strategy workload_balance"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    $ openstack optimize audit create -a at1 -p threshold\u003d26.0 \\"},{"line_number":113,"context_line":"            -p period\u003d310 -p metrics\u003dinstance_cpu_usage"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    $ openstack optimize audit create -a WorkLoadBalance \\"},{"line_number":116,"context_line":"           -p granularity\u003d30 -p threshold\u003d20 -p period\u003d300 \\"},{"line_number":117,"context_line":"           -p metrics\u003dinstance_cpu_usage --auto-trigger"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e56ff772_6ad49296","line":114,"range":{"start_line":109,"start_character":4,"end_line":114,"end_character":1},"in_reply_to":"4776c615_f2225c3e","updated":"2025-05-29 19:03:05.000000000","message":"Done","commit_id":"ac218b59825f1624114cc7057fe050c1a6df3fda"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"5573fcf8e1b096ef5f5ece188f1169631ab0bb18","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    $ openstack optimize audit create -a at1 -p threshold\u003d26.0 \\"},{"line_number":113,"context_line":"            -p period\u003d310 -p metrics\u003dinstance_cpu_usage"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    $ openstack optimize audit create -a WorkLoadBalance \\"},{"line_number":116,"context_line":"           -p granularity\u003d30 -p threshold\u003d20 -p period\u003d300 \\"},{"line_number":117,"context_line":"           -p metrics\u003dinstance_cpu_usage --auto-trigger"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"External Links"},{"line_number":120,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"efe71220_695c867d","line":117,"range":{"start_line":115,"start_character":4,"end_line":117,"end_character":55},"updated":"2025-05-29 05:23:08.000000000","message":"Since we are creating the audittemplate at1, we should the same here\n\n```suggestion\n    $ openstack optimize audit create -a at1 \\\n           -p granularity\u003d30 -p threshold\u003d20 -p period\u003d300 \\\n           -p metrics\u003dinstance_cpu_usage --auto-trigger\n```","commit_id":"ac218b59825f1624114cc7057fe050c1a6df3fda"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"568ee14da41cfd82c9b6ff270c3daaa5adf3da73","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    $ openstack optimize audit create -a at1 -p threshold\u003d26.0 \\"},{"line_number":113,"context_line":"            -p period\u003d310 -p metrics\u003dinstance_cpu_usage"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    $ openstack optimize audit create -a WorkLoadBalance \\"},{"line_number":116,"context_line":"           -p granularity\u003d30 -p threshold\u003d20 -p period\u003d300 \\"},{"line_number":117,"context_line":"           -p metrics\u003dinstance_cpu_usage --auto-trigger"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"External Links"},{"line_number":120,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7d37cb22_d1890bab","line":117,"range":{"start_line":115,"start_character":4,"end_line":117,"end_character":55},"in_reply_to":"efe71220_695c867d","updated":"2025-05-29 19:03:05.000000000","message":"Done","commit_id":"ac218b59825f1624114cc7057fe050c1a6df3fda"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6818329333db31d04ef773d63270c9878ad89601","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    .. watcher-term:: watcher.decision_engine.strategy.strategies.workload_balance.WorkloadBalance"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Requirements"},{"line_number":15,"context_line":"------------"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"None."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5b7eafee_8c8e4eb5","line":14,"updated":"2025-06-05 14:42:58.000000000","message":"we have a `Requirements` section in the stategy docstring, we shoud keep only one of the two I think","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"645a483e6bdeb6eaf0da11becd6e0ca8e6f5006e","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    .. watcher-term:: watcher.decision_engine.strategy.strategies.workload_balance.WorkloadBalance"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Requirements"},{"line_number":15,"context_line":"------------"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"None."}],"source_content_type":"text/x-rst","patch_set":3,"id":"45fa201e_19156f50","line":14,"in_reply_to":"5b7eafee_8c8e4eb5","updated":"2025-06-06 19:51:07.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"e05f7dc1d430fbc59f4b75e774b4a86165147476","unresolved":true,"context_lines":[{"line_number":22,"context_line":"The *workload_balance* strategy requires the following metrics:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"metric                  service name plugins comment"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":"``cpu``                 ceilometer_  none    CPU of the instance."},{"line_number":28,"context_line":"                                             Used to calculate the threshold"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1bab9364_6b65ae46","line":25,"updated":"2025-06-04 10:49:05.000000000","message":"missing the unit used on both CPU and RAM because the CPU metric is always on percentage and the metric of RAM is always on MB, but as we mention that it is being used to calculate the threshold, the threshold is on percentage always, so we should specify it","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6818329333db31d04ef773d63270c9878ad89601","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":".. _ceilometer: https://docs.openstack.org/ceilometer/latest/admin/telemetry-measurements.html#openstack-compute"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"**Notes**"},{"line_number":36,"context_line":"* The parameters above references the instance CPU or RAM usage, but"},{"line_number":37,"context_line":"the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":38,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8eb8a6a8_311db981","line":35,"updated":"2025-06-05 14:42:58.000000000","message":"I think we need a newline here, the list below does not appear formatted properly in the output https://f4d288df50c4d6197cc9-ff2d888c3307ad9718a14b305143c473.ssl.cf5.rackcdn.com/openstack/419b63f1b9614950ab8e30d452edacf2/docs/strategies/workload_balance.html#metrics","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"14c7949a8324b57bfa4228ff62e723e0fc462504","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":".. _ceilometer: https://docs.openstack.org/ceilometer/latest/admin/telemetry-measurements.html#openstack-compute"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"**Notes**"},{"line_number":36,"context_line":"* The parameters above references the instance CPU or RAM usage, but"},{"line_number":37,"context_line":"the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":38,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"36672176_2f70ba6f","line":35,"in_reply_to":"8eb8a6a8_311db981","updated":"2025-06-05 18:51:00.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6818329333db31d04ef773d63270c9878ad89601","unresolved":true,"context_lines":[{"line_number":33,"context_line":".. _ceilometer: https://docs.openstack.org/ceilometer/latest/admin/telemetry-measurements.html#openstack-compute"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"**Notes**"},{"line_number":36,"context_line":"* The parameters above references the instance CPU or RAM usage, but"},{"line_number":37,"context_line":"the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":38,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":39,"context_line":"and the available RAM on the hypervisor."}],"source_content_type":"text/x-rst","patch_set":3,"id":"c4767b02_03ce835f","line":36,"updated":"2025-06-05 14:42:58.000000000","message":"```suggestion\n* The parameters above reference the instance CPU or RAM usage, but\n```","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"14c7949a8324b57bfa4228ff62e723e0fc462504","unresolved":false,"context_lines":[{"line_number":33,"context_line":".. _ceilometer: https://docs.openstack.org/ceilometer/latest/admin/telemetry-measurements.html#openstack-compute"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"**Notes**"},{"line_number":36,"context_line":"* The parameters above references the instance CPU or RAM usage, but"},{"line_number":37,"context_line":"the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":38,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":39,"context_line":"and the available RAM on the hypervisor."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ad61c5ca_2731d5fc","line":36,"in_reply_to":"c4767b02_03ce835f","updated":"2025-06-05 18:51:00.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"e05f7dc1d430fbc59f4b75e774b4a86165147476","unresolved":true,"context_lines":[{"line_number":38,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":39,"context_line":"and the available RAM on the hypervisor."},{"line_number":40,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"},{"line_number":41,"context_line":"of CPUs on the hypervisor."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Cluster data model"},{"line_number":44,"context_line":"******************"}],"source_content_type":"text/x-rst","patch_set":3,"id":"febac267_7760bb60","line":41,"updated":"2025-06-04 10:49:05.000000000","message":"we should mention how we calculate the host metrics, because we are not getting the RAM usage of the host, we are getting the RAM usage of each instance and we are sum() them. It is close to the real usage, but not the exact usage on the host (we are missing the SO consume or the dataplane). if any customer is getting graphs directly from the host, the usage we are reporting and the usage they will see on the graphs wont match","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"14c7949a8324b57bfa4228ff62e723e0fc462504","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":39,"context_line":"and the available RAM on the hypervisor."},{"line_number":40,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"},{"line_number":41,"context_line":"of CPUs on the hypervisor."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Cluster data model"},{"line_number":44,"context_line":"******************"}],"source_content_type":"text/x-rst","patch_set":3,"id":"65e100f6_be3e9cdf","line":41,"in_reply_to":"75f4396f_d69c0cdb","updated":"2025-06-05 18:51:00.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6818329333db31d04ef773d63270c9878ad89601","unresolved":true,"context_lines":[{"line_number":38,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":39,"context_line":"and the available RAM on the hypervisor."},{"line_number":40,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"},{"line_number":41,"context_line":"of CPUs on the hypervisor."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Cluster data model"},{"line_number":44,"context_line":"******************"}],"source_content_type":"text/x-rst","patch_set":3,"id":"75f4396f_d69c0cdb","line":41,"in_reply_to":"febac267_7760bb60","updated":"2025-06-05 14:42:58.000000000","message":"+1, I agree we\u0027re missing this, otherwise the first bullet point is confusing","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"e05f7dc1d430fbc59f4b75e774b4a86165147476","unresolved":true,"context_lines":[{"line_number":80,"context_line":"                                             ram utilization. Choices:"},{"line_number":81,"context_line":"                                             [\u0027instance_cpu_usage\u0027,"},{"line_number":82,"context_line":"                                             \u0027instance_ram_usage\u0027]"},{"line_number":83,"context_line":"``threshold``    Number 25.0                 Workload threshold for migration."},{"line_number":84,"context_line":"                                             Used for both the source and the"},{"line_number":85,"context_line":"                                             destination calculations"},{"line_number":86,"context_line":"``period``       Number 300                  Aggregate time period of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"08ace467_0c4433b7","line":83,"updated":"2025-06-04 10:49:05.000000000","message":"same than above, threshold is always on percentage, for RAM and CPU, so we should note it here or as a global reminder","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"14c7949a8324b57bfa4228ff62e723e0fc462504","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                             ram utilization. Choices:"},{"line_number":81,"context_line":"                                             [\u0027instance_cpu_usage\u0027,"},{"line_number":82,"context_line":"                                             \u0027instance_ram_usage\u0027]"},{"line_number":83,"context_line":"``threshold``    Number 25.0                 Workload threshold for migration."},{"line_number":84,"context_line":"                                             Used for both the source and the"},{"line_number":85,"context_line":"                                             destination calculations"},{"line_number":86,"context_line":"``period``       Number 300                  Aggregate time period of"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bd0d0431_8e56f772","line":83,"in_reply_to":"08ace467_0c4433b7","updated":"2025-06-05 18:51:00.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"cc315dcd597696e31499d9f9fe2169a3ab992856","unresolved":true,"context_lines":[{"line_number":80,"context_line":"                                             ram utilization. Choices:"},{"line_number":81,"context_line":"                                             [\u0027instance_cpu_usage\u0027,"},{"line_number":82,"context_line":"                                             \u0027instance_ram_usage\u0027]"},{"line_number":83,"context_line":"``threshold``    Number 25.0                 Workload threshold for migration."},{"line_number":84,"context_line":"                                             Used for both the source and the"},{"line_number":85,"context_line":"                                             destination calculations"},{"line_number":86,"context_line":"``period``       Number 300                  Aggregate time period of"},{"line_number":87,"context_line":"                                             ceilometer"},{"line_number":88,"context_line":"``granularity``  Number 300                  The time between two measures in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0e387d9f_38702627","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":68},"updated":"2025-06-03 11:33:56.000000000","message":"Should we specify that it\u0027s expressed in percentage of host resource usage of the metric in `metrics` parameter?","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"228aed4e5e137398423f785bfbb559a451c6533d","unresolved":true,"context_lines":[{"line_number":85,"context_line":"                                             destination calculations"},{"line_number":86,"context_line":"``period``       Number 300                  Aggregate time period of"},{"line_number":87,"context_line":"                                             ceilometer"},{"line_number":88,"context_line":"``granularity``  Number 300                  The time between two measures in"},{"line_number":89,"context_line":"                                             an aggregated timeseries of a"},{"line_number":90,"context_line":"                                             metric"},{"line_number":91,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"87741f42_516246ca","line":88,"updated":"2025-06-04 15:55:38.000000000","message":"we should note that this parameter is only being used when having gnocchi backend, and it must match to any of the valid archive policies for the metric. If we set this parameter to any other value, the audit will fail with errors like:\n\nRESP BODY: {\"code\": 404, \"title\": \"Not Found\", \"description\": \"Aggregation method \u0027mean\u0027 at granularity \u002775.0\u0027 for metric 5039479a-7ecf-426d-b4b7-6fc2fb703bc0 does not exist\"}","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"14c7949a8324b57bfa4228ff62e723e0fc462504","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                                             destination calculations"},{"line_number":86,"context_line":"``period``       Number 300                  Aggregate time period of"},{"line_number":87,"context_line":"                                             ceilometer"},{"line_number":88,"context_line":"``granularity``  Number 300                  The time between two measures in"},{"line_number":89,"context_line":"                                             an aggregated timeseries of a"},{"line_number":90,"context_line":"                                             metric"},{"line_number":91,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"23435636_e782b490","line":88,"in_reply_to":"87741f42_516246ca","updated":"2025-06-05 18:51:00.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6425ea1052d1a70c0b0955e97893be7677203c73","unresolved":true,"context_lines":[{"line_number":37,"context_line":"**Notes**"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* The parameters above reference the instance CPU or RAM usage, but"},{"line_number":40,"context_line":"    the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":41,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":42,"context_line":"    and the available RAM on the hypervisor."},{"line_number":43,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a4cc4339_9a76faec","line":40,"updated":"2025-06-06 08:34:34.000000000","message":"the extra spaces in the second line of each bullet point is causing the first line to show up in bold in the generated doc https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_4c2/openstack/4c29233efd534472b503493356fd43de/docs/strategies/workload_balance.html#metrics I tested it locally and removing the two spaces to align it with the first line fixes the problem. See the first example in https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#lists-and-quote-like-blocks to check how multiple lines should aling in an rst list","commit_id":"bf2bbf6b1f362d85ed194ff4bb949ef3256c7fce"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"2ec5224d8e8f837bab1082dd2b729e93b6685d81","unresolved":false,"context_lines":[{"line_number":37,"context_line":"**Notes**"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* The parameters above reference the instance CPU or RAM usage, but"},{"line_number":40,"context_line":"    the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":41,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":42,"context_line":"    and the available RAM on the hypervisor."},{"line_number":43,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"}],"source_content_type":"text/x-rst","patch_set":6,"id":"c15e422e_284ae85d","line":40,"in_reply_to":"a4cc4339_9a76faec","updated":"2025-06-06 10:42:06.000000000","message":"Done","commit_id":"bf2bbf6b1f362d85ed194ff4bb949ef3256c7fce"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6425ea1052d1a70c0b0955e97893be7677203c73","unresolved":true,"context_lines":[{"line_number":80,"context_line":"Strategy parameters are:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":83,"context_line":"parameter        type   default Value        description"},{"line_number":84,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":85,"context_line":"``metrics``      String \u0027instance_cpu_usage\u0027 Workload balance base on cpu or"},{"line_number":86,"context_line":"                                             ram utilization. Choices:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"632b3822_38c053fc","line":83,"updated":"2025-06-06 08:34:34.000000000","message":"```suggestion\nparameter        type   default value        description\n```","commit_id":"bf2bbf6b1f362d85ed194ff4bb949ef3256c7fce"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"2ec5224d8e8f837bab1082dd2b729e93b6685d81","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Strategy parameters are:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":83,"context_line":"parameter        type   default Value        description"},{"line_number":84,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":85,"context_line":"``metrics``      String \u0027instance_cpu_usage\u0027 Workload balance base on cpu or"},{"line_number":86,"context_line":"                                             ram utilization. Choices:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"8b969e7b_5d03c17b","line":83,"in_reply_to":"632b3822_38c053fc","updated":"2025-06-06 10:42:06.000000000","message":"Done","commit_id":"bf2bbf6b1f362d85ed194ff4bb949ef3256c7fce"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"8d93c6e2a3e7107a543c58bac5524997cf49886e","unresolved":true,"context_lines":[{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"metric                  service name plugins unit        comment"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":"``cpu``                 ceilometer_  none    percentage  CPU of the instance."},{"line_number":28,"context_line":"                                                         Used to calculate the"},{"line_number":29,"context_line":"                                                         threshold"},{"line_number":30,"context_line":"``memory.resident``     ceilometer_  none    MB          RAM of the instance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"e2974711_8923dade","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":8},"updated":"2025-06-06 17:44:22.000000000","message":"These metrics are related to gnocchi metric naming, maybe we should use the `instance_cpu_usage` and `instance_ram_usage` here, since each Datasource translate to a different metric name.\nIn gnocchi we have[1], while in Prometheus we have[2]\n[1] https://github.com/openstack/watcher/blob/73f8728d22bb7193593b132757ec25260239b28b/watcher/decision_engine/datasources/gnocchi.py#L43-L44\n[2] https://github.com/openstack/watcher/blob/73f8728d22bb7193593b132757ec25260239b28b/watcher/decision_engine/datasources/prometheus.py#L41-L42\n\nWhat do you folks think about that?\nI also know that other Strategies may be using this same naming convention, but still, it will be confusing for other datasources.","commit_id":"e255e6f35ef631497339da2f8a97a5be1bbe4f2d"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"a53fd711c7df91ac55e96192fdd1e3292611d91f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"metric                  service name plugins unit        comment"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":"``cpu``                 ceilometer_  none    percentage  CPU of the instance."},{"line_number":28,"context_line":"                                                         Used to calculate the"},{"line_number":29,"context_line":"                                                         threshold"},{"line_number":30,"context_line":"``memory.resident``     ceilometer_  none    MB          RAM of the instance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"340d6f18_9be3eab1","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":8},"in_reply_to":"5aabe865_3d1a5335","updated":"2025-06-20 18:35:13.000000000","message":"It is actually the metric name ceilometer, as pointed by the service name column. It is fine and aligned with other docs. Sorry for the noise","commit_id":"e255e6f35ef631497339da2f8a97a5be1bbe4f2d"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"645a483e6bdeb6eaf0da11becd6e0ca8e6f5006e","unresolved":true,"context_lines":[{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":"metric                  service name plugins unit        comment"},{"line_number":26,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":27,"context_line":"``cpu``                 ceilometer_  none    percentage  CPU of the instance."},{"line_number":28,"context_line":"                                                         Used to calculate the"},{"line_number":29,"context_line":"                                                         threshold"},{"line_number":30,"context_line":"``memory.resident``     ceilometer_  none    MB          RAM of the instance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5aabe865_3d1a5335","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":8},"in_reply_to":"e2974711_8923dade","updated":"2025-06-06 19:51:07.000000000","message":"Leaving for group concensus","commit_id":"e255e6f35ef631497339da2f8a97a5be1bbe4f2d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"d45f665fae1030182ea785df0f11d7404266e29f","unresolved":true,"context_lines":[{"line_number":37,"context_line":"**Notes**"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* The parameters above reference the instance CPU or RAM usage, but"},{"line_number":40,"context_line":"  the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":41,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":42,"context_line":"  and the available RAM on the hypervisor."},{"line_number":43,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f1d3659e_2caebf5c","line":40,"updated":"2025-06-06 12:32:54.000000000","message":"```suggestion\n  the threshold calculation is based of the CPU/RAM usage on the hypervisor.\n```","commit_id":"e255e6f35ef631497339da2f8a97a5be1bbe4f2d"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"645a483e6bdeb6eaf0da11becd6e0ca8e6f5006e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"**Notes**"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* The parameters above reference the instance CPU or RAM usage, but"},{"line_number":40,"context_line":"  the threshold calculation is based of the CPU/RAM usage of the hypervisor."},{"line_number":41,"context_line":"* The RAM usage can be calculated based on the RAM consumed by the instance,"},{"line_number":42,"context_line":"  and the available RAM on the hypervisor."},{"line_number":43,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"}],"source_content_type":"text/x-rst","patch_set":7,"id":"d95c2235_9b42a9cd","line":40,"in_reply_to":"f1d3659e_2caebf5c","updated":"2025-06-06 19:51:07.000000000","message":"Done","commit_id":"e255e6f35ef631497339da2f8a97a5be1bbe4f2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Metrics"},{"line_number":15,"context_line":"*******"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The *workload_balance* strategy requires the following metrics:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"metric                  service name plugins unit        comment"}],"source_content_type":"text/x-rst","patch_set":8,"id":"41cfc70f_1ae9431c","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":23},"updated":"2025-06-24 18:32:00.000000000","message":"nit: this shoudl be\n\n```suggestion\nThe ``workload_balance`` strategy requires the following metrics:\n```\n\nwe shoudl be using literal syntax not italics to draw attention to the term.\n\nagain not specificly and issue with this patch just something we shoudl fix uniformly later to improve readablitylity.","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":".. _ceilometer: https://docs.openstack.org/ceilometer/latest/admin/telemetry-measurements.html#openstack-compute"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"**Notes**"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* The parameters above reference the instance CPU or RAM usage, but"},{"line_number":35,"context_line":"  the threshold calculation is based of the CPU/RAM usage on the hypervisor."}],"source_content_type":"text/x-rst","patch_set":8,"id":"1f79dab4_21fcc599","line":32,"updated":"2025-06-24 18:32:00.000000000","message":"same general comment as with host matinatnce\n\nNotes should use `.. note::`","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":true,"context_lines":[{"line_number":37,"context_line":"  and the available RAM on the hypervisor."},{"line_number":38,"context_line":"* The CPU percentage calculation relies on the CPU load, but also on the number"},{"line_number":39,"context_line":"  of CPUs on the hypervisor."},{"line_number":40,"context_line":"* The memory host metric is calculated by summing the RAM usage of each"},{"line_number":41,"context_line":"  instance on the host. This measure is close to the real usage, but is not"},{"line_number":42,"context_line":"  the exact usage on the host."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3cfd553c_9b575c5c","line":40,"range":{"start_line":40,"start_character":6,"end_line":40,"end_character":17},"updated":"2025-06-24 18:32:00.000000000","message":"```suggestion\n* The host memory metric is calculated by summing the RAM usage of each\n```","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":true,"context_lines":[{"line_number":77,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":78,"context_line":"parameter        type   default value        description"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":"``metrics``      String \u0027instance_cpu_usage\u0027 Workload balance base on cpu or"},{"line_number":81,"context_line":"                                             ram utilization. Choices:"},{"line_number":82,"context_line":"                                             [\u0027instance_cpu_usage\u0027,"},{"line_number":83,"context_line":"                                             \u0027instance_ram_usage\u0027]"}],"source_content_type":"text/x-rst","patch_set":8,"id":"27047192_2a552627","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":44},"updated":"2025-06-24 18:32:00.000000000","message":"i would personally avoid uing single qutes like this.","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                                             valid archive policies for the"},{"line_number":97,"context_line":"                                             metric."},{"line_number":98,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Efficacy Indicator"},{"line_number":101,"context_line":"------------------"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a875cfa_4e1692fa","line":99,"updated":"2025-06-24 18:32:00.000000000","message":"the tables all render preey nicely  +1\nhttps://96b713f55ce3ddbd612d-69e632a7aa98516f459f7791ccff0cc0.ssl.cf5.rackcdn.com/openstack/91b4ea2b71cd404494cfb01c1dafc5e6/docs/strategies/workload_balance.html#configuration","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":true,"context_lines":[{"line_number":111,"context_line":"How to use it ?"},{"line_number":112,"context_line":"---------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Create and audit template using the Workload Balancing strategy."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":".. code-block:: shell"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fdd5c396_63a8ae2c","line":114,"range":{"start_line":114,"start_character":7,"end_line":114,"end_character":10},"updated":"2025-06-24 18:32:00.000000000","message":"an","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":true,"context_lines":[{"line_number":118,"context_line":"    $ openstack optimize audittemplate create \\"},{"line_number":119,"context_line":"      at1 workload_balancing --strategy workload_balance"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Run an audit using the Workload Balance strategy where"},{"line_number":122,"context_line":"the aim is to get a plan to move VMs from any host where the"},{"line_number":123,"context_line":"CPU usage is over the threshold of 26%, to a host where the"},{"line_number":124,"context_line":"utilization of CPU is under the threshold."},{"line_number":125,"context_line":"The measurements of CPU utilization are taken from Ceilometer"},{"line_number":126,"context_line":"with an aggregate period of 310."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. code-block:: shell"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5d3d08d7_a5deeb38","line":126,"range":{"start_line":121,"start_character":0,"end_line":126,"end_character":32},"updated":"2025-06-24 18:32:00.000000000","message":"This is wrapped pretty tight. It\u0027s not wrong, but a little harder to read in plain text mode but ignoring that i would proably reprhase this a little.\n\n```suggestion\nRun an audit using the Workload Balance strategy. The result of the audit\nshould be an action plan to move VMs from any host where the CPU usage is\nover the threshold of 26%, to a host where the utilization of CPU is under\nthe threshold. The measurements of CPU utilization are taken from configured\ndatasouce plugin with an aggregate period of 310.\n```","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1340173a9d60d1a3a5982fc5d52fcb65d822665","unresolved":true,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Run an audit using the Workload Balance strategy to"},{"line_number":134,"context_line":"obtain a plan to balance VMs over hosts with a threshold of 20%."},{"line_number":135,"context_line":"In this case, the stipulation of the Ceilometer CPU utilization"},{"line_number":136,"context_line":"metric measurement is a combination of period and granularity."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":".. code-block:: shell"}],"source_content_type":"text/x-rst","patch_set":8,"id":"2087ed21_4c072123","line":135,"range":{"start_line":135,"start_character":37,"end_line":135,"end_character":51},"updated":"2025-06-24 18:32:00.000000000","message":"nit: again we probably shoudl not mention Ceilometer\n\nthe data can come from Ceilometer in this specific case but when monasca was used it did not.\n\nthe fact that Ceilometer is collecting the data is an internal implementation detail, the public contract is that the metric to use is called instance_cpu_usage.\n\nwe are not suing the libvirt exporter with Prometheus today but we could have been if slightly different choices were made.","commit_id":"f42cb8557b78f96c6c6f11d5238df39aa9b30b1d"}],"watcher/decision_engine/strategy/strategies/workload_balance.py":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6818329333db31d04ef773d63270c9878ad89601","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class WorkloadBalance(base.WorkloadStabilizationBaseStrategy):"},{"line_number":31,"context_line":"    \"\"\"[PoC]Workload balance using live migration"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    *Description*"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"6f48da83_f221d985","line":31,"updated":"2025-06-05 14:42:58.000000000","message":"I think we should remove the PoC tag from here","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"14c7949a8324b57bfa4228ff62e723e0fc462504","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class WorkloadBalance(base.WorkloadStabilizationBaseStrategy):"},{"line_number":31,"context_line":"    \"\"\"[PoC]Workload balance using live migration"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    *Description*"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"d43a3b53_060edfc7","line":31,"in_reply_to":"6f48da83_f221d985","updated":"2025-06-05 18:51:00.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6818329333db31d04ef773d63270c9878ad89601","unresolved":true,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    *Limitations*"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"       - This is a proof of concept that is not meant to be used in production"},{"line_number":55,"context_line":"       - We cannot forecast how many servers should be migrated. This is the"},{"line_number":56,"context_line":"         reason why we only plan a single virtual machine migration at a time."},{"line_number":57,"context_line":"         So it\u0027s better to use this algorithm with `CONTINUOUS` audits."}],"source_content_type":"text/x-python","patch_set":3,"id":"6c40e186_6daf8431","line":54,"updated":"2025-06-05 14:42:58.000000000","message":"I think we should remove this statement and rely on https://review.opendev.org/c/openstack/watcher/+/951440 to reflect support status","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"14c7949a8324b57bfa4228ff62e723e0fc462504","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    *Limitations*"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"       - This is a proof of concept that is not meant to be used in production"},{"line_number":55,"context_line":"       - We cannot forecast how many servers should be migrated. This is the"},{"line_number":56,"context_line":"         reason why we only plan a single virtual machine migration at a time."},{"line_number":57,"context_line":"         So it\u0027s better to use this algorithm with `CONTINUOUS` audits."}],"source_content_type":"text/x-python","patch_set":3,"id":"a71615c6_bcd2461e","line":54,"in_reply_to":"6c40e186_6daf8431","updated":"2025-06-05 18:51:00.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"16bc1c9093bfc5ad5a1fd0d76188842bc0faab23","unresolved":true,"context_lines":[{"line_number":108,"context_line":"                    \"default\": \"instance_cpu_usage\""},{"line_number":109,"context_line":"                },"},{"line_number":110,"context_line":"                \"threshold\": {"},{"line_number":111,"context_line":"                    \"description\": \"Workload threshold for migration - \""},{"line_number":112,"context_line":"                                   \"used for source and destination hosts\","},{"line_number":113,"context_line":"                    \"type\": \"number\","},{"line_number":114,"context_line":"                    \"default\": 25.0"}],"source_content_type":"text/x-python","patch_set":3,"id":"c1bd9c15_9feadfb0","line":111,"updated":"2025-06-04 10:50:16.000000000","message":"missing unit","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"},{"author":{"_account_id":9976,"name":"Ronelle Landy","email":"rlandy@redhat.com","username":"rlandy"},"change_message_id":"b8f011563aea057edb59103a07e4c985071bdeba","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                    \"default\": \"instance_cpu_usage\""},{"line_number":109,"context_line":"                },"},{"line_number":110,"context_line":"                \"threshold\": {"},{"line_number":111,"context_line":"                    \"description\": \"Workload threshold for migration - \""},{"line_number":112,"context_line":"                                   \"used for source and destination hosts\","},{"line_number":113,"context_line":"                    \"type\": \"number\","},{"line_number":114,"context_line":"                    \"default\": 25.0"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff5a88a_cc84e36e","line":111,"in_reply_to":"c1bd9c15_9feadfb0","updated":"2025-06-05 11:47:26.000000000","message":"Done","commit_id":"d6b05f7ec9c2c59409802f97cc6430f8712bf671"}]}
