)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"9a5be7e9d39474be98cd53b3d79a01bdda093703","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"728c505d_eaa2c132","updated":"2026-09-17 07:46:22.000000000","message":"I think it\u0027d be nice to have a releasenote for such a significant feature. Otherwise the code lgtm","commit_id":"f8f82686765776668a241ad80265bafc83b4a85e"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"5241e57235dee89afcaddb84efc9c22fd5c231ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"98115be6_54b9b55c","updated":"2026-09-07 13:22:22.000000000","message":"Thank you, looks good to me.","commit_id":"f8f82686765776668a241ad80265bafc83b4a85e"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"b075ccb1619c63e006fc12c55ed7cadcc0371e59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a17635f5_23ba69f7","updated":"2026-09-17 07:59:26.000000000","message":"Thank you","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"479f844152c79a797a6fe0c58ace563c3754a6bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4b397bf1_10be3a9d","updated":"2026-09-17 10:06:26.000000000","message":"The change looks good to me but we need some attention about the optional dependency.","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"c1df5070a25a1c6dbd6fc7b38d03b74ad35af72a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"04fb64a4_c6fcd71a","in_reply_to":"31a39064_7aee33bf","updated":"2026-10-02 10:28:59.000000000","message":"https://review.opendev.org/c/openstack/requirements/+/996441 has been merged, so https://review.opendev.org/c/openstack/requirements/+/1003261 is not needed anymore and im abandoning it again.\n\nTakashi, is there some other comment that needs addressing in this patch","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"9e894d39cedb77b5e25d15ac143a60d1313466cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"df03ec15_3f298a22","in_reply_to":"4b397bf1_10be3a9d","updated":"2026-09-17 10:22:08.000000000","message":"But I never had to add to global-requirements.txt the optional dependencies before. I merged optional dependencies on oslo.middleware and oslo.messaging and both were merged with optional dependencies without an issue.","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f6176e9c830b662f50c49cb9a7e7c8b346fddc5f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fa8f5367_e45ae1ab","in_reply_to":"b064791c_4fa20848","updated":"2026-09-17 12:48:32.000000000","message":"\u003e But I never had to add to global-requirements.txt the optional dependencies before.\n\nNo you DID add these there. https://review.opendev.org/c/openstack/requirements/+/986327\n\n\u003e Wasn\u0027t the reason to have the dependency optional the first request on this patch?\n\nNo that\u0027s separate.\n\nI requested it to be an optional dependency so that we don\u0027t need to install it where it\u0027s not needed. However current check-requirements job requires even these optional dependencies, listed in any of (test-)requirements.txt, prproject.toml and setup.cfg being maintained in global-requirements. That\u0027s a different point we should be compliant with.","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"cb7bce323d3c8c2d4d539c93826a0cdc4d70e098","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"31a39064_7aee33bf","in_reply_to":"d15c96ec_42cde823","updated":"2026-09-17 14:59:13.000000000","message":"Oh, i did not remember. I had a requirements patch (https://review.opendev.org/c/openstack/requirements/+/1003261) abandoned due to this being converted into optional. Im going to restore it so we do not depend on https://review.opendev.org/c/openstack/requirements/+/996441, that can pass later.","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"5753b7c19bf33efb03a8a4f31c00b8326f31aa1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"b064791c_4fa20848","in_reply_to":"df03ec15_3f298a22","updated":"2026-09-17 12:34:22.000000000","message":"I am confused here. Where is the requirement for optional dependencies to be included in global requirements comes from? e.g libvirt is a dependency, we do not list it as requirement, but include it https://github.com/openstack/ceilometer/blob/master/ceilometer/compute/virt/libvirt/inspector.py#L21-L24\n\nWasn\u0027t the reason to have the dependency optional the first request on this patch?","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"ad3fa3b21a7acfedad0879ff1012b3cdb2b4cfc4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d15c96ec_42cde823","in_reply_to":"fa8f5367_e45ae1ab","updated":"2026-09-17 12:58:31.000000000","message":"See https://review.opendev.org/c/openstack/ceilometer/+/1006026 which demonstrates the check-requirement job problem. This problem isn\u0027t caught in this change due to lack of the appropriate trigger to run that job, which I\u0027m fixing by https://review.opendev.org/c/openstack/requirements/+/1006008","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2d565e31d63adc2c0a2944a743622f6d918e26fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"33cab96e_7ac9ad4f","updated":"2026-10-02 10:31:53.000000000","message":"https://review.opendev.org/c/openstack/requirements/+/996441 has merged, so this should be able to proceed without the dependency. please test this and let the reqs team know the result","commit_id":"ed0404591e5996b30504db80254a366a45258644"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"695ba6f41cf20da801bc0f8236a9bf0ddcbe354e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1c2681c6_866d493e","in_reply_to":"33cab96e_7ac9ad4f","updated":"2026-10-02 10:46:54.000000000","message":"Thanks for the heads up, rebased on top of master and ready for review.","commit_id":"ed0404591e5996b30504db80254a366a45258644"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"5ff99e550eb185f7abaf3e74b98cb1ea8f444afd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"284cc9d1_3c189db4","updated":"2026-10-14 10:59:07.000000000","message":"@kajinamit@oss.nttdata.com Hi takashi-san, do you think it is ready for merge?","commit_id":"1a4a8c787c1adb6068baff3d9fae4292d45943bd"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3dee3f38700a61b32095699cde7253adf58fd296","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"8b9542cb_966c9151","updated":"2026-10-14 12:25:21.000000000","message":"I don\u0027t have a real environment to verify this but I assume you already tested this in real servers with nvidia GPU I\u0027m ok to merge this now.","commit_id":"1a4a8c787c1adb6068baff3d9fae4292d45943bd"}],"ceilometer/compute/virt/libvirt/inspector.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3dee3f38700a61b32095699cde7253adf58fd296","unresolved":true,"context_lines":[{"line_number":352,"context_line":"        cache_key \u003d \u0027_vgpu_map\u0027"},{"line_number":353,"context_line":"        cache_ts_key \u003d \u0027_vgpu_map_ts\u0027"},{"line_number":354,"context_line":"        current_time \u003d now()"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        if (cache_key in self.cache"},{"line_number":357,"context_line":"                and current_time - self.cache.get(cache_ts_key, 0) \u003c 120):"},{"line_number":358,"context_line":"            return self.cache[cache_key]"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        vgpu_map \u003d {}"},{"line_number":361,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"33ac6fb7_e6a0e96a","line":358,"range":{"start_line":355,"start_character":0,"end_line":358,"end_character":40},"updated":"2026-10-14 12:25:21.000000000","message":"We could probably use cachetools.TTLCache for this, but that can be done in a follow-up","commit_id":"1a4a8c787c1adb6068baff3d9fae4292d45943bd"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b0054ee418e938c86678e3bc0b459fa2aac43f93","unresolved":true,"context_lines":[{"line_number":352,"context_line":"        cache_key \u003d \u0027_vgpu_map\u0027"},{"line_number":353,"context_line":"        cache_ts_key \u003d \u0027_vgpu_map_ts\u0027"},{"line_number":354,"context_line":"        current_time \u003d now()"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        if (cache_key in self.cache"},{"line_number":357,"context_line":"                and current_time - self.cache.get(cache_ts_key, 0) \u003c 120):"},{"line_number":358,"context_line":"            return self.cache[cache_key]"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        vgpu_map \u003d {}"},{"line_number":361,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"66c64b61_7d27aa76","line":358,"range":{"start_line":355,"start_character":0,"end_line":358,"end_character":40},"in_reply_to":"33ac6fb7_e6a0e96a","updated":"2026-10-14 12:34:18.000000000","message":"See https://review.opendev.org/c/openstack/ceilometer/+/1010423","commit_id":"1a4a8c787c1adb6068baff3d9fae4292d45943bd"}],"doc/source/admin/telemetry-measurements.rst":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5ec27af247b524eab9ef79caa55451d38b053742","unresolved":true,"context_lines":[{"line_number":246,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":247,"context_line":"| gpu.memo\\ | Gauge | MiB  | instance | Pollster | Libvirt | Total GPU memory |"},{"line_number":248,"context_line":"| ry.total  |       |      | ID       |          |         |                  |"},{"line_number":249,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":250,"context_line":"| gpu.temp\\ | Gauge | C    | instance | Pollster | Libvirt | GPU temperature  |"},{"line_number":251,"context_line":"| erature   |       |      | ID       |          |         |                  |"},{"line_number":252,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":253,"context_line":"| gpu.powe\\ | Gauge | mW   | instance | Pollster | Libvirt | GPU power        |"},{"line_number":254,"context_line":"| r.draw    |       |      | ID       |          |         | consumption      |"},{"line_number":255,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":256,"context_line":"| gpu.enco\\ | Gauge | %    | instance | Pollster | Libvirt | HW encoder       |"},{"line_number":257,"context_line":"| der.util\\ |       |      | ID       |          |         | utilization      |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"99a2afd8_1cd99d67","line":254,"range":{"start_line":249,"start_character":0,"end_line":254,"end_character":79},"updated":"2026-09-02 17:42:26.000000000","message":"I\u0027m asking this mostly from my curiosity but is there any real use case where users wants to know these metrics for their resources ? IMHO these inflammations are not directly related to actually resource usage but more related to hardware infrastructures, which users don\u0027t care about.","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"aaaa767e0cf9844a4f5e05fb69b957b06e00c9b7","unresolved":false,"context_lines":[{"line_number":246,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":247,"context_line":"| gpu.memo\\ | Gauge | MiB  | instance | Pollster | Libvirt | Total GPU memory |"},{"line_number":248,"context_line":"| ry.total  |       |      | ID       |          |         |                  |"},{"line_number":249,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":250,"context_line":"| gpu.temp\\ | Gauge | C    | instance | Pollster | Libvirt | GPU temperature  |"},{"line_number":251,"context_line":"| erature   |       |      | ID       |          |         |                  |"},{"line_number":252,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":253,"context_line":"| gpu.powe\\ | Gauge | mW   | instance | Pollster | Libvirt | GPU power        |"},{"line_number":254,"context_line":"| r.draw    |       |      | ID       |          |         | consumption      |"},{"line_number":255,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":256,"context_line":"| gpu.enco\\ | Gauge | %    | instance | Pollster | Libvirt | HW encoder       |"},{"line_number":257,"context_line":"| der.util\\ |       |      | ID       |          |         | utilization      |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c76a2365_ede192cb","line":254,"range":{"start_line":249,"start_character":0,"end_line":254,"end_character":79},"in_reply_to":"09062918_2dfdeff0","updated":"2026-09-03 09:35:30.000000000","message":"Done","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8ad3418f975cd73301fee62dd685d5db3d6eb30d","unresolved":false,"context_lines":[{"line_number":246,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":247,"context_line":"| gpu.memo\\ | Gauge | MiB  | instance | Pollster | Libvirt | Total GPU memory |"},{"line_number":248,"context_line":"| ry.total  |       |      | ID       |          |         |                  |"},{"line_number":249,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":250,"context_line":"| gpu.temp\\ | Gauge | C    | instance | Pollster | Libvirt | GPU temperature  |"},{"line_number":251,"context_line":"| erature   |       |      | ID       |          |         |                  |"},{"line_number":252,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":253,"context_line":"| gpu.powe\\ | Gauge | mW   | instance | Pollster | Libvirt | GPU power        |"},{"line_number":254,"context_line":"| r.draw    |       |      | ID       |          |         | consumption      |"},{"line_number":255,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":256,"context_line":"| gpu.enco\\ | Gauge | %    | instance | Pollster | Libvirt | HW encoder       |"},{"line_number":257,"context_line":"| der.util\\ |       |      | ID       |          |         | utilization      |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dcf37210_e486af51","line":254,"range":{"start_line":249,"start_character":0,"end_line":254,"end_character":79},"in_reply_to":"45ff2822_1f0d8390","updated":"2026-09-03 11:48:34.000000000","message":"Oh yes ! Sorry I misunderstood that.","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"18823c43862a2392678d837bfc1d9d6939e495d5","unresolved":true,"context_lines":[{"line_number":246,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":247,"context_line":"| gpu.memo\\ | Gauge | MiB  | instance | Pollster | Libvirt | Total GPU memory |"},{"line_number":248,"context_line":"| ry.total  |       |      | ID       |          |         |                  |"},{"line_number":249,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":250,"context_line":"| gpu.temp\\ | Gauge | C    | instance | Pollster | Libvirt | GPU temperature  |"},{"line_number":251,"context_line":"| erature   |       |      | ID       |          |         |                  |"},{"line_number":252,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":253,"context_line":"| gpu.powe\\ | Gauge | mW   | instance | Pollster | Libvirt | GPU power        |"},{"line_number":254,"context_line":"| r.draw    |       |      | ID       |          |         | consumption      |"},{"line_number":255,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":256,"context_line":"| gpu.enco\\ | Gauge | %    | instance | Pollster | Libvirt | HW encoder       |"},{"line_number":257,"context_line":"| der.util\\ |       |      | ID       |          |         | utilization      |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"09062918_2dfdeff0","line":254,"range":{"start_line":249,"start_character":0,"end_line":254,"end_character":79},"in_reply_to":"99a2afd8_1cd99d67","updated":"2026-09-03 09:35:20.000000000","message":"I think it might be. There is currently a huge interest on knowing how much power the datacenters drag at any moment and the temperature is critical to know how GPUs are behaving as they slow their processing when they are not cool enough.\n\nHowever, this comment made me realized that i updated the metrics we report. We report two sets of metrics: the vGPU ones relative to the VM usage and the physical metrics relative to the actual GPU hardware and I have to update it.","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a46353cf760ef9e6ecf49deb906ac40c8a6c0e07","unresolved":true,"context_lines":[{"line_number":246,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":247,"context_line":"| gpu.memo\\ | Gauge | MiB  | instance | Pollster | Libvirt | Total GPU memory |"},{"line_number":248,"context_line":"| ry.total  |       |      | ID       |          |         |                  |"},{"line_number":249,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":250,"context_line":"| gpu.temp\\ | Gauge | C    | instance | Pollster | Libvirt | GPU temperature  |"},{"line_number":251,"context_line":"| erature   |       |      | ID       |          |         |                  |"},{"line_number":252,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":253,"context_line":"| gpu.powe\\ | Gauge | mW   | instance | Pollster | Libvirt | GPU power        |"},{"line_number":254,"context_line":"| r.draw    |       |      | ID       |          |         | consumption      |"},{"line_number":255,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":256,"context_line":"| gpu.enco\\ | Gauge | %    | instance | Pollster | Libvirt | HW encoder       |"},{"line_number":257,"context_line":"| der.util\\ |       |      | ID       |          |         | utilization      |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f3c59561_3b9929a1","line":254,"range":{"start_line":249,"start_character":0,"end_line":254,"end_character":79},"in_reply_to":"c76a2365_ede192cb","updated":"2026-09-03 10:13:37.000000000","message":"May vague concern regarding these two metris are that these expose information about physical infrastructure we in general avoid in a cloud platform. If these metrics are useful for datacenter operators, and no users, then having these options for per-pGPU might be enough.","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"a45edb06863b7a062e00f28810ea0385ef2e29e3","unresolved":false,"context_lines":[{"line_number":246,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":247,"context_line":"| gpu.memo\\ | Gauge | MiB  | instance | Pollster | Libvirt | Total GPU memory |"},{"line_number":248,"context_line":"| ry.total  |       |      | ID       |          |         |                  |"},{"line_number":249,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":250,"context_line":"| gpu.temp\\ | Gauge | C    | instance | Pollster | Libvirt | GPU temperature  |"},{"line_number":251,"context_line":"| erature   |       |      | ID       |          |         |                  |"},{"line_number":252,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":253,"context_line":"| gpu.powe\\ | Gauge | mW   | instance | Pollster | Libvirt | GPU power        |"},{"line_number":254,"context_line":"| r.draw    |       |      | ID       |          |         | consumption      |"},{"line_number":255,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":256,"context_line":"| gpu.enco\\ | Gauge | %    | instance | Pollster | Libvirt | HW encoder       |"},{"line_number":257,"context_line":"| der.util\\ |       |      | ID       |          |         | utilization      |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"45ff2822_1f0d8390","line":254,"range":{"start_line":249,"start_character":0,"end_line":254,"end_character":79},"in_reply_to":"f3c59561_3b9929a1","updated":"2026-09-03 11:44:05.000000000","message":"Agree, if you look at the updated documentation, these two metrics are actually in the \"gpu.physical\" group that are reported only per gpu, not per-vGPU","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"a45edb06863b7a062e00f28810ea0385ef2e29e3","unresolved":true,"context_lines":[{"line_number":246,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":247,"context_line":"| gpu.memo\\ | Gauge | MiB  | instance | Pollster | Libvirt | Total GPU memory |"},{"line_number":248,"context_line":"| ry.total  |       |      | ID       |          |         |                  |"},{"line_number":249,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":250,"context_line":"| gpu.temp\\ | Gauge | C    | instance | Pollster | Libvirt | GPU temperature  |"},{"line_number":251,"context_line":"| erature   |       |      | ID       |          |         |                  |"},{"line_number":252,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":253,"context_line":"| gpu.powe\\ | Gauge | mW   | instance | Pollster | Libvirt | GPU power        |"},{"line_number":254,"context_line":"| r.draw    |       |      | ID       |          |         | consumption      |"},{"line_number":255,"context_line":"+-----------+-------+------+----------+----------+---------+------------------+"},{"line_number":256,"context_line":"| gpu.enco\\ | Gauge | %    | instance | Pollster | Libvirt | HW encoder       |"},{"line_number":257,"context_line":"| der.util\\ |       |      | ID       |          |         | utilization      |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0b677dec_94b1c9df","line":254,"range":{"start_line":249,"start_character":0,"end_line":254,"end_character":79},"in_reply_to":"f3c59561_3b9929a1","updated":"2026-09-03 11:44:05.000000000","message":"Agree. If you look closely to the updated version I uploaded as patchet 5, those two metrics are already in the gpu.physical group, which is reported per-gpu, not per-vgpu.","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a46353cf760ef9e6ecf49deb906ac40c8a6c0e07","unresolved":true,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":".. note::"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    The ``gpu.*`` meters report per-vGPU metrics for instances with"},{"line_number":292,"context_line":"    NVIDIA mdev devices attached. The ``gpu.physical.*`` meters report"},{"line_number":293,"context_line":"    per-physical-GPU metrics for the compute host. Temperature and"},{"line_number":294,"context_line":"    power draw are only available at the physical GPU level."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f79076a6_1d0d82fc","line":293,"range":{"start_line":291,"start_character":3,"end_line":293,"end_character":29},"updated":"2026-09-03 10:13:37.000000000","message":"Altenratively we can name per-vGPU metrcis `vgpu.*` and per-pGPU meters `pgpu.*` .","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e0f13b81ced476db5312eecf88fba1d9d787b1ea","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":".. note::"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    The ``gpu.*`` meters report per-vGPU metrics for instances with"},{"line_number":292,"context_line":"    NVIDIA mdev devices attached. The ``gpu.physical.*`` meters report"},{"line_number":293,"context_line":"    per-physical-GPU metrics for the compute host. Temperature and"},{"line_number":294,"context_line":"    power draw are only available at the physical GPU level."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9e332547_dd1faafb","line":293,"range":{"start_line":291,"start_character":3,"end_line":293,"end_character":29},"in_reply_to":"b7cf9b67_dddcc919","updated":"2026-09-03 15:47:27.000000000","message":"Done","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"a45edb06863b7a062e00f28810ea0385ef2e29e3","unresolved":true,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":".. note::"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    The ``gpu.*`` meters report per-vGPU metrics for instances with"},{"line_number":292,"context_line":"    NVIDIA mdev devices attached. The ``gpu.physical.*`` meters report"},{"line_number":293,"context_line":"    per-physical-GPU metrics for the compute host. Temperature and"},{"line_number":294,"context_line":"    power draw are only available at the physical GPU level."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b1deb309_ec84e2fc","line":293,"range":{"start_line":291,"start_character":3,"end_line":293,"end_character":29},"in_reply_to":"f79076a6_1d0d82fc","updated":"2026-09-03 11:44:05.000000000","message":"This is a great suggestion, ill apply it","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"a45edb06863b7a062e00f28810ea0385ef2e29e3","unresolved":true,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":".. note::"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    The ``gpu.*`` meters report per-vGPU metrics for instances with"},{"line_number":292,"context_line":"    NVIDIA mdev devices attached. The ``gpu.physical.*`` meters report"},{"line_number":293,"context_line":"    per-physical-GPU metrics for the compute host. Temperature and"},{"line_number":294,"context_line":"    power draw are only available at the physical GPU level."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b7cf9b67_dddcc919","line":293,"range":{"start_line":291,"start_character":3,"end_line":293,"end_character":29},"in_reply_to":"f79076a6_1d0d82fc","updated":"2026-09-03 11:44:05.000000000","message":"This is a very good advice, i like it by being more succint, but Ill go with vgpu.* and gpu.*","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"}],"requirements.txt":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c83ff77608808e606b5a998814285631d0b051a1","unresolved":true,"context_lines":[{"line_number":38,"context_line":"awscurl\u003e\u003d0.40 # MIT"},{"line_number":39,"context_line":"botocore\u003e\u003d1.20.0 # Apache-2.0"},{"line_number":40,"context_line":"openstacksdk\u003e\u003d4.6.0 # Apache-2.0"},{"line_number":41,"context_line":"nvidia-ml-py\u003e\u003d12.0.0 # BSD"}],"source_content_type":"text/plain","patch_set":4,"id":"39927715_02718456","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":26},"updated":"2026-09-02 17:39:46.000000000","message":"Can we make this an option dependency instead of a hard one ? You code indicates that you intended to make it optional but with this added here it\u0027s always installed.","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"18823c43862a2392678d837bfc1d9d6939e495d5","unresolved":true,"context_lines":[{"line_number":38,"context_line":"awscurl\u003e\u003d0.40 # MIT"},{"line_number":39,"context_line":"botocore\u003e\u003d1.20.0 # Apache-2.0"},{"line_number":40,"context_line":"openstacksdk\u003e\u003d4.6.0 # Apache-2.0"},{"line_number":41,"context_line":"nvidia-ml-py\u003e\u003d12.0.0 # BSD"}],"source_content_type":"text/plain","patch_set":4,"id":"6373ded5_f917d38c","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":26},"in_reply_to":"39927715_02718456","updated":"2026-09-03 09:35:20.000000000","message":"This is good advice, that way we will be replicating the model we are using for libvirt and ipmitool, as the three dependencies only need to be installed when ceilometer acts as compute agent.\n\nI have also added the requirement of having the nvidia library externally installed to get this functionality in the release notes.","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"aaaa767e0cf9844a4f5e05fb69b957b06e00c9b7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"awscurl\u003e\u003d0.40 # MIT"},{"line_number":39,"context_line":"botocore\u003e\u003d1.20.0 # Apache-2.0"},{"line_number":40,"context_line":"openstacksdk\u003e\u003d4.6.0 # Apache-2.0"},{"line_number":41,"context_line":"nvidia-ml-py\u003e\u003d12.0.0 # BSD"}],"source_content_type":"text/plain","patch_set":4,"id":"d2ab5cae_a5af8ca1","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":26},"in_reply_to":"6373ded5_f917d38c","updated":"2026-09-03 09:35:30.000000000","message":"Done","commit_id":"3e331eedc08996166a8bf1a612214988be63d2e0"}],"setup.cfg":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a46353cf760ef9e6ecf49deb906ac40c8a6c0e07","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    ceilometer"},{"line_number":30,"context_line":"data_files \u003d"},{"line_number":31,"context_line":"    etc/ceilometer \u003d etc/ceilometer/*"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[entry_points]"},{"line_number":34,"context_line":"ceilometer.notification.pipeline \u003d"},{"line_number":35,"context_line":"    meter \u003d ceilometer.pipeline.sample:SamplePipelineManager"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"5ff8ea57_1a5419c2","line":32,"updated":"2026-09-03 10:13:37.000000000","message":"Add\n\n```\n[extras]\ngpu \u003d\n  nvidia-ml-py\u003e\u003d12.0.0 # BSD\n```\nso that we can maintain constraints about the extra dependency.\n\nThis also allows users to install the required extra deps by `pip install ceilometer[gpu]`","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"a45edb06863b7a062e00f28810ea0385ef2e29e3","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    ceilometer"},{"line_number":30,"context_line":"data_files \u003d"},{"line_number":31,"context_line":"    etc/ceilometer \u003d etc/ceilometer/*"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[entry_points]"},{"line_number":34,"context_line":"ceilometer.notification.pipeline \u003d"},{"line_number":35,"context_line":"    meter \u003d ceilometer.pipeline.sample:SamplePipelineManager"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"f1f7a838_5c0a2643","line":32,"in_reply_to":"5ff8ea57_1a5419c2","updated":"2026-09-03 11:44:05.000000000","message":"I thought about this, as we are doing with otel in the oslo libraries, but we are not doing this with libvirt or ipmitool, so i dont know why should we add this","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"a45edb06863b7a062e00f28810ea0385ef2e29e3","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    ceilometer"},{"line_number":30,"context_line":"data_files \u003d"},{"line_number":31,"context_line":"    etc/ceilometer \u003d etc/ceilometer/*"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[entry_points]"},{"line_number":34,"context_line":"ceilometer.notification.pipeline \u003d"},{"line_number":35,"context_line":"    meter \u003d ceilometer.pipeline.sample:SamplePipelineManager"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"adedd72c_2616b8c8","line":32,"in_reply_to":"5ff8ea57_1a5419c2","updated":"2026-09-03 11:44:05.000000000","message":"Yeah, i thought about this, but we dont this with any of the other libraries that are optional (libvirt and ipmitool), so I wanted to follow the same pattern.","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"9b9f966bbfde44957891e8421bbe5e072c70edcb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    ceilometer"},{"line_number":30,"context_line":"data_files \u003d"},{"line_number":31,"context_line":"    etc/ceilometer \u003d etc/ceilometer/*"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[entry_points]"},{"line_number":34,"context_line":"ceilometer.notification.pipeline \u003d"},{"line_number":35,"context_line":"    meter \u003d ceilometer.pipeline.sample:SamplePipelineManager"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"ba97bd9f_807c5c6c","line":32,"in_reply_to":"c34182cb_677b509d","updated":"2026-09-03 13:32:12.000000000","message":"Done","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8ad3418f975cd73301fee62dd685d5db3d6eb30d","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    ceilometer"},{"line_number":30,"context_line":"data_files \u003d"},{"line_number":31,"context_line":"    etc/ceilometer \u003d etc/ceilometer/*"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[entry_points]"},{"line_number":34,"context_line":"ceilometer.notification.pipeline \u003d"},{"line_number":35,"context_line":"    meter \u003d ceilometer.pipeline.sample:SamplePipelineManager"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"c34182cb_677b509d","line":32,"in_reply_to":"f1f7a838_5c0a2643","updated":"2026-09-03 11:48:34.000000000","message":"I don\u0027t know the full context but I guess that we didn\u0027t add libvirt-python because it is generally recommended to use the one aligned with the libvirt in system (due to the same reason nova does not maintain libvirt)\n\nFor ipmitool it\u0027s a binary package so may need to be maintained in bindep, though AFAIK we do not really maintain package dependencies well in OpenStack projects so far.","commit_id":"f716ac6bbe3010aeb05442ce4f1c48da4540f8ab"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f8999b805d7b069f5b42a3ed4a243194869ab5f5","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[extras]"},{"line_number":34,"context_line":"gpu \u003d"},{"line_number":35,"context_line":"    nvidia-ml-py\u003e\u003d12.0.0"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[entry_points]"},{"line_number":38,"context_line":"ceilometer.notification.pipeline \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"bbeb3946_1069d21b","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":24},"updated":"2026-09-17 10:04:12.000000000","message":"I\u0027m now waiting if we get https://review.opendev.org/c/openstack/requirements/+/996441 merged, because this optional dependency might be a blocker for upcoming migration to pyproject.toml (in case we decide all optional dependencies should be maintained in upper-constraints)","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"479f844152c79a797a6fe0c58ace563c3754a6bc","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[extras]"},{"line_number":34,"context_line":"gpu \u003d"},{"line_number":35,"context_line":"    nvidia-ml-py\u003e\u003d12.0.0"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[entry_points]"},{"line_number":38,"context_line":"ceilometer.notification.pipeline \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"129e0cc6_224fe8da","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":24},"in_reply_to":"bbeb3946_1069d21b","updated":"2026-09-17 10:06:26.000000000","message":"Just noticed that the requirements-check job is not triggered due to recent requirements-check setup, and I\u0027m sure this breaks the check job so we really need that change or adding this library to upper constraints.","commit_id":"a952660b877abeb539eafadb170f0550ee90f483"}]}
