)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7b0fff6739f35c948ce0daa4e69f528de58a57dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"be279727_410628b0","updated":"2026-03-30 13:26:43.000000000","message":"test-release-openstack gate failing due to an outdated Python version on the gate. More details available in https://review.opendev.org/c/openstack/grian-ui/+/982397.","commit_id":"efee79867e30ea52fcfa8428e7823ff07d18492e"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"2a5e34911fbbd6b4ffbe181c006f84bcdec513d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2db5378a_6d809df0","updated":"2026-06-01 07:19:34.000000000","message":"Let\u0027s get this in, if it is sane enough, so we can work adding other dashboards following the same pattern.","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"54d4984abf50dd6b1c1a9b467ea31011b7d99540","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"68041e2b_878f2781","in_reply_to":"09e1125c_9978693e","updated":"2026-06-26 16:13:18.000000000","message":"Done","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"30dc1f7cf1b04cd86ebc37bcfb69817f87d31520","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"09e1125c_9978693e","in_reply_to":"2db5378a_6d809df0","updated":"2026-06-01 12:52:51.000000000","message":"im off today but i took a quick looks the only change i woudl consider is instead fo commitign the vendored fiels pwerhasp we shoudl commti the trival bash script that download them or provide both?\n\nwhich is https://github.com/SeanMooney/grian-horizon-plugin/blob/master/grian_horizon_plugin/static/vendor/get_vendor.sh\n\nthat way we can very siealrly update them as needed and it makes it very clear that hte vendored copies are just that a copy not a forked version.\n\ngerrit is not a supper fan of syntax hilight massive singeline line minifed javascrtip but if mergin this help you proceed i think that ok\n\nill leave +w to you but the only other comment is this is obviously missign unite test and testing in genereal so hopefully we can adress that in follow up but i dont really see anything blocking given where grian ui is in its lifecycle.","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"69c68ad59830bd9a9ed80725e3a275d2e266ab1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"a79263ef_f1ca2775","updated":"2026-06-29 14:58:26.000000000","message":"@smooney@redhat.com this change is ready to review and merge, I\u0027m happy enough with the result 🙂","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bf1c405c4d2d96511fac03e3041a105ee72adc65","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"155fa74f_fa452449","updated":"2026-06-29 15:22:01.000000000","message":"i think this is mostly good to go as well a couple of minor nits inline that i think would eb good to adress before the initail 0.0.1 release","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"e26f4a9e_1f9e48e4","in_reply_to":"155fa74f_fa452449","updated":"2026-06-29 15:30:24.000000000","message":"Acknowledged","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"}],"MANIFEST.in":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"30dc1f7cf1b04cd86ebc37bcfb69817f87d31520","unresolved":true,"context_lines":[{"line_number":1,"context_line":"include AUTHORS"},{"line_number":2,"context_line":"include ChangeLog"},{"line_number":3,"context_line":"exclude .gitignore"},{"line_number":4,"context_line":"exclude .gitreview"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"global-exclude *.pyc"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"recursive-include src/grian_ui *.py"},{"line_number":9,"context_line":"recursive-include src/grian_ui/templates *.html"}],"source_content_type":"text/x-properties","patch_set":5,"id":"bddf34d2_f35be9cc","line":6,"range":{"start_line":3,"start_character":0,"end_line":6,"end_character":20},"updated":"2026-06-01 12:52:51.000000000","message":"i found out recently that how pbr actully works is it will generate the manifest for your if it does not exist and it will extended it if it does whne needed.\n\nso if we want to exclude fiels form the sdist package then this is the correct way to do that.","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"54d4984abf50dd6b1c1a9b467ea31011b7d99540","unresolved":false,"context_lines":[{"line_number":1,"context_line":"include AUTHORS"},{"line_number":2,"context_line":"include ChangeLog"},{"line_number":3,"context_line":"exclude .gitignore"},{"line_number":4,"context_line":"exclude .gitreview"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"global-exclude *.pyc"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"recursive-include src/grian_ui *.py"},{"line_number":9,"context_line":"recursive-include src/grian_ui/templates *.html"}],"source_content_type":"text/x-properties","patch_set":5,"id":"69a273ec_28378715","line":6,"range":{"start_line":3,"start_character":0,"end_line":6,"end_character":20},"in_reply_to":"bddf34d2_f35be9cc","updated":"2026-06-26 16:13:18.000000000","message":"Acknowledged","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"}],"pyproject.toml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44779ef4613e0783280f50a695020e030a98cf2b","unresolved":true,"context_lines":[{"line_number":9,"context_line":"authors \u003d ["},{"line_number":10,"context_line":"  {name \u003d \"OpenStack\", email \u003d \"openstack-discuss@lists.openstack.org\"},"},{"line_number":11,"context_line":"]"},{"line_number":12,"context_line":"requires-python \u003d \"\u003e\u003d3.10\""},{"line_number":13,"context_line":"license \u003d \"Apache-2.0\""},{"line_number":14,"context_line":"classifiers \u003d ["},{"line_number":15,"context_line":"    \"Environment :: OpenStack\","}],"source_content_type":"text/x-toml","patch_set":13,"id":"ed51631b_49fefc0c","line":12,"updated":"2026-06-29 15:21:13.000000000","message":"we shoudl also increae this ot 3.11","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"authors \u003d ["},{"line_number":10,"context_line":"  {name \u003d \"OpenStack\", email \u003d \"openstack-discuss@lists.openstack.org\"},"},{"line_number":11,"context_line":"]"},{"line_number":12,"context_line":"requires-python \u003d \"\u003e\u003d3.10\""},{"line_number":13,"context_line":"license \u003d \"Apache-2.0\""},{"line_number":14,"context_line":"classifiers \u003d ["},{"line_number":15,"context_line":"    \"Environment :: OpenStack\","}],"source_content_type":"text/x-toml","patch_set":13,"id":"b4f228ea_8dcfaaec","line":12,"in_reply_to":"ed51631b_49fefc0c","updated":"2026-06-29 15:30:24.000000000","message":"Done","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44779ef4613e0783280f50a695020e030a98cf2b","unresolved":true,"context_lines":[{"line_number":15,"context_line":"    \"Environment :: OpenStack\","},{"line_number":16,"context_line":"    \"Intended Audience :: Information Technology\","},{"line_number":17,"context_line":"    \"Intended Audience :: System Administrators\","},{"line_number":18,"context_line":"    \"Operating System :: POSIX :: Linux\","},{"line_number":19,"context_line":"    \"Programming Language :: Python\","},{"line_number":20,"context_line":"    \"Programming Language :: Python :: Implementation :: CPython\","},{"line_number":21,"context_line":"    \"Programming Language :: Python :: 3 :: Only\","}],"source_content_type":"text/x-toml","patch_set":13,"id":"0eb97f58_6b567bbd","line":18,"updated":"2026-06-29 15:21:13.000000000","message":"would you mind adding \n\n`Development Status :: 2 - Pre-Alpha`\n\nhttps://pypi.org/classifiers/","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    \"Environment :: OpenStack\","},{"line_number":16,"context_line":"    \"Intended Audience :: Information Technology\","},{"line_number":17,"context_line":"    \"Intended Audience :: System Administrators\","},{"line_number":18,"context_line":"    \"Operating System :: POSIX :: Linux\","},{"line_number":19,"context_line":"    \"Programming Language :: Python\","},{"line_number":20,"context_line":"    \"Programming Language :: Python :: Implementation :: CPython\","},{"line_number":21,"context_line":"    \"Programming Language :: Python :: 3 :: Only\","}],"source_content_type":"text/x-toml","patch_set":13,"id":"111e109b_3c64fca8","line":18,"in_reply_to":"0eb97f58_6b567bbd","updated":"2026-06-29 15:30:24.000000000","message":"Done","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44779ef4613e0783280f50a695020e030a98cf2b","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    \"Programming Language :: Python :: Implementation :: CPython\","},{"line_number":21,"context_line":"    \"Programming Language :: Python :: 3 :: Only\","},{"line_number":22,"context_line":"    \"Programming Language :: Python :: 3\","},{"line_number":23,"context_line":"    \"Programming Language :: Python :: 3.10\","},{"line_number":24,"context_line":"    \"Programming Language :: Python :: 3.11\","},{"line_number":25,"context_line":"    \"Programming Language :: Python :: 3.12\","},{"line_number":26,"context_line":"    \"Programming Language :: Python :: 3.13\","}],"source_content_type":"text/x-toml","patch_set":13,"id":"0287c40d_06a528f8","line":23,"updated":"2026-06-29 15:21:13.000000000","message":"and we can remvoe 3.10 here","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    \"Programming Language :: Python :: Implementation :: CPython\","},{"line_number":21,"context_line":"    \"Programming Language :: Python :: 3 :: Only\","},{"line_number":22,"context_line":"    \"Programming Language :: Python :: 3\","},{"line_number":23,"context_line":"    \"Programming Language :: Python :: 3.10\","},{"line_number":24,"context_line":"    \"Programming Language :: Python :: 3.11\","},{"line_number":25,"context_line":"    \"Programming Language :: Python :: 3.12\","},{"line_number":26,"context_line":"    \"Programming Language :: Python :: 3.13\","}],"source_content_type":"text/x-toml","patch_set":13,"id":"5c3e326b_daee21ab","line":23,"in_reply_to":"0287c40d_06a528f8","updated":"2026-06-29 15:30:24.000000000","message":"Done","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44779ef4613e0783280f50a695020e030a98cf2b","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    \"Programming Language :: Python :: 3.10\","},{"line_number":24,"context_line":"    \"Programming Language :: Python :: 3.11\","},{"line_number":25,"context_line":"    \"Programming Language :: Python :: 3.12\","},{"line_number":26,"context_line":"    \"Programming Language :: Python :: 3.13\","},{"line_number":27,"context_line":"]"},{"line_number":28,"context_line":"dynamic \u003d [\"version\"]"},{"line_number":29,"context_line":"keywords \u003d [\"openstack\", \"horizon\", \"telemetry\"]"}],"source_content_type":"text/x-toml","patch_set":13,"id":"2782e35e_6a7ac004","line":26,"updated":"2026-06-29 15:21:13.000000000","message":"and add 3.14\n\nto align to what we are testing and the upstream runtimes for this release\n\nhttps://github.com/openstack/governance/blob/master/reference/runtimes/2026.2.rst","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"Programming Language :: Python :: 3.10\","},{"line_number":24,"context_line":"    \"Programming Language :: Python :: 3.11\","},{"line_number":25,"context_line":"    \"Programming Language :: Python :: 3.12\","},{"line_number":26,"context_line":"    \"Programming Language :: Python :: 3.13\","},{"line_number":27,"context_line":"]"},{"line_number":28,"context_line":"dynamic \u003d [\"version\"]"},{"line_number":29,"context_line":"keywords \u003d [\"openstack\", \"horizon\", \"telemetry\"]"}],"source_content_type":"text/x-toml","patch_set":13,"id":"0b81cd43_77bd7484","line":26,"in_reply_to":"2782e35e_6a7ac004","updated":"2026-06-29 15:30:24.000000000","message":"Done","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"}],"src/grian_ui/content/__init__.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"30dc1f7cf1b04cd86ebc37bcfb69817f87d31520","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\"\"\""},{"line_number":2,"context_line":"Content package for Grian UI."},{"line_number":3,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"bfbb77c9_130b763a","line":1,"updated":"2026-06-01 12:52:51.000000000","message":"nit i generally perfer the pattern of keepign __init__.py file empty btu this si also ok","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"54d4984abf50dd6b1c1a9b467ea31011b7d99540","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\"\"\""},{"line_number":2,"context_line":"Content package for Grian UI."},{"line_number":3,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"f42ec2f6_cd36fd7f","line":1,"in_reply_to":"bfbb77c9_130b763a","updated":"2026-06-26 16:13:18.000000000","message":"Acknowledged","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"}],"src/grian_ui/content/volume_metrics/README.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"30dc1f7cf1b04cd86ebc37bcfb69817f87d31520","unresolved":true,"context_lines":[{"line_number":1,"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"},{"line_number":2,"context_line":"Testing the Volume Metrics panel"},{"line_number":3,"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"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"21535317_05183012","line":1,"updated":"2026-06-01 12:52:51.000000000","message":"nit: this shoudl ideally be the same lenght","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"54d4984abf50dd6b1c1a9b467ea31011b7d99540","unresolved":false,"context_lines":[{"line_number":1,"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"},{"line_number":2,"context_line":"Testing the Volume Metrics panel"},{"line_number":3,"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"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"55d09048_1776801f","line":1,"in_reply_to":"21535317_05183012","updated":"2026-06-26 16:13:18.000000000","message":"Done","commit_id":"3d3d56ea278060d176f1d774c5fed98e23eb05ca"}],"src/grian_ui/datasource/prometheus.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d1066b59f15be27d1c6d8e30608faa724a64660b","unresolved":true,"context_lines":[{"line_number":14,"context_line":"from grian_ui.datasource.api import DatasourceClient"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"STALENESS_WINDOW \u003d \"10m\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class PrometheusTelemetryClient(DatasourceClient):"}],"source_content_type":"text/x-python","patch_set":13,"id":"6ea297be_113ad46e","line":17,"updated":"2026-06-29 14:56:25.000000000","message":"This is required for volumes / snapshots count. Ceilometer sends a volume.size sample when a volume exists. After deletion, no more samples are sent, but the existing time series stays in Prometheus. count() still counts it. A potential fix is to filter by staleness (this is the approach taken here)","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":true,"context_lines":[{"line_number":14,"context_line":"from grian_ui.datasource.api import DatasourceClient"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"STALENESS_WINDOW \u003d \"10m\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class PrometheusTelemetryClient(DatasourceClient):"}],"source_content_type":"text/x-python","patch_set":13,"id":"f0e73414_14fbaa4e","line":17,"in_reply_to":"0d2d3448_813aaba1","updated":"2026-06-29 15:30:24.000000000","message":"All right, let\u0027s do a follow up change with a better fix for this","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44779ef4613e0783280f50a695020e030a98cf2b","unresolved":true,"context_lines":[{"line_number":14,"context_line":"from grian_ui.datasource.api import DatasourceClient"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"STALENESS_WINDOW \u003d \"10m\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class PrometheusTelemetryClient(DatasourceClient):"}],"source_content_type":"text/x-python","patch_set":13,"id":"0d2d3448_813aaba1","line":17,"in_reply_to":"6ea297be_113ad46e","updated":"2026-06-29 15:21:13.000000000","message":"so in the future i think we are going to want to first ask cinder for the relevnet lsit of volums/snapshots\n\nand then only consider metrics for the non deleted set.\n\nbut for now this is ok for a pre-alpha release.\n\nwe can defer exactly how we do that to a separate change.","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d980c43a8032934b2e4a0882f9b638c4161de19d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from grian_ui.datasource.api import DatasourceClient"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"STALENESS_WINDOW \u003d \"10m\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class PrometheusTelemetryClient(DatasourceClient):"}],"source_content_type":"text/x-python","patch_set":13,"id":"a346e11a_81da01e4","line":17,"in_reply_to":"f0e73414_14fbaa4e","updated":"2026-06-29 17:16:28.000000000","message":"Acknowledged","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"}],"src/grian_ui/local/enabled/_1000_admin_telemetry_panel_group.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44779ef4613e0783280f50a695020e030a98cf2b","unresolved":true,"context_lines":[{"line_number":1,"context_line":"PANEL_GROUP \u003d \"telemetry\""},{"line_number":2,"context_line":"PANEL_GROUP_NAME \u003d \"Telemetry\""},{"line_number":3,"context_line":"PANEL_GROUP_DASHBOARD \u003d \"admin\""},{"line_number":4,"context_line":"AUTO_DISCOVER_STATIC_FILES \u003d True"}],"source_content_type":"text/x-python","patch_set":13,"id":"4c9a83a8_4b05a80a","line":3,"updated":"2026-06-29 15:21:13.000000000","message":"so eventuly i think we are goign to want ot have a tenant faceing verison fo this as well but starting admin only is simpler\n\nfor the tenant view we woudl obvioulsy need to filter to the relevnet teants resouces when approatie. i think ateos would be able to handel that via lookign at the user token but again we can defer the non admin view to a later change","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":true,"context_lines":[{"line_number":1,"context_line":"PANEL_GROUP \u003d \"telemetry\""},{"line_number":2,"context_line":"PANEL_GROUP_NAME \u003d \"Telemetry\""},{"line_number":3,"context_line":"PANEL_GROUP_DASHBOARD \u003d \"admin\""},{"line_number":4,"context_line":"AUTO_DISCOVER_STATIC_FILES \u003d True"}],"source_content_type":"text/x-python","patch_set":13,"id":"7c1b5d3f_cf6c5a67","line":3,"in_reply_to":"4c9a83a8_4b05a80a","updated":"2026-06-29 15:30:24.000000000","message":"Indeed, we can work on designing the tenant view as soon as we finish an MVP for the admin view","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d980c43a8032934b2e4a0882f9b638c4161de19d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"PANEL_GROUP \u003d \"telemetry\""},{"line_number":2,"context_line":"PANEL_GROUP_NAME \u003d \"Telemetry\""},{"line_number":3,"context_line":"PANEL_GROUP_DASHBOARD \u003d \"admin\""},{"line_number":4,"context_line":"AUTO_DISCOVER_STATIC_FILES \u003d True"}],"source_content_type":"text/x-python","patch_set":13,"id":"f515fdee_b5d1419a","line":3,"in_reply_to":"7c1b5d3f_cf6c5a67","updated":"2026-06-29 17:16:28.000000000","message":"Acknowledged","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"}],"src/grian_ui/local/local_settings.d/_3300_grian_ui.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44779ef4613e0783280f50a695020e030a98cf2b","unresolved":true,"context_lines":[{"line_number":6,"context_line":"# Note: \u0027prometheus\u0027 datasource uses the Aetos pattern with authenticated"},{"line_number":7,"context_line":"# Keystone session (following Watcher and CloudKitty). All Prometheus access"},{"line_number":8,"context_line":"# goes through Aetos - no direct host:port specification."},{"line_number":9,"context_line":"GRIAN_PLUGIN \u003d {\"datasource\": \"prometheus\"}"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a12a479_0fc92014","line":9,"range":{"start_line":9,"start_character":31,"end_line":9,"end_character":41},"updated":"2026-06-29 15:21:13.000000000","message":"shoudl we change this to Aetos to reflect that?","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d980c43a8032934b2e4a0882f9b638c4161de19d","unresolved":true,"context_lines":[{"line_number":6,"context_line":"# Note: \u0027prometheus\u0027 datasource uses the Aetos pattern with authenticated"},{"line_number":7,"context_line":"# Keystone session (following Watcher and CloudKitty). All Prometheus access"},{"line_number":8,"context_line":"# goes through Aetos - no direct host:port specification."},{"line_number":9,"context_line":"GRIAN_PLUGIN \u003d {\"datasource\": \"prometheus\"}"}],"source_content_type":"text/x-python","patch_set":13,"id":"7c0e793f_fe7d2c93","line":9,"range":{"start_line":9,"start_character":31,"end_line":9,"end_character":41},"in_reply_to":"5d12e90c_3b3900ad","updated":"2026-06-29 17:16:28.000000000","message":"yes and no.\nthat is true but the way we conenct to the abstract metric-storage service is via the ateos keyton service endpoint\n\nateos is in theory ment to be more then just a proxy, if promethous was to chagne it telemetrty naems or api format then ateos woudl need to ranslate them to the old format until a new v2 api was create and adopted by the services that integrate with it.\n\nit also provide tenancy over the prometheus data store when needed so really we shoudl avoid refering the prometheus in this codebase adn only refer to the openstack metric-storage serivce aka aetos.","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f7526f51910d482dc34606c0314639fe4d2978a5","unresolved":true,"context_lines":[{"line_number":6,"context_line":"# Note: \u0027prometheus\u0027 datasource uses the Aetos pattern with authenticated"},{"line_number":7,"context_line":"# Keystone session (following Watcher and CloudKitty). All Prometheus access"},{"line_number":8,"context_line":"# goes through Aetos - no direct host:port specification."},{"line_number":9,"context_line":"GRIAN_PLUGIN \u003d {\"datasource\": \"prometheus\"}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5d12e90c_3b3900ad","line":9,"range":{"start_line":9,"start_character":31,"end_line":9,"end_character":41},"in_reply_to":"7a12a479_0fc92014","updated":"2026-06-29 15:30:24.000000000","message":"Well, Prometheus is the actual storage. Aetos works as a proxy. So in that sense, Prometheus is more accurate if we want to use the term datasource.","commit_id":"f11200b49c306ddaa43fc71edf139f68eaf96c1c"}]}
