)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6418724d_d0bb97ca","updated":"2025-06-04 10:28:27.000000000","message":"Thank you Sean for going through the spec and thank you for clarifying that Watcher is currently an admin-only service (I wasn\u0027t sure about this previously). As mentioned in my comments, I can do quite a few modifications to the spec and focus on admin-only access to metrics.\n\nI\u0027ll go through the spec now and try to submit an updated version either later today or tomorrow.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"3e391f0e848fab7981a97e00cda477366bcfcfdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d80fba7b_aa2baca8","updated":"2025-06-03 16:08:28.000000000","message":"The key of aetos is to limit access for non-admin users to only their projects. However, all queries have to go through aetos in order to provide that limitation.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"276fafcaf3345a0c214dc2fdfedf411b28a1e308","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e9e56a59_24953bd9","updated":"2025-06-03 15:14:03.000000000","message":"This does not really seam to be align to how watcher (a admin only service) uses metrics.\n\nwe could add supprot for query via the Aetos server but we strictly need that capablity to query metrics without any teant and metrics for that have a tenant but are not for the tenat associated with he keystone token.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6c2927b1ccf44140c047062c5bae049c5e313950","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"561c39fe_7a63930e","in_reply_to":"235fbe8b_af6e468c","updated":"2025-06-06 16:52:27.000000000","message":"ack that sound good.\nim pretty spent today so i wont have the energy to review propelry but ill put this on my todo list for monday.\n\ni see you ahve updated the spec, so I have no issue with passing the token extra i just want to make sure we don\u0027t regress the integration.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fcf1ef433167ce2f57e7e8e6b63c30d497bcedce","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d5174902_785af886","in_reply_to":"28694879_fc444802","updated":"2025-06-03 17:19:42.000000000","message":"ok i think you missed my point\nthe watcher project has no non admin users.\n\nand we dont plan to supprot non admin user in the  sort to medium term.\ni.e. in the next 12-18 months.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"50108a77_75ad06e7","in_reply_to":"561c39fe_7a63930e","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ae2a3237_e8a363c2","in_reply_to":"6283327d_0e91279a","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"235fbe8b_af6e468c","in_reply_to":"d5174902_785af886","updated":"2025-06-04 10:28:27.000000000","message":"It is expected, that services may have different demands on what metrics they need. It\u0027s not the goal of Aetos to break other services or to place unnecessary restrictions on them.\n\nThanks for clarifying that Watcher is admin only service. What Aetos needs from Watcher in this case is a token with either an admin or a service role. In this case Aetos enforces authentication, but no restrictions on which metrics can be queried.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fcf1ef433167ce2f57e7e8e6b63c30d497bcedce","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f7cd53dc_c37e03ae","in_reply_to":"d80fba7b_aa2baca8","updated":"2025-06-03 17:19:42.000000000","message":"That is ok, but we need to ensure that watcher can continue to query as admin and retrieve all available metrics.\n\nso in 2 years time we might consider evovlign wather to provide limited functionality to non-admins but its not currently in the proejct roadmap to extend watcher to non-admins.\n\nas such this spec shoudl focus on how watcher will fucntion in an admin only context with the intorduction of aetos. specifcly how we will contibue to be able to retrive both tenenat and non-tenancy metrics without needing to break up our existing queries into multiple queies.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"3e391f0e848fab7981a97e00cda477366bcfcfdc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"28694879_fc444802","in_reply_to":"e9e56a59_24953bd9","updated":"2025-06-03 16:08:28.000000000","message":"The goal of aetos is to restrict access to prometheus for non-admin users to only their project. Admin users are not affected, but in order to achieve the filtering/restriction, all accesses have to go through aetos.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6283327d_0e91279a","in_reply_to":"f7cd53dc_c37e03ae","updated":"2025-06-04 10:28:27.000000000","message":"I\u0027ll modify the spec with the focus on admin only context.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"87d055251bcffcbfbd237e79ccb928f6307f1f80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"edec9591_cb2ea31a","updated":"2025-06-24 17:57:09.000000000","message":"I hope I addressed all of your current feedback @smooney@redhat.com . Since you want to distinguish between the cases where you communicate with Prometheus and where you communicate with Aetos, I decided to treat them as 2 different datasources. While Aetos and Prometheus behave basically the same except for the need of a token, it seems to me it\u0027s easier for writing the spec, for the implementation as well as for the people deploying Watcher in the future.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9d2c77c4_8a53e170","updated":"2025-06-24 13:39:55.000000000","message":"Is this still something you want to pursue this cycle?\n\nim getting concerned with the lack of progress on this.\ni was hoping that this would have been revised in the last 7 days. \nthe spec approval deadline is July 3rd. if this is not updated reviewed and approved by that time then this will be procedural block until the 2026.1 cycle opens in September.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"2d475908960375ff48a7507e6ad9df3e2e036df9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"75781bb4_5abcd148","updated":"2025-06-12 12:38:01.000000000","message":"Part of the implementation (external to this spec, since it is deployment related) is to forbid access to prometheus for all traffic that is not authenticated through aetos or the kube-rbac-proxy.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bd5b6fa1_07e05c01","updated":"2025-06-24 19:11:43.000000000","message":"Thanks for taking a time to write the spec. It is important for us to discuss some parts of the design and expectations on how it is going to work.\nI think that we should be able to implement the proposal, but some details are still missing, or need to be discussed: on how this is going to be enabled, which will be the default behavior, more details about testing and configuration options.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"4c1ca3f4232fec1e7344acd64cd0e9b811eae5e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4e637cf0_f3d2942e","in_reply_to":"9d2c77c4_8a53e170","updated":"2025-06-24 16:09:36.000000000","message":"Yes, I want to pursue this. I was planning to update it this week. Actually let me get to it right now.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e5ed1492_c94b99a0","in_reply_to":"bd5b6fa1_07e05c01","updated":"2025-07-01 22:33:15.000000000","message":"Since the comment, I filled in some more details and we had a discussion. Do you think there is anything more needed?","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d17664e9d15425336eef018d894b934e1771875","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2173d126_e6e477b0","updated":"2025-06-30 15:09:59.000000000","message":"lookign at this again you have pivitored this to adding a whole new datasouce which is a much more invovled change.\n\ntehre are defeintly pros and cons to that which we have since discssed.\n\ni have have tried to capture the outcome of that in the spec below.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6991955bc3811f49147600792a3005f4f0e11ff7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a89dc254_27043b8a","updated":"2025-06-25 17:38:55.000000000","message":"this is much closer. i need to do another pass on this tomorrow but it definitely clear now what you want to do.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1db2d7b6_9a19f9bc","updated":"2025-07-01 12:12:43.000000000","message":"can you go though ech of the commend form all patch set that are not resovled and conrim that tey are resovled.\n\nwhen you upload a new patch set you are normally expected to mark them as resolved with a commend sayitn it was done or acknowledging general guidance.\n\nif they are not doen or you have questions you leave them open to singla that they are still undecided and need more discussion before we can proceed.\n\nwhere you want the orgiall commenter to confirm that you adress there feed back you should ask for that confirmation and leave it unresloved.\n\nit make i much harder to reviwe if you do not do that as i dont know if your plannign to do another revesion to address the remaingin feedback\n\nyou did not adress much fo the pendign commet in this reviewsion so you need to do that before we can proceed.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3711c9e6_8630922e","in_reply_to":"1db2d7b6_9a19f9bc","updated":"2025-07-01 22:33:15.000000000","message":"A resolved most of the comments, leaving 2 where I asked you and Dougless to confirm they\u0027re properly addressed. I also marked the \"move this content somewhere else\" comments as resolved, since we agreed to fix this as a followup.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"da5c9800d6afbaac594a6666890ec94bc0f629c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"30acc8d5_1edf6178","updated":"2025-07-02 12:44:06.000000000","message":"not sure if we are missing anything mandatory here, we can also move things to a follow up change, no problem.\nI can upgrade my vote in order to get this merged, once we agree on the follow ups too.\nthanks for updating the spec","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d2764226a249cb445e21e7ee9b30f80f6a0bdf3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"94348925_f128f0c3","updated":"2025-07-02 15:47:18.000000000","message":"I can +2 when the follow up[1] is rebased and passing CI. I don\u0027t thin we should update this one anymore, only if you merge both changes. Otherwise, proposed updates to the follow up\n\n[1] https://review.opendev.org/c/openstack/watcher-specs/+/953912","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6f13007d180066f8f099be92caa23da0eba6bbdd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"158aac6a_868f1fa8","updated":"2025-07-02 15:34:15.000000000","message":"this is still not correct but its closer.\n\nim going to review the follow up patch. im im happy with the combination fo the tow ill upgrade to +2","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"1f8dfa2416caf4bf0c07cbdf672a855515f1eb8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6e81940a_ba020cce","updated":"2025-07-02 18:34:42.000000000","message":"Thanks for working in the spec Jaromir. Thanks for merging the patches @sean.\nI think that is in a better format now, and we can work on a follow up if needed.","commit_id":"c9c4e4e8cfefb42260348a426f43d2dfd3a4c5e4"}],"specs/2025.2/approved/prometheus-multitenancy-support.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"276fafcaf3345a0c214dc2fdfedf411b28a1e308","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"What we\u0027ll need from watcher is to provide a session object when creating"},{"line_number":33,"context_line":"the PrometheusAPIClient once we release the next version of the"},{"line_number":34,"context_line":"observabilityclient library. See the new init function signature:"},{"line_number":35,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":36,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":37,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":38,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":39,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c4b463b9_a40ce326","line":36,"range":{"start_line":34,"start_character":28,"end_line":36,"end_character":71},"updated":"2025-06-03 15:14:03.000000000","message":"this api does not seam to aling ot how watcher will use data form prometuse\n\nPromQLRbac expect that all queise shoudl have a single proejct id\nhowever today none of our queies are project scoped and we need\nto be able to effiecnely query for a set of metrics related to a set of host  nad the instance that resided on the host regardless of the ownership of those resouces.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"What we\u0027ll need from watcher is to provide a session object when creating"},{"line_number":33,"context_line":"the PrometheusAPIClient once we release the next version of the"},{"line_number":34,"context_line":"observabilityclient library. See the new init function signature:"},{"line_number":35,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":36,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":37,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":38,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":39,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"99f46941_5efdfbd5","line":36,"range":{"start_line":34,"start_character":28,"end_line":36,"end_character":71},"in_reply_to":"1c8deaac_bfdbb1d2","updated":"2025-06-24 13:39:55.000000000","message":"this is not relevent to the scope fo this spec so resolving.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"What we\u0027ll need from watcher is to provide a session object when creating"},{"line_number":33,"context_line":"the PrometheusAPIClient once we release the next version of the"},{"line_number":34,"context_line":"observabilityclient library. See the new init function signature:"},{"line_number":35,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":36,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":37,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":38,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":39,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e69a746b_1348936f","line":36,"range":{"start_line":34,"start_character":28,"end_line":36,"end_character":71},"in_reply_to":"c4b463b9_a40ce326","updated":"2025-06-04 10:28:27.000000000","message":"Because I now know that Watcher is currently a admin only service, you can forget everything about the PromQLRbac. From service point of view, Aetos enforces authentication only.\n\nIn case of services used by non-admin users, especially those where users can specify their own queries (like Aodh), the services themselves would be responsible to restrict the queries to the current tenant where needed and to not leak other tenant data. This is why the PromQLRbac exists. It\u0027s provided for convenience to services interacting with non-admin users.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6c2927b1ccf44140c047062c5bae049c5e313950","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"What we\u0027ll need from watcher is to provide a session object when creating"},{"line_number":33,"context_line":"the PrometheusAPIClient once we release the next version of the"},{"line_number":34,"context_line":"observabilityclient library. See the new init function signature:"},{"line_number":35,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":36,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":37,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":38,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":39,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1c8deaac_bfdbb1d2","line":36,"range":{"start_line":34,"start_character":28,"end_line":36,"end_character":71},"in_reply_to":"e69a746b_1348936f","updated":"2025-06-06 16:52:27.000000000","message":"That will still be useful for https://opendev.org/openstack/grian-ui\n\ngrian-ui will have admin only dashbaord that will need host level an tenant metircs\nand tenant facing dashboard that will need to be scoped to the current project of the logged in user.\n\nwe will definetly use the PromQLRbac functionality for the tenant facing cases when we get to that point.\n\nI have been tied up with some other high-priority things for the last week\n\nI\u0027m hoping we can get grian-ui to a point where it can start getting metrics form Prometheus if not by the end of the month not long after that.\n\nif ateos is functional at that point, we can start with that form day one.\ni have a super minimal devstack jobs \nhttps://review.opendev.org/c/openstack/grian-ui/+/950912\nin flight but we dont quite have enough code in the repo for ti to work yet","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"276fafcaf3345a0c214dc2fdfedf411b28a1e308","unresolved":true,"context_lines":[{"line_number":48,"context_line":"Use Cases"},{"line_number":49,"context_line":"---------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Deployers will be allowed to configure watcher to access Prometheus through"},{"line_number":52,"context_line":"Aetos, which will in turn allow them to disable outside access to Prometheus"},{"line_number":53,"context_line":"potentially providing more security for stored metrics."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\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":"ff37254e_d0d1910e","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":55},"updated":"2025-06-03 15:14:03.000000000","message":"This is not written in the form of a use-case.\n\n```suggestion\nAs a deployer, i would like to providing more security for stored metrics by  disable outside access to Prometheus and implementing RBAC via the Aetos Reverse proxy server.\n```","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Use Cases"},{"line_number":49,"context_line":"---------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Deployers will be allowed to configure watcher to access Prometheus through"},{"line_number":52,"context_line":"Aetos, which will in turn allow them to disable outside access to Prometheus"},{"line_number":53,"context_line":"potentially providing more security for stored metrics."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\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":"429e4bf6_2e219418","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":55},"in_reply_to":"f8f95be6_13d42423","updated":"2025-06-24 13:39:55.000000000","message":"Done","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":true,"context_lines":[{"line_number":48,"context_line":"Use Cases"},{"line_number":49,"context_line":"---------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Deployers will be allowed to configure watcher to access Prometheus through"},{"line_number":52,"context_line":"Aetos, which will in turn allow them to disable outside access to Prometheus"},{"line_number":53,"context_line":"potentially providing more security for stored metrics."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Proposed change"},{"line_number":56,"context_line":"\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":"f8f95be6_13d42423","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":55},"in_reply_to":"ff37254e_d0d1910e","updated":"2025-06-04 10:28:27.000000000","message":"Thank you for the suggestion","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"276fafcaf3345a0c214dc2fdfedf411b28a1e308","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Use the PromQLRbac class to modify any query, which could potentially leak"},{"line_number":62,"context_line":"  metrics from other tenants to non-admin users. My suggestion here is to use"},{"line_number":63,"context_line":"  that on any query that can be specified or modified by the user."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4079f7dd_12089a5d","line":63,"updated":"2025-06-03 15:14:03.000000000","message":"so today we do not have any non admin users of watcher.\n\nall users are admins and the query we need to make are always or almost alwasy requireing metrics form all tenants.\n\nteh stragies we implement are generally scoped by host i.e. migrate all instnace on a set of host to other hosts to blance cpu usage.\n\nso by definiton our usage of metrics tend to not be aligned to the owner of the reosuces we are mangaing.\n\n\nif we were to ever extend watcher to non admin user we would want to restrict the usage to there project however that is not how watcher currently works.\n\nthe other consdieration for watcher is we supprot continuous or schduled audits.\n\nin that workflow we cannot use the users token but instaed will need to use an admin token that is created form wathchers config but then limit it to the relevent scope.\n\nthat means teh PromQLRbac calss will need to allow an admin toke chreated for proxy x to ask for filtered metrics belonging to project y.\n\nthe Aetos proxy will need allow such queries form tokens with the admin or service role.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Use the PromQLRbac class to modify any query, which could potentially leak"},{"line_number":62,"context_line":"  metrics from other tenants to non-admin users. My suggestion here is to use"},{"line_number":63,"context_line":"  that on any query that can be specified or modified by the user."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ae9bf53_53f4c609","line":63,"in_reply_to":"4079f7dd_12089a5d","updated":"2025-06-04 10:28:27.000000000","message":"I hope I answered the concerns written here in my comments above. Using admin tokens is expected and it should give you everything you need. PromQLRbac would be useful only in case watcher was interacting with non-admin users.\n\nI\u0027ll remove this part of the spec and anything around PromQLRbac, since it\u0027s clearly not needed for Watcher (at least not at this moment).","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6c2927b1ccf44140c047062c5bae049c5e313950","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Use the PromQLRbac class to modify any query, which could potentially leak"},{"line_number":62,"context_line":"  metrics from other tenants to non-admin users. My suggestion here is to use"},{"line_number":63,"context_line":"  that on any query that can be specified or modified by the user."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b273405d_e7c92d2a","line":63,"in_reply_to":"9ae9bf53_53f4c609","updated":"2025-06-06 16:52:27.000000000","message":"Acknowledged","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"276fafcaf3345a0c214dc2fdfedf411b28a1e308","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"We expect an increase in security on the metric storage side, which is the"},{"line_number":84,"context_line":"whole purpose of the change. Regular users won\u0027t be able to see metrics"},{"line_number":85,"context_line":"of other tenants."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Notifications impact"},{"line_number":88,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ef240956_bc48dc20","line":85,"updated":"2025-06-03 15:14:03.000000000","message":"watcvher is an admin only service and we do not provide metrics to our users directly anyway.\n\nteh way watcher works is an admin user asks for an audit to be executed.\nwe then use the metrics to compute efficiency indicators.\nif the value exceeds a given threshold, then we generate an action plan based on the selected strategy to improve the efficiency.\n\nthe effiancy indicators a syntetic metric dervied form both instance and host metrics.\n\nthe host metrics form node_exporter are not reported with an proejct_id as they are infrastucrue metrics, i.e. not metrics related to a api resouce.\n\nin general when we retrive instance or volume emtrics whiel they may be project scope we do not nessiarly know which ones are on a given hosts.\n\nthat not entirly true as we have an model of all the instnace and the host they resize on but we would not realy want ot have to comptue the set of project ids that are elvenve for a set of host and we certenly would not want to do multipel queires. 1 per porject.\n\n\nif we were to ever support non admins using watcher then we would need to restic som of the queries to be project specific but we would also  need to fundementally cahnge significnat part of how watcher works.\n\nfor exmaple as all stargies assume its the admin that are runnign them it assome sit can move any isntance.\n\nif we had non admin users we woudl have to limti both the actions that could be perfromed as well as the data that was provided. e.g. for correct operatoin of wather wehn we run a audit they woudl potitbnally still need to have the host metrics but a filtered set of instance metrics.\n\n\ni dont currently see any security benift to Aetos for the watcher proejct.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6c2927b1ccf44140c047062c5bae049c5e313950","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"We expect an increase in security on the metric storage side, which is the"},{"line_number":84,"context_line":"whole purpose of the change. Regular users won\u0027t be able to see metrics"},{"line_number":85,"context_line":"of other tenants."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Notifications impact"},{"line_number":88,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"65ba19ff_abb15026","line":85,"in_reply_to":"5b0a9317_3d8232ce","updated":"2025-06-06 16:52:27.000000000","message":"Acknowledged","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"We expect an increase in security on the metric storage side, which is the"},{"line_number":84,"context_line":"whole purpose of the change. Regular users won\u0027t be able to see metrics"},{"line_number":85,"context_line":"of other tenants."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Notifications impact"},{"line_number":88,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5b0a9317_3d8232ce","line":85,"in_reply_to":"ef240956_bc48dc20","updated":"2025-06-04 10:28:27.000000000","message":"I think I answered most of this above. I think there is still one benefit with Aetos and that\u0027s a forced authentication for prometheus.\n\nImagine a distributed control plane (can be RHOSO, but I\u0027m pretty sure we\u0027re not the only one doing this). Watcher and Prometheus can be on different nodes. Without Aetos, Prometheus would need to listen to all requests and send any metrics requested. If Watcher can provide its token when trying to communicate with Prometheus, then Aetos can be put in front of Prometheus on the same node and Prometheus can be configured to listen only to requests coming from Aetos. Thus metrics would be accessible only for authenticated requests.\n\nI\u0027ll edit the section in a form how it applies to Watcher (I\u0027ll remove the mention of regular users not being able to access other tenant metrics and instead mention, that metrics are accessible for authenticated requests)","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"276fafcaf3345a0c214dc2fdfedf411b28a1e308","unresolved":true,"context_lines":[{"line_number":93,"context_line":"---------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Users may not be able to use metrics from other tenants or metrics which don\u0027t"},{"line_number":96,"context_line":"have a tenant specified in Prometheus anymore."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Performance Impact"},{"line_number":99,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f0817b5_0cd65a1a","line":96,"updated":"2025-06-03 15:14:03.000000000","message":"se above we do not have any regural user only admin who by defintion should be able to see metrics for all project scoped resouces.\n\nand we must  have access to metrics with not teant for watcher to work properly.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6c2927b1ccf44140c047062c5bae049c5e313950","unresolved":false,"context_lines":[{"line_number":93,"context_line":"---------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Users may not be able to use metrics from other tenants or metrics which don\u0027t"},{"line_number":96,"context_line":"have a tenant specified in Prometheus anymore."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Performance Impact"},{"line_number":99,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f6a6b8fa_1ac1ec57","line":96,"in_reply_to":"81cddc66_07fef3c4","updated":"2025-06-06 16:52:27.000000000","message":"Acknowledged","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"d728b71c27669915b3d9f37d8a7270d415d96ff9","unresolved":true,"context_lines":[{"line_number":93,"context_line":"---------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Users may not be able to use metrics from other tenants or metrics which don\u0027t"},{"line_number":96,"context_line":"have a tenant specified in Prometheus anymore."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Performance Impact"},{"line_number":99,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"81cddc66_07fef3c4","line":96,"in_reply_to":"9f0817b5_0cd65a1a","updated":"2025-06-04 10:28:27.000000000","message":"Alright. I think this section can actually be removed.","commit_id":"61b1b6b260837fb0e6ae0a3bc449f79368ac651d"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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"},{"line_number":8,"context_line":"Support multitenancy with the Prometheus datasource"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"}],"source_content_type":"text/x-rst","patch_set":5,"id":"03b70125_748f3726","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":51},"updated":"2025-06-24 19:11:43.000000000","message":"IIUC the spec is actually integrating with Aethos, using a new version observability-client. Or maybe classify as Prometheus integration improvements, since you are also planning to add the root_path configuration.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f939a316923af46f9f7367a6572c1beed2d6b4c0","unresolved":true,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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"},{"line_number":8,"context_line":"Support multitenancy with the Prometheus datasource"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bb960fbc_65187f22","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":51},"in_reply_to":"03b70125_748f3726","updated":"2025-06-25 09:08:41.000000000","message":"I updated the title a little to make clear we\u0027re using Aetos in the PS I uploaded yesterday.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6991955bc3811f49147600792a3005f4f0e11ff7","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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"},{"line_number":8,"context_line":"Support multitenancy with the Prometheus datasource"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b52a57ca_4ba0a025","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":51},"in_reply_to":"bb960fbc_65187f22","updated":"2025-06-25 17:38:55.000000000","message":"Acknowledged","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a08a22721d88f6b0e006d59aa0269cc533250f8","unresolved":true,"context_lines":[{"line_number":7,"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"},{"line_number":8,"context_line":"Support multitenancy with the Prometheus datasource"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"},{"line_number":12,"context_line":"based authentication for metrics stored in Prometheus similarly to how it\u0027s"},{"line_number":13,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2a9790a2_95f3970d","line":10,"updated":"2025-06-24 13:46:36.000000000","message":"your missing the bluepirnt url by the way\n\nhttps://blueprints.launchpad.net/watcher/+spec/prometheus-multitenancy-support\n\nit shoudl match the file but it does not exist so ill create it for you.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"4c1ca3f4232fec1e7344acd64cd0e9b811eae5e8","unresolved":true,"context_lines":[{"line_number":7,"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"},{"line_number":8,"context_line":"Support multitenancy with the Prometheus datasource"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"},{"line_number":12,"context_line":"based authentication for metrics stored in Prometheus similarly to how it\u0027s"},{"line_number":13,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"}],"source_content_type":"text/x-rst","patch_set":5,"id":"80abfb2b_9bac7e0d","line":10,"in_reply_to":"2a9790a2_95f3970d","updated":"2025-06-24 16:09:36.000000000","message":"Thank you","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"87d055251bcffcbfbd237e79ccb928f6307f1f80","unresolved":false,"context_lines":[{"line_number":7,"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"},{"line_number":8,"context_line":"Support multitenancy with the Prometheus datasource"},{"line_number":9,"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"},{"line_number":12,"context_line":"based authentication for metrics stored in Prometheus similarly to how it\u0027s"},{"line_number":13,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ed22848_073a274a","line":10,"in_reply_to":"80abfb2b_9bac7e0d","updated":"2025-06-24 17:57:09.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"},{"line_number":12,"context_line":"based authentication for metrics stored in Prometheus similarly to how it\u0027s"},{"line_number":13,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"},{"line_number":14,"context_line":"when accessing Prometheus."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\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":5,"id":"e796d4a4_7205a4df","line":14,"updated":"2025-06-12 12:06:49.000000000","message":"ack, note that watcher already has implemented support for both the http_auth\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.username\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.password\n\nand cert based auth \n\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.cafile\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.certfile\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.keyfile\n\ncapabilities of the observability client as the initially way of supporting authenticated Prometheus.\n\nHTTP Basic Auth seems to be the standard way of adding authentication with Prometheus, based on how it is deployed in OpenStack installers like Kolla.\n\n\nthis proposal is futher enhancing auth capabilities to support keystone token auth.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6991955bc3811f49147600792a3005f4f0e11ff7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"},{"line_number":12,"context_line":"based authentication for metrics stored in Prometheus similarly to how it\u0027s"},{"line_number":13,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"},{"line_number":14,"context_line":"when accessing Prometheus."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\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":5,"id":"47a9a7dc_d140ef59","line":14,"in_reply_to":"0d1f4231_10e4860d","updated":"2025-06-25 17:38:55.000000000","message":"Acknowledged","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"2d475908960375ff48a7507e6ad9df3e2e036df9","unresolved":true,"context_lines":[{"line_number":11,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"},{"line_number":12,"context_line":"based authentication for metrics stored in Prometheus similarly to how it\u0027s"},{"line_number":13,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"},{"line_number":14,"context_line":"when accessing Prometheus."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\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":5,"id":"0d1f4231_10e4860d","line":14,"in_reply_to":"e796d4a4_7205a4df","updated":"2025-06-12 12:38:01.000000000","message":"The key here is that you want to handle authentication in keystone, not at the service level.\nWatcher being able to do authentication is a nice to have, IN ADDITION to the changes proposed here.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":29,"context_line":"observabilityclient library. A new release is about to be created"},{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d3672287_0400bcc0","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":119},"updated":"2025-06-12 12:06:49.000000000","message":"it rather unfortunet that the new code has been merged without documenmtion of the new interfaces it procide and without first demonstrating it works end to end usign depend on from a consumeing service.\n\ni do not think you shoudl do a release in it current state until the testing and docusmentaiton gaps have been fix since those shoudl have been closed before mergin ghtis code.\n\nspecificly i woudl have expect you to have update the devstack job for the obeserablity client to deploy aetos and confirugre teh keysstone auth before merging the new functionatliy and doing a release of the observablity client with this enhancment and documention fo how this works for project to consume wehn reviewing the itegration.\n\n\ni will expect to have such a job update before we merge any supprot for this in watcher and an update to the watcher docs to descibe how to configure this end to end.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"1449c1a7069f20c9849d3bc653c5c2d90b93df27","unresolved":true,"context_lines":[{"line_number":29,"context_line":"observabilityclient library. A new release is about to be created"},{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d2392d7a_fe45c667","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":119},"in_reply_to":"1571c31f_363111ed","updated":"2025-06-16 06:26:48.000000000","message":"I\u0027m not sure which change exactly you want tested. It\u0027s not that visible, but the latest commit on the released version of the observabilityclient was in fact tested with a Depends-On in the telemetry-tempest-plugin review here: https://review.opendev.org/c/openstack/telemetry-tempest-plugin/+/951387 . The last zuul build actually runs telemetry tests with Aetos and with the new code in observabilityclient. As part of those tests, we do an autoscaling scenario, which means that Aodh is sending requests to Prometheus through Aetos successfuly.\n\nRegarding the missing documentation. The observabilityclient doesn\u0027t have a documentation at all https://opendev.org/openstack/python-observabilityclient/src/branch/master/doc . It started as an independent client outside of openstack and as such it didn\u0027t follow all the practices. It later moved inside openstack. Some of the gaps were already addressed, but adding documentation is something we still need to do. But in this situation I don\u0027t see having an undocumented change as a big issue.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"observabilityclient library. A new release is about to be created"},{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7feb48f5_26b4c014","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":119},"in_reply_to":"65cbb700_d11373bf","updated":"2025-06-24 13:39:55.000000000","message":"The lack of testing and documentation in python-observabilityclient is problematic, but let\u0027s put it aside for now, adn we will focus on the testing requirement for watcher later in this spec.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"beb29bc7bbeb0bba210df47e4c8646ff55ed8586","unresolved":true,"context_lines":[{"line_number":29,"context_line":"observabilityclient library. A new release is about to be created"},{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"}],"source_content_type":"text/x-rst","patch_set":5,"id":"65cbb700_d11373bf","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":119},"in_reply_to":"d2392d7a_fe45c667","updated":"2025-06-16 17:19:13.000000000","message":"so on every commit to the observablity client repo there should eb a devstack based job that uses ateos to validate the functioning of the client.\n\ni was expecting you to have created a version fo observabilityclient-dsvm-functional\nthat uses ateos as part of addign the supprot.\nidealy in the same patch.\n\nthat job shoudl have validated the end to end fucntionlaty beofre the code was merged.\n\nif you want to use tempest for validation that mroe indirect but provies soem coverage when the observablity client is used by other services.\n\nif taking that path, instead of a single DNM https://review.opendev.org/c/openstack/telemetry-tempest-plugin/+/951387/ depending on https://review.opendev.org/c/openstack/python-observabilityclient/+/951386 there should have been a followup patch to enabel the ateos job on the python-observabilityclient repo in check and that shoudl be green before merging the functionaltiy in python-observabilityclient.\n\nin either case before doing an actual release with the new functionality, i would have expected the testing gap to be closed.\n\nI\u0027m glad you are working on a tempst job but we will need to have Tempest coverage with watcher before we merge any code.\n\nRegarding documentation, I think documentation of the observability client should be addressed before moving it to a 1.0.0 release, but that is up to you.\nI don\u0027t think that is something that should be deferred.\n\nThat is slightly outside the scope of this spec but its something i would generally expect from any other client lib. The documentaiton i care more about in the context of this spec is just updating https://docs.openstack.org/watcher/latest/datasources/prometheus.html descibe the integration with ateos.\n\nlooking at https://opendev.org/openstack/aetos/src/branch/master/doc/source you do not seam to have any yet.\n\nwhat missing specificly is how do you configure the obseravbilty clients and service that use the obserablity client to use aetos.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"2d475908960375ff48a7507e6ad9df3e2e036df9","unresolved":true,"context_lines":[{"line_number":29,"context_line":"observabilityclient library. A new release is about to be created"},{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dc45b1cf_b51d7aa6","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":119},"in_reply_to":"d3672287_0400bcc0","updated":"2025-06-12 12:38:01.000000000","message":"The expectation of services that use the prometheus data source is that they\u0027d use the observabilityclient. In that case, the change would be transparent to the services and they would continue to work as is.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9581b63ee4000c6b804b5d3177dd20baf4c5d099","unresolved":true,"context_lines":[{"line_number":29,"context_line":"observabilityclient library. A new release is about to be created"},{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1571c31f_363111ed","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":119},"in_reply_to":"dc45b1cf_b51d7aa6","updated":"2025-06-12 13:01:56.000000000","message":"Not all do, some use the Prometheus client directly.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"938a6192_92653c9b","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":48},"updated":"2025-06-12 12:06:49.000000000","message":"please define what the root_path prefix does and explaine why you might want to provide it. if we are going to expose this as a configuration option we need to understand the implciations of doign so and explain to adminsitrators in detail why the shoudl set it and how.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6991955bc3811f49147600792a3005f4f0e11ff7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"459943d8_431ea0ad","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":48},"in_reply_to":"04c8786c_9478c040","updated":"2025-06-25 17:38:55.000000000","message":"Acknowledged","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"87d055251bcffcbfbd237e79ccb928f6307f1f80","unresolved":true,"context_lines":[{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"04c8786c_9478c040","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":48},"in_reply_to":"2e29207e_e169e70c","updated":"2025-06-24 17:57:09.000000000","message":"For simplicity, let\u0027s keep Aetos discovery / configuration by using the keystone endpoints only and I guess let\u0027s treat it as a separate datasource while we\u0027re at it. So I\u0027ve explained what that parameter does in the PrometheusAPIClient, you\u0027ll extract it from the endpoint\u0027s URL and then pass it to the PrometheusAPIClient, so no need to expose it as a config option for Aetos. You could expose it as a config option for Prometheus, but that\u0027d be a whole another spec I guess.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":true,"context_lines":[{"line_number":30,"context_line":"here: https://review.opendev.org/c/openstack/releases/+/951637."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2e29207e_e169e70c","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":48},"in_reply_to":"938a6192_92653c9b","updated":"2025-06-24 13:39:55.000000000","message":"this still need to be adressed.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da91c3ba_7e1f3681","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":83},"updated":"2025-06-24 19:11:43.000000000","message":"It is preferable to describe the implementation details at `Proposed Change` section, and avoid links to PoC code. We don\u0027t need to add to many details, just provide the changes that we plan to do.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2b75b63d_f0502ffd","line":37,"updated":"2025-06-12 12:06:49.000000000","message":"doing a poc before you propsose a design is ok but keep in mind that the porupus o  a spec is to design how the probelme is adress before you imepmatnet it not to bles a design you have develop on your own without engagin in open desing.\n\ni will review the impleation in detail when you properly submit it in gerrit following the comuntity processes.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"1449c1a7069f20c9849d3bc653c5c2d90b93df27","unresolved":true,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9e109a42_3841c3b8","line":37,"in_reply_to":"286a0cfc_1769e07b","updated":"2025-06-16 06:26:48.000000000","message":"Thanks for pointing out the concern with sending tokens to Prometheus. As we discussed previously, an automatic detection whether a communication goes to Aetos or to Prometheus directly is possible. We\u0027ll modify the observabilityclient to do this, so that all services using it get this functionality.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"2d475908960375ff48a7507e6ad9df3e2e036df9","unresolved":true,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f2ae3f93_a984d51d","line":37,"in_reply_to":"2b75b63d_f0502ffd","updated":"2025-06-12 12:38:01.000000000","message":"Jaromir actually did multiple POCs and presented them in the past. The solution he is proposing here was decided on.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2bca4272_a82e5f9b","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":83},"in_reply_to":"4ed40ebf_36dfff95","updated":"2025-07-01 22:33:15.000000000","message":"As we agreed yesterday, I\u0027ll keep the current distribution of the text across the sections and focus on \"completeness\" in this patch. See the followup patch for my attempt to move everything into its correct section.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"87d055251bcffcbfbd237e79ccb928f6307f1f80","unresolved":true,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d9776b0e_9e6bd3cc","line":37,"in_reply_to":"802370ac_07c13bca","updated":"2025-06-24 17:57:09.000000000","message":"As we discussed somewhere (maybe some comment here, I don\u0027t know), it\u0027s expected for Aetos to have an endpoint in Keystone registered, same as any other openstack service. Let\u0027s use that for distinguishing what\u0027s Watcher communicating with. I updated the spec accordingly. Basically current configuration with prometheus endpoint and port in a config file would stay and it\u0027d result in setting the session parameter to None, so no session would be sent to Prometheus.\n\nAetos can then be discovered by using the keystone endpoints. I changed the spec to have a separate datasource for Aetos. With this, session would be created and specified to the prometheus client.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"beb29bc7bbeb0bba210df47e4c8646ff55ed8586","unresolved":true,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e701ecb0_b6220c7a","line":37,"in_reply_to":"9e109a42_3841c3b8","updated":"2025-06-16 17:19:13.000000000","message":"Modifying the observability client is not a viable approach if that is all we do.\ngiven the service need to create teh session and we shoudl only do that if ateos is used the service need to know if its required or not.\n\nThat added round trip to Keystone, is not required in the case we are not using Ateos, so we should not create the session when it not required.\n\nAs such, we need to handle the logic of determining if we need to pass the session at least partly in the service.\n\nYou can provide a helper function in the observability client that returns a bool if you want. We can cache the result and then either create the session or not based on the result.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4ed40ebf_36dfff95","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":83},"in_reply_to":"caae7210_b238ac9b","updated":"2025-07-01 12:12:43.000000000","message":"ok let me translate :) the comment that doug was makign and that i made on  revision 7  \nhttps://review.opendev.org/c/openstack/watcher-specs/+/949804/comment/22b531ce_aaa75fc6/\n\nis more plainly states as, it is inapproate to descirbe any of the impelmation dtail as tehy relate to watcher or Ateos in teh Problem description section\n\n\nthe problem description shoudl be something like this.\n\n```\nAs of 2025.1, the Watcher project supports Prometheus as a data source, while\nWatcher supports HTTP basic auth and mtls, Prometheus does not natively support\nmulti tenancy and role-based access control. To address this gap, the OpenStack\ntelemetry team is developing a new reverse proxy layer called Ateos to allow using\nKeystone authentication and roles for multi tenancy. Watcher currently does not\nsupport Ateos and needs to be enhanced to support this new deployment topology.\n\n```\n\n\nall of the other implementation details shoudl be in the Proposed change secontion.\n\nyou shoudl not link to aodh or descibe root_path or any of that in the `Problem description` section.\n\nthat is what i ment by saying `Problem description` shoudl be teh `WHAT` as in what is the problem you are tryign to sovle without refence to the solution.\n\nThe target audiunce for the `Problem description` is less technical, i.e. it shoudl eb very understandable to operators or PMs \n\nthe `Proposed change` section is targeted towards developers and techinial contibutors to the project.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":false,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7635b991_58eccd43","line":37,"in_reply_to":"d9776b0e_9e6bd3cc","updated":"2025-07-01 12:12:43.000000000","message":"Acknowledged","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f939a316923af46f9f7367a6572c1beed2d6b4c0","unresolved":true,"context_lines":[{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"Optionally you can allow to specify the root path prefix for Promethus,"},{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"caae7210_b238ac9b","line":37,"range":{"start_line":35,"start_character":0,"end_line":37,"end_character":83},"in_reply_to":"da91c3ba_7e1f3681","updated":"2025-06-25 09:08:41.000000000","message":"In the PS 6 I removed the link and added some more details in the `Proposed Change` section. I tried to do an overall description of the problem and solution in the `Problem description` and then I tried to create individual steps which will need to be followed in the `Proposed Change`. Is this enough or do you still think the `Proposed Change` section needs more details?","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":true,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"802370ac_07c13bca","line":37,"in_reply_to":"e701ecb0_b6220c7a","updated":"2025-06-24 13:39:55.000000000","message":"This is still open. Please update the spec with the details of how we will opt in and or configure the session.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9581b63ee4000c6b804b5d3177dd20baf4c5d099","unresolved":true,"context_lines":[{"line_number":34,"context_line":"it\u0027s recommended, but it\u0027s not strictly required. I have an example"},{"line_number":35,"context_line":"implementation in the following link. One note, that was a POC, the root path"},{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":5,"id":"286a0cfc_1769e07b","line":37,"in_reply_to":"f2ae3f93_a984d51d","updated":"2025-06-12 13:01:56.000000000","message":"that is not folloing https://docs.openstack.org/project-team-guide/open-development.html\n\nnote that i consdier alwasy passign a keyston session when watcher is deployed in a envonment with out Ateos to be a secuirty risk.\n\nwatcher tokens will have admin and service roles at least in the near term.\nwe shoudl not pass those to prometious if not required and the extra rount trip to keystone ot generate the session is also a perfromace regresison.\n\nfor upgrade reaosn we must supprot deploying without Ateos until at least 2026.2 as we need to first release the deprecation in  2026.1 as all deprecation of features must happen in a slrup release before a feture can be removed.\n\nlooking at the current master code\n\nhttps://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56\n\nit seams like its possible ot pass None for the sessiosn corefct and a shard http session will be created instead.\n\nif that is true then that will adress this upgrade concern however we still need the config option in watcher to opt into enabling the ateos integration.\n\nthat detail is imporant to capture in the upgrade section so it very clear what the upgrade impact is.\n\nnote tha per the grenede upgrade policy \n\nhttps://opendev.org/openstack/grenade/src/branch/master#Theory%20of%20Upgrade\n\nwe are ment ot be able to upgrade form 2025.1 to 2025.2 without config changes and for things ot continue to work\n\nwhen you consider slurp requiemnts we actully need to be bale ot upgrade form 2025.1 to 2026.1 and have it continue to work \n\nadding ateos woudl eb a post upgrade step once you have upgraged to 2025.2 or 2026.1 so we need to support that.\n\n\nim not strictly speaking seeing a blocker here but calling out detail that is is missing form the spec that we shoudl add.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Use Cases"},{"line_number":43,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4950c8dc_4b50127f","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":85},"updated":"2025-06-24 19:11:43.000000000","message":"Ack, it is fine to link an implementation as reference, in `Proposed Changes` section.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"490bdb0d695514dfee643f1e25a2224ac8984dad","unresolved":false,"context_lines":[{"line_number":36,"context_line":"there is just hardocded to \u0027prometheus\u0027 for the purpose of the POC:"},{"line_number":37,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This has already been implemented in Aodh:"},{"line_number":40,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Use Cases"},{"line_number":43,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"64b10354_087fe402","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":85},"in_reply_to":"4950c8dc_4b50127f","updated":"2025-06-27 18:17:13.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ed1935ef_ce961bf0","line":53,"updated":"2025-06-12 12:06:49.000000000","message":"In the current form the propsal is preety simple but the spec is ment to be written so that if you got hit by a bus the day after it was appoved, someone else could be able to pick it up and complete the work without your input.\n\nyou can assume that that personce will be familar with the service i.e. watcher in this case but not the thing you are integrating with ro the new feature.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6f13007d180066f8f099be92caa23da0eba6bbdd","unresolved":true,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bda35f34_34506dc1","line":53,"in_reply_to":"32d820b7_f74a92ab","updated":"2025-07-02 15:34:15.000000000","message":"You can, but I\u0027m not sure why you created a separate follow-up change.\n\nI was expecting you to resolve those issues in this revision as well.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6cd375e2_fa86bd89","line":53,"in_reply_to":"4fff408a_f06dece8","updated":"2025-06-24 19:11:43.000000000","message":"Yes, this is the section that you will provide more details about the implementation. IMO this should be an `experimental` feature that should be disabled by default, since `python-observabilityclient` and `Aethos` are still in development/testing phase.\nWe can add all the expected configuration options here too, that will allow us to enable the integration with Aethos and the keystone session for authentication, instead of the current authentication method.\nIf supported by `python-observabilityclient`, we could query about Aethos integration too, and provide the keystone session as needed.\nWe should also mention about the new `root_path` configuration too, which IIUC, is not related with Aethos integration, it is just another improvement?","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":true,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"32d820b7_f74a92ab","line":53,"in_reply_to":"64c15453_9e6275f5","updated":"2025-07-01 22:33:15.000000000","message":"I think I expanded on the spec quite a bit, adding details on the config options and a rough plan for the implementation.\n\nAs discussed, Aetos will be a separate datasource, so it\u0027ll be disabled unless it\u0027s configured in the config file and there is no need to have root_path configuration option, since that\u0027s a part of the Aetos\u0027s endpoint registered in Keystone.\n\n@smooney@redhat.com @viroel@gmail.com can I consider this comment thread as resolved? Or is there anything more missing?","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f939a316923af46f9f7367a6572c1beed2d6b4c0","unresolved":true,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"64c15453_9e6275f5","line":53,"in_reply_to":"6cd375e2_fa86bd89","updated":"2025-06-25 09:08:41.000000000","message":"In PS7 I added a note at the bottom of `Proposed change`, that current behavior of accessing Prometheus should stay, unless Aetos is mentioned as a datasource.\n\nIn PS6 I added a list of configuration options. They\u0027re literally the same as in already existing clients\n\nWhile the root_path can be an interesting enhancement for the current Prometheus datasource (even without Aetos), it\u0027s not required as a config option for Watcher for accessing Aetos with the way the spec is currently written, which expects Aetos endpoint to be retrieved from Keystone. I think exposing a config option for the root_path for Prometheus would be a separate spec, so I\u0027ll not mention it here.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"877d620462fc22dbc3a77265bc75dd9813111f45","unresolved":false,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"72b316eb_dc882c0b","line":53,"in_reply_to":"89014a2b_fa77f06d","updated":"2025-07-02 18:34:48.000000000","message":"I believe it was you who requested me to create a follow-up to move the content into appropriate sections.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"94cebf704692188dc1fb8044b009ab2365df36cc","unresolved":false,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"89014a2b_fa77f06d","line":53,"in_reply_to":"bda35f34_34506dc1","updated":"2025-07-02 16:56:35.000000000","message":"the follow up was in merge conflict so i have fixed that and resovle the other issues i had with the spec.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":true,"context_lines":[{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Use the python-observabilityclient 1.0.0 (which should release soon) and"},{"line_number":53,"context_line":"  provide a session object when creating the PrometheusAPIClient."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4fff408a_f06dece8","line":53,"in_reply_to":"ed1935ef_ce961bf0","updated":"2025-06-24 13:39:55.000000000","message":"Please expand on this to detail the configuration option changes required and the high-level plan for the implementation.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":71,"context_line":"---------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"We expect an increase in security on the metric storage side, which is the"},{"line_number":74,"context_line":"whole purpose of the change. Authentication will be required for metric access"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Notifications impact"},{"line_number":77,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a713a048_f4bade8c","line":74,"updated":"2025-06-12 12:06:49.000000000","message":"It is not much more secure thet the two auth mechanisms we already suprpot for Prometheus, it is effectively the same as HTTP Basic auth with more steps.\n\nThe only delta is we take the username and password in our config, and get a token from Keystone and provide that to ateos instead of configurign apache to perfom http_basic auth with the same username/passord in front of prometheous.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":false,"context_lines":[{"line_number":71,"context_line":"---------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"We expect an increase in security on the metric storage side, which is the"},{"line_number":74,"context_line":"whole purpose of the change. Authentication will be required for metric access"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Notifications impact"},{"line_number":77,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9d002612_dab4cfe4","line":74,"in_reply_to":"a713a048_f4bade8c","updated":"2025-06-24 13:39:55.000000000","message":"Acknowledged","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[{"line_number":86,"context_line":"Performance Impact"},{"line_number":87,"context_line":"------------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"83ce79a2_09da7f2c","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":4},"updated":"2025-06-24 19:11:43.000000000","message":"There is some performance impact when enabling Aethos service, right? If we compare with the current solution that we have.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f939a316923af46f9f7367a6572c1beed2d6b4c0","unresolved":true,"context_lines":[{"line_number":86,"context_line":"Performance Impact"},{"line_number":87,"context_line":"------------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"995a8dac_3151f44e","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":4},"in_reply_to":"83ce79a2_09da7f2c","updated":"2025-06-25 09:08:41.000000000","message":"Added in PS7","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"490bdb0d695514dfee643f1e25a2224ac8984dad","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Performance Impact"},{"line_number":87,"context_line":"------------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dc57beef_7f306c28","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":4},"in_reply_to":"995a8dac_3151f44e","updated":"2025-06-27 18:17:13.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Optionally a deployer could configure root path prefix for Prometheus"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Developer impact"},{"line_number":97,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"276f0e9f_3fadecf6","line":94,"updated":"2025-06-12 12:06:49.000000000","message":"this would require a new config option which you have not discussed in the main proposed changes section you shoudl extend that to descibe how the config option will work and how we will opt in to creeating the session object and generating a keystone token when Ateos is deployed.\n\nwhen watcher is used without Aetos, we should not call keyston to create a new autotoken for the request and include the session object.\n\nmy expection is that there will be a enable_keystone_auth or enable_aetos_auth\nconfig option that will defautl to false.\n\nby the way you likely shoudl also have error handeling in the config validation as we likely shoudl not allwo enabling aetos and one of the other auth methods at the same time.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":true,"context_lines":[{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Optionally a deployer could configure root path prefix for Prometheus"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Developer impact"},{"line_number":97,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ceaf9e66_acef4cd3","line":94,"in_reply_to":"276f0e9f_3fadecf6","updated":"2025-06-24 13:39:55.000000000","message":"again please address this and detail hwo the new and old config options will related.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Optionally a deployer could configure root path prefix for Prometheus"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Developer impact"},{"line_number":97,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6f2bff44_3ae551fa","line":94,"in_reply_to":"5bc15e34_0974cf03","updated":"2025-07-01 22:33:15.000000000","message":"I listed them in the Other deployer impact section","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Optionally a deployer could configure root path prefix for Prometheus"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Developer impact"},{"line_number":97,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5bc15e34_0974cf03","line":94,"in_reply_to":"b44e5cee_ed551703","updated":"2025-07-01 12:12:43.000000000","message":"that is not correct\n\nwhen you add config options to a project you alwasy need to list them either here\nin Other deployer impact, in the main proopsed changes ection or in the upgrade impact section.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"87d055251bcffcbfbd237e79ccb928f6307f1f80","unresolved":true,"context_lines":[{"line_number":91,"context_line":"Other deployer impact"},{"line_number":92,"context_line":"---------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Optionally a deployer could configure root path prefix for Prometheus"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Developer impact"},{"line_number":97,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b44e5cee_ed551703","line":94,"in_reply_to":"ceaf9e66_acef4cd3","updated":"2025-06-24 17:57:09.000000000","message":"I deleted this part of the spec. As I wrote elsewhere, it\u0027s possible to have the root path prameter for Prometheus and it may be an interesting enhancement to Watcher, but that would be for a separate spec I guess. For Aetos, this would be extracted from the Keystone endpoint, so no config options are needed.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"77a6262789d96a7c938e12b980863193a50dc531","unresolved":true,"context_lines":[{"line_number":104,"context_line":"Assignee(s)"},{"line_number":105,"context_line":"-----------"},{"line_number":106,"context_line":"If you agree with the implementation from the POC here:"},{"line_number":107,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":108,"context_line":"with the addition of maybe having a CONF.prometheus_client.root_path for"},{"line_number":109,"context_line":"the root path configuration, then I can submit the change. Otherwise"},{"line_number":110,"context_line":"feel free to pick this up."}],"source_content_type":"text/x-rst","patch_set":5,"id":"42111e32_99655752","line":107,"updated":"2025-06-12 12:06:49.000000000","message":"Again this is not how this works We do not review the implementation of the poc on GitHub, we reviw th design proposal, and if we agree with the direction, then we review the implementation in gerrit after the direction is aggreed.\n\nlooking at it breifly no this is not ok because it will always create a new keyston session and and pass it to the observiablity client wich is not correct if you are not using Aetos.\n\nthat need to be configurable and off by default so the api that is being provied by \n\nPrometheusAPIClient in the poc is incrrect aas it is taking both the root path and session a postional argument not optional keyword argumetns.\n\nthat is a breaking change in the api i.e. it is not backward compatiable\nso we shoudl fix that before it is released.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"87d055251bcffcbfbd237e79ccb928f6307f1f80","unresolved":true,"context_lines":[{"line_number":104,"context_line":"Assignee(s)"},{"line_number":105,"context_line":"-----------"},{"line_number":106,"context_line":"If you agree with the implementation from the POC here:"},{"line_number":107,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":108,"context_line":"with the addition of maybe having a CONF.prometheus_client.root_path for"},{"line_number":109,"context_line":"the root path configuration, then I can submit the change. Otherwise"},{"line_number":110,"context_line":"feel free to pick this up."}],"source_content_type":"text/x-rst","patch_set":5,"id":"98a3d6e8_3f798a5e","line":107,"in_reply_to":"42111e32_99655752","updated":"2025-06-24 17:57:09.000000000","message":"I had the POC, so I thought why not mention it. I removed the mention of the POC. The spec deviated from it anyway.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":104,"context_line":"Assignee(s)"},{"line_number":105,"context_line":"-----------"},{"line_number":106,"context_line":"If you agree with the implementation from the POC here:"},{"line_number":107,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":108,"context_line":"with the addition of maybe having a CONF.prometheus_client.root_path for"},{"line_number":109,"context_line":"the root path configuration, then I can submit the change. Otherwise"},{"line_number":110,"context_line":"feel free to pick this up."}],"source_content_type":"text/x-rst","patch_set":5,"id":"23d6a56d_6ebce79f","line":107,"in_reply_to":"98a3d6e8_3f798a5e","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[{"line_number":106,"context_line":"If you agree with the implementation from the POC here:"},{"line_number":107,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":108,"context_line":"with the addition of maybe having a CONF.prometheus_client.root_path for"},{"line_number":109,"context_line":"the root path configuration, then I can submit the change. Otherwise"},{"line_number":110,"context_line":"feel free to pick this up."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Work Items"},{"line_number":113,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a6aa231b_576a04ff","line":110,"range":{"start_line":109,"start_character":59,"end_line":110,"end_character":26},"updated":"2025-06-24 19:11:43.000000000","message":"You should provide a list of assignees. Which can be you or/and someone from telemetry team or/and someone from watcher team. We can define the assignee once we agree on the design and implementation, and decide the overall effort.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":106,"context_line":"If you agree with the implementation from the POC here:"},{"line_number":107,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":108,"context_line":"with the addition of maybe having a CONF.prometheus_client.root_path for"},{"line_number":109,"context_line":"the root path configuration, then I can submit the change. Otherwise"},{"line_number":110,"context_line":"feel free to pick this up."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Work Items"},{"line_number":113,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ba3568f_3a0a7663","line":110,"range":{"start_line":109,"start_character":59,"end_line":110,"end_character":26},"in_reply_to":"6c0f6dec_92adcf71","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f939a316923af46f9f7367a6572c1beed2d6b4c0","unresolved":true,"context_lines":[{"line_number":106,"context_line":"If you agree with the implementation from the POC here:"},{"line_number":107,"context_line":"https://github.com/vyzigold/watcher/commit/c8250a8be59e94925b8903c32853b248942b086a"},{"line_number":108,"context_line":"with the addition of maybe having a CONF.prometheus_client.root_path for"},{"line_number":109,"context_line":"the root path configuration, then I can submit the change. Otherwise"},{"line_number":110,"context_line":"feel free to pick this up."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Work Items"},{"line_number":113,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6c0f6dec_92adcf71","line":110,"range":{"start_line":109,"start_character":59,"end_line":110,"end_character":26},"in_reply_to":"a6aa231b_576a04ff","updated":"2025-06-25 09:08:41.000000000","message":"I\u0027m unsure about the assignees at this moment, so leaving it empty for now.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"031bb5d9b173fd4a22b20e74d7643a704e9dc2bd","unresolved":true,"context_lines":[{"line_number":112,"context_line":"Work Items"},{"line_number":113,"context_line":"----------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"* Provide session object when creating the PrometheusAPIClient"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Dependencies"},{"line_number":118,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5aa60741_dc183673","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":62},"updated":"2025-06-24 19:11:43.000000000","message":"Once we decided on the changes needed, we can list everythin here like: new configuration options to allow users to enable Aethos or keep the current Prometheus authentication","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Work Items"},{"line_number":113,"context_line":"----------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"* Provide session object when creating the PrometheusAPIClient"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Dependencies"},{"line_number":118,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"380256dc_40562f2d","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":62},"in_reply_to":"07ccbbd5_2e94e853","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"f939a316923af46f9f7367a6572c1beed2d6b4c0","unresolved":true,"context_lines":[{"line_number":112,"context_line":"Work Items"},{"line_number":113,"context_line":"----------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"* Provide session object when creating the PrometheusAPIClient"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Dependencies"},{"line_number":118,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"07ccbbd5_2e94e853","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":62},"in_reply_to":"5aa60741_dc183673","updated":"2025-06-25 09:08:41.000000000","message":"I updated this section to get it up to date with the rest of the spec.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d36d2b25c7815353bac681b531c1ab1163a6fc01","unresolved":true,"context_lines":[{"line_number":124,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The current watcher-prometheus-integration job could be changed to be deployed"},{"line_number":127,"context_line":"with Aetos, so the authentication would be tested."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\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":5,"id":"6bde23f8_5f783d58","line":127,"updated":"2025-06-12 12:41:45.000000000","message":"yes, we will not proceed with emrging the code until it is tested in at least one tempst job. addtionally we will want unit test coverage but the zuul tempset job integration is mandatory before merging the support.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":true,"context_lines":[{"line_number":124,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The current watcher-prometheus-integration job could be changed to be deployed"},{"line_number":127,"context_line":"with Aetos, so the authentication would be tested."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\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":5,"id":"e401064e_15e18bdf","line":127,"in_reply_to":"6bde23f8_5f783d58","updated":"2025-06-24 13:39:55.000000000","message":"These changes will also need unit test coverage for what it\u0027s worth.\n\nwe will need to add the Ateos devsack plugin and confifure that in the job.\ni would expect the integration testing and the feature patch to be the same patch.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":124,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The current watcher-prometheus-integration job could be changed to be deployed"},{"line_number":127,"context_line":"with Aetos, so the authentication would be tested."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\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":5,"id":"9bcf4fcd_c053886f","line":127,"in_reply_to":"e110e5a0_11eb5e22","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"87d055251bcffcbfbd237e79ccb928f6307f1f80","unresolved":true,"context_lines":[{"line_number":124,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The current watcher-prometheus-integration job could be changed to be deployed"},{"line_number":127,"context_line":"with Aetos, so the authentication would be tested."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\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":5,"id":"e110e5a0_11eb5e22","line":127,"in_reply_to":"e401064e_15e18bdf","updated":"2025-06-24 17:57:09.000000000","message":"Of course there would be unit tests, I originally didn\u0027t even think I needed to mention them, but I added the to the list of tests.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d36d2b25c7815353bac681b531c1ab1163a6fc01","unresolved":true,"context_lines":[{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"References"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"574e415f_421214e1","line":132,"updated":"2025-06-12 12:41:45.000000000","message":"by the way you will need to extend the documentaion \n\nspecificaly https://docs.openstack.org/watcher/latest/datasources/prometheus.html\n\nto expalin how to configure watcher with Aetos, recommendation like how to use the root path shoudl also be there althoguh you will also have a breif explaintion of that new config option in the option help text.\n\nexamples of what to set it too shoudl be in the main doc rahter ten the cofnig option help text.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"1449c1a7069f20c9849d3bc653c5c2d90b93df27","unresolved":true,"context_lines":[{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"References"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"997a482c_84beccac","line":132,"in_reply_to":"574e415f_421214e1","updated":"2025-06-16 06:26:48.000000000","message":"OK, I think there will be 2 things needed:\n- mention that Aetos can be used\n- add a new config option for configuring the root path","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a45f98a49aca0a7bd2def1748ecd36ca29f25c9","unresolved":true,"context_lines":[{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"References"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bc99e67f_5a85afa0","line":132,"in_reply_to":"7a723a80_5e152c35","updated":"2025-06-24 13:39:55.000000000","message":"please also adress this feedback.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"beb29bc7bbeb0bba210df47e4c8646ff55ed8586","unresolved":true,"context_lines":[{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"References"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a723a80_5e152c35","line":132,"in_reply_to":"997a482c_84beccac","updated":"2025-06-16 17:19:13.000000000","message":"in the documentaiton you need to descibe what\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.host\nand \nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.port\n\nwhen usign aetos. will they be used at all or will we use the presence of the ateos endpoint.\n\nif we use  the keyston endpoint we shoudl have a new ateos config setcion where we we defien which keyston endpoitn to use.\ni.e. public, internal interface.\n\nthe defualt shoudl eb public but many deployment tools will coose to overried that to internal.\n\njust like we do for the keyston client\n\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#keystone-client\n\nalthogh the prefer way to do this is lighlty diffent.\n\nMy point is that either way we will need to extend the watcher documentation to describe how to manually deploythe  watcher with Ateos as part of the new feature.\n\nso when we mention Aetos can be used we also need ot document how.\n\nyou do not need to docuemtn all that detail in the spec btu it will be need in the implmation changes.\n\nin the spec we just need to say if it will use auto discovery and if so that a new config section will be added for ateos or that it will use the existing options.","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"None"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"References"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a379ef3b_f384a7e2","line":132,"in_reply_to":"bc99e67f_5a85afa0","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"be03226848b221d00804adb04fc715010c2ff0b2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d17664e9d15425336eef018d894b934e1771875","unresolved":true,"context_lines":[{"line_number":15,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"},{"line_number":16,"context_line":"when accessing Prometheus."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"}],"source_content_type":"text/x-rst","patch_set":7,"id":"22b531ce_aaa75fc6","line":18,"updated":"2025-06-30 15:09:59.000000000","message":"so the content in the diffent spec sections,\n\nmainly the distirbution of inromation between problem desctiption and propsoed change si not quite right.\n\nwe could address this as a follow up chage however.\n\n\nThe problem description should focus only on the `WHAT` not the `HOW`.\n\nthat means in the problem description section  and the usecases subsection you should not reference how watcher will be modified at all.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":15,"context_line":"currently being done with Gnocchi. Watcher should be able to authenticate"},{"line_number":16,"context_line":"when accessing Prometheus."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The telemetry team is working on adding multi-tenancy capabilities and Keystone"}],"source_content_type":"text/x-rst","patch_set":7,"id":"919b949a_ddfcf58a","line":18,"in_reply_to":"22b531ce_aaa75fc6","updated":"2025-07-01 22:33:15.000000000","message":"As we agreed yesterday, I\u0027ll keep the current distribution of the text across the sections and focus on \"completeness\" in this patch. See the followup patch for my attempt to move everything into its correct section.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6991955bc3811f49147600792a3005f4f0e11ff7","unresolved":true,"context_lines":[{"line_number":39,"context_line":"\u0027localhost:9090/prom/api/v1/query\u0027, while without the root_path parameter,"},{"line_number":40,"context_line":"it\u0027d be just \u0027localhost:9090/api/v1/query\u0027. This is useful, because Aetos"},{"line_number":41,"context_line":"can be installed with uwsgi under any prefix. This is part of the URL"},{"line_number":42,"context_line":"in the Keystone endpoints."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"It\u0027s expected for Aetos to have an endpoint with service name \u0027aetos\u0027,"},{"line_number":45,"context_line":"service type \u0027prometheus\u0027 registered in keystone. This should be used"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c51aabed_743fb073","line":42,"updated":"2025-06-25 17:38:55.000000000","message":"Oh ok, I know what this is. Thanks for explaining it.\n\nThis is to allow you to run AETOS on a subpath behind a reverse proxy of firewall.\n\nThat was not obvious at all form the term `root_path`\n\nBut yes, we should support that.\n+1\n\ni thought this was some Prometheus-specific term and some was used to restrict the query to a subset of the Prometheus metrics. not a way to constuct the base url.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":39,"context_line":"\u0027localhost:9090/prom/api/v1/query\u0027, while without the root_path parameter,"},{"line_number":40,"context_line":"it\u0027d be just \u0027localhost:9090/api/v1/query\u0027. This is useful, because Aetos"},{"line_number":41,"context_line":"can be installed with uwsgi under any prefix. This is part of the URL"},{"line_number":42,"context_line":"in the Keystone endpoints."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"It\u0027s expected for Aetos to have an endpoint with service name \u0027aetos\u0027,"},{"line_number":45,"context_line":"service type \u0027prometheus\u0027 registered in keystone. This should be used"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e0852131_9f39862b","line":42,"in_reply_to":"c51aabed_743fb073","updated":"2025-07-01 12:12:43.000000000","message":"as noted in my other comment this does not belong in the problem desctiption sectoin","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\u0027localhost:9090/prom/api/v1/query\u0027, while without the root_path parameter,"},{"line_number":40,"context_line":"it\u0027d be just \u0027localhost:9090/api/v1/query\u0027. This is useful, because Aetos"},{"line_number":41,"context_line":"can be installed with uwsgi under any prefix. This is part of the URL"},{"line_number":42,"context_line":"in the Keystone endpoints."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"It\u0027s expected for Aetos to have an endpoint with service name \u0027aetos\u0027,"},{"line_number":45,"context_line":"service type \u0027prometheus\u0027 registered in keystone. This should be used"}],"source_content_type":"text/x-rst","patch_set":7,"id":"62d33398_398cf82c","line":42,"in_reply_to":"e0852131_9f39862b","updated":"2025-07-01 22:33:15.000000000","message":"As we agreed yesterday, I\u0027ll keep the current distribution of the text across the sections and focus on \"completeness\" in this patch. See the followup patch for my attempt to move everything into its correct section.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6991955bc3811f49147600792a3005f4f0e11ff7","unresolved":true,"context_lines":[{"line_number":46,"context_line":"to distinguish whether to create a keystone session or not. When"},{"line_number":47,"context_line":"communicating with Prometheus directly instead of Aetos, None can be"},{"line_number":48,"context_line":"used instead of the session parameter, to prevent sending sessions to"},{"line_number":49,"context_line":"Prometheus."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f53c574_23c7368b","line":49,"updated":"2025-06-25 17:38:55.000000000","message":"+1\n\nWe may want to factor in whether the config options are populated or not into that, but that sounds reasonable.\n\nWhat I\u0027m thinking is if the Prometheus data source is enabled\n\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#watcher_datasources.datasources\n\nbut the https://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.host and https://docs.openstack.org/watcher/latest/configuration/watcher.html#prometheus_client.port\n\nAre not defined, then we can lookup the keystone endpoint for ateos.\n\nif we find it then we will use that and create the sessiosn when we need to use the observiablity client.\n\nif we dont find the endpoint then we can exit with a config error because the promethous data souce is enabled but neither the endpoint exits nor the host/port config options are set.\n\nwe will neeed a new aetos section in the config to store which endpoint/region we shoudl use.\n\nlike this https://docs.openstack.org/watcher/latest/configuration/watcher.html#keystone-client\n\nbut i think that is fine.\n\ni dislike how watcher handels auth for the clients it uses to talk to openstack services but for constency we should just follwo the same pattern whcih means the username/password will be taken form \n\nhttps://docs.openstack.org/watcher/latest/configuration/watcher.html#keystone-authtoken","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"02c537f4dbd0f1c440485584f04fe49d3bc504c6","unresolved":true,"context_lines":[{"line_number":46,"context_line":"to distinguish whether to create a keystone session or not. When"},{"line_number":47,"context_line":"communicating with Prometheus directly instead of Aetos, None can be"},{"line_number":48,"context_line":"used instead of the session parameter, to prevent sending sessions to"},{"line_number":49,"context_line":"Prometheus."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":7,"id":"805a7e0b_25e7b204","line":49,"in_reply_to":"3f53c574_23c7368b","updated":"2025-06-25 21:19:09.000000000","message":"It\u0027s possible to look into the keystone endpoints when the host and port config values aren\u0027t defined. That\u0027s actually pretty much what the CLI portion of the observabilityclient does and it\u0027s kind of what I was originally trying to do with the spec here. But I wonder if it wouldn\u0027t be too confusing to explain the configuration to the users? The documentation would need to say something like:\n\nFor Prometheus you need these options: \"host, port, ...\". For Aetos you can leave out host and port, but you also need this other \"Aetos\" section with some other values. And if you\u0027re missing host or port and also you\u0027re missing Aetos section, it\u0027s an error...\n\nSo my idea was, at least in the configuration, we could treat Aetos as a separate datasource, so we\u0027d have an Aetos section with: region_name, interface, fqdn_label, instance_uuid_label. And that\u0027s it. Then I guess we\u0027d also need to mention that either Aetos or Prometheus section is allowed, not both.\n\nBut if you don\u0027t think it could get confusing, then I don\u0027t see a technical reason why it couldn\u0027t work as you suggest.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":46,"context_line":"to distinguish whether to create a keystone session or not. When"},{"line_number":47,"context_line":"communicating with Prometheus directly instead of Aetos, None can be"},{"line_number":48,"context_line":"used instead of the session parameter, to prevent sending sessions to"},{"line_number":49,"context_line":"Prometheus."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ec087084_4b624ced","line":49,"in_reply_to":"6b91f688_2dcfd857","updated":"2025-07-01 12:12:43.000000000","message":"this also should not be in the prblem descrtipon sectoin.\n\nyou refence Ateos in the problem descrtion but the expalnatin of what it is and how it will be used should be in the proposed chagnes section.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"490bdb0d695514dfee643f1e25a2224ac8984dad","unresolved":true,"context_lines":[{"line_number":46,"context_line":"to distinguish whether to create a keystone session or not. When"},{"line_number":47,"context_line":"communicating with Prometheus directly instead of Aetos, None can be"},{"line_number":48,"context_line":"used instead of the session parameter, to prevent sending sessions to"},{"line_number":49,"context_line":"Prometheus."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f38cf023_dde833a8","line":49,"in_reply_to":"805a7e0b_25e7b204","updated":"2025-06-27 18:17:13.000000000","message":"ok, if we plan to keep the same Prometheus datasource, we could add a configuration option to enable/disable use of Aetos, which can be enabled by default in future releases, and ignore host/port configurations when Aetos is enabled. We will still need endpoint/region config, but this will ne needed anyways.\nwe could go with a new datasource too, but then we would need to explain better that is a new datasource in this spec. Then we will have to work on deprecating Prometheus datasource in the future.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d17664e9d15425336eef018d894b934e1771875","unresolved":true,"context_lines":[{"line_number":46,"context_line":"to distinguish whether to create a keystone session or not. When"},{"line_number":47,"context_line":"communicating with Prometheus directly instead of Aetos, None can be"},{"line_number":48,"context_line":"used instead of the session parameter, to prevent sending sessions to"},{"line_number":49,"context_line":"Prometheus."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6b91f688_2dcfd857","line":49,"in_reply_to":"805a7e0b_25e7b204","updated":"2025-06-30 15:09:59.000000000","message":"ya, so if we do model it as a separate data source\ni think that will be workable and clean form a config porint of view.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":46,"context_line":"to distinguish whether to create a keystone session or not. When"},{"line_number":47,"context_line":"communicating with Prometheus directly instead of Aetos, None can be"},{"line_number":48,"context_line":"used instead of the session parameter, to prevent sending sessions to"},{"line_number":49,"context_line":"Prometheus."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"}],"source_content_type":"text/x-rst","patch_set":7,"id":"d9e8d3a1_cf1d8c30","line":49,"in_reply_to":"ec087084_4b624ced","updated":"2025-07-01 22:33:15.000000000","message":"I think we decided on how the configuration should be done and that Aetos will be a separate datasource. I\u0027m making it as resolved and I\u0027ll move the content around in a followup as agreed previously.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d17664e9d15425336eef018d894b934e1771875","unresolved":true,"context_lines":[{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Use Cases"},{"line_number":55,"context_line":"---------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"As a deployer, i would like to provide more security for stored metrics by"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ebd928f5_abe576ae","line":54,"updated":"2025-06-30 15:09:59.000000000","message":"the usecase encode the `WHY` the problem statement matters and describes the overall ux or usecase that a given persona should be able to do if this is accepted.\n\ni think the use case you have provided is in keeping with that.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Parts of this has already been implemented in Aodh:"},{"line_number":52,"context_line":"https://opendev.org/openstack/aodh/src/branch/master/aodh/evaluator/prometheus.py#L48"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Use Cases"},{"line_number":55,"context_line":"---------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"As a deployer, i would like to provide more security for stored metrics by"}],"source_content_type":"text/x-rst","patch_set":7,"id":"633ca9e3_92f82a23","line":54,"in_reply_to":"ebd928f5_abe576ae","updated":"2025-07-01 22:33:15.000000000","message":"Acknowledged","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d17664e9d15425336eef018d894b934e1771875","unresolved":true,"context_lines":[{"line_number":58,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":59,"context_line":"Reverse proxy server."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1fccc4ed_0c9437ab","line":61,"updated":"2025-06-30 15:09:59.000000000","message":"This section and its subsection are dedicated to the `HOW`\n\nSo all implementation details and design considerations for how the change will be made should be here.\n\nThis is where you should be introducing Aetos and the change to the observability client, and explaining how watcher will be modified to utilise both.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":58,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":59,"context_line":"Reverse proxy server."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":7,"id":"973c5387_ba9ac9ff","line":61,"in_reply_to":"1fccc4ed_0c9437ab","updated":"2025-07-01 12:12:43.000000000","message":"so when i said this is the `how` this si also the sction where you intoduced the context of the technolgoies yoru are integrating. i.e. you would expl;ain aetos\nhow it related to the obserablity client, the need for root path ectra here.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":58,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":59,"context_line":"Reverse proxy server."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":7,"id":"556a7db7_f8f1b973","line":61,"in_reply_to":"973c5387_ba9ac9ff","updated":"2025-07-01 22:33:15.000000000","message":"As we agreed yesterday, I\u0027ll keep the current distribution of the text across the sections and focus on \"completeness\" in this patch. See the followup patch for my attempt to move everything into its correct section.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d17664e9d15425336eef018d894b934e1771875","unresolved":true,"context_lines":[{"line_number":142,"context_line":"  \"interface\", \"region_name\", \"fqdn_label\", \"instance_uuid_label\"."},{"line_number":143,"context_line":"  Descriptions and values should be the same as in existing clients config"},{"line_number":144,"context_line":"  sections."},{"line_number":145,"context_line":"* Add Aetos as a possible datasource"},{"line_number":146,"context_line":"* Use keystone endpoints to get Aetos\u0027s endpoints when specified as a"},{"line_number":147,"context_line":"  datasource"},{"line_number":148,"context_line":"* Create a PrometheusAPIClient similarly to how it\u0027s already being created,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"781ba32f_7ff20b94","line":145,"updated":"2025-06-30 15:09:59.000000000","message":"I\u0027m not sure that I\u0027m ok with adding Aetos as a whole new datastore\nThat is a much larger change.\n\ni guess if we did, we could use that to determine how we connect to Prometheus\n\nlater\n-----\n\nwe discussed this offline in a little more detail.\n\nwe agreed that we can use a new data souce but we need to update the proposed changes section ot detail how we will refactor the existign Prometheus data soruce\n\nspecificlly we agree that the spec should be updated to capture the follow point\n\nwe will maintain the 1:1 mapping between datasouces and python classes tha we have today.\n\nthe PrometheusHelper \n\nhttps://github.com/openstack/watcher/blob/93366df2641b64b7bc345ed91bfbef7ae17de25a/watcher/decision_engine/datasources/prometheus.py#L27\n\nshoudl be a baseclass  or mixin that will be shared between a \n\n\nPrometheusDirecct datasource which wil be hte legacy \"prometheus\" datasource \nand a new \"aetos\" datasource.\n\nthe intet is to share all of the datasouce base method form \n\nhttps://github.com/openstack/watcher/blob/master/watcher/decision_engine/datasources/base.py\n\nbetween both the exiting \"prometheus\" and new \"aetos\" datasources\n\nthe init and _setup_prometheus_client methods will vary between both.\n\nhttps://github.com/openstack/watcher/blob/master/watcher/decision_engine/datasources/prometheus.py#L49-L137\n\nfor the PromethosDirect data souce the implation will remain the same using the hard coded host/prot form the config. for the new Aetos datasource it will uncondtionally do discovery form the keystone catalog.\n\nthe aetos data souce should exit with an error tha tkills the decsion enging if its enabled andy aetos is not registered in keystone as this is a config error.\n\n\nwe can also make it an error if both the Prometheus and Aetos datasouces are enabled at the same time.\n\nif you can update teh spec to capture those detail above in the proposed chagnes section then i think im ok to proceed with this spec.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"5f7af7bd221d28a954e90d8badacca701e31e64f","unresolved":true,"context_lines":[{"line_number":142,"context_line":"  \"interface\", \"region_name\", \"fqdn_label\", \"instance_uuid_label\"."},{"line_number":143,"context_line":"  Descriptions and values should be the same as in existing clients config"},{"line_number":144,"context_line":"  sections."},{"line_number":145,"context_line":"* Add Aetos as a possible datasource"},{"line_number":146,"context_line":"* Use keystone endpoints to get Aetos\u0027s endpoints when specified as a"},{"line_number":147,"context_line":"  datasource"},{"line_number":148,"context_line":"* Create a PrometheusAPIClient similarly to how it\u0027s already being created,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f32340fb_9e90de21","line":145,"in_reply_to":"781ba32f_7ff20b94","updated":"2025-06-30 22:16:14.000000000","message":"Thank you for writing what we agreed on, before I found the time to update the spec. I updated it now and I hope I put everything into the spec satisfactorily.\n\nAlso, I want to confirm, that I\u0027m aware that some of the content isn\u0027t at the correct place in the spec and I will do a followup moving it around as needed.","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":142,"context_line":"  \"interface\", \"region_name\", \"fqdn_label\", \"instance_uuid_label\"."},{"line_number":143,"context_line":"  Descriptions and values should be the same as in existing clients config"},{"line_number":144,"context_line":"  sections."},{"line_number":145,"context_line":"* Add Aetos as a possible datasource"},{"line_number":146,"context_line":"* Use keystone endpoints to get Aetos\u0027s endpoints when specified as a"},{"line_number":147,"context_line":"  datasource"},{"line_number":148,"context_line":"* Create a PrometheusAPIClient similarly to how it\u0027s already being created,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"d77032ac_722eb433","line":145,"in_reply_to":"f32340fb_9e90de21","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"93cb154502491369746f081609dfc1e7aa33b067"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":83,"context_line":"* The Aetos datasource will exit with an error, which stops the decision"},{"line_number":84,"context_line":"  engine, if it\u0027s enabled and Aetos isn\u0027t registered in Keystone."},{"line_number":85,"context_line":"* Configuring Prometheus and Aetos datasources both at the same time"},{"line_number":86,"context_line":"  is a configuration error."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"664b79cd_01756911","line":86,"updated":"2025-07-01 12:12:43.000000000","message":"+1, these are the most important design decisions that we needed to capture.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":83,"context_line":"* The Aetos datasource will exit with an error, which stops the decision"},{"line_number":84,"context_line":"  engine, if it\u0027s enabled and Aetos isn\u0027t registered in Keystone."},{"line_number":85,"context_line":"* Configuring Prometheus and Aetos datasources both at the same time"},{"line_number":86,"context_line":"  is a configuration error."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"a83270da_4f2d1dd9","line":86,"in_reply_to":"664b79cd_01756911","updated":"2025-07-01 22:33:15.000000000","message":"Acknowledged","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":127,"context_line":"Other deployer impact"},{"line_number":128,"context_line":"---------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"None"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Developer impact"},{"line_number":133,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"22b61c6c_5e5ea886","line":130,"updated":"2025-07-01 12:12:43.000000000","message":"so in this section you need to add all the ateos cofnig option here\n\n```\nAteos \n\ninterface\n\n    Type:\n\n        string\n    Default:\n\n        public\n    Valid Values:\n\n        internal, public, admin\n\n    Type of endpoint to use in keystoneclient.\n\nregion_name\n\n    Type:\n\n        string\n    Default:\n\n        \u003cNone\u003e\n\n    Region in Identity service catalog to use for communication with the OpenStack service.\n    \n    \nfqdn_label\n\n    Type:\n\n        string\n    Default:\n\n        fqdn\n\n    The label that Prometheus uses to store the fqdn of exporters. Defaults to ‘fqdn’.\n\ninstance_uuid_label\n\n    Type:\n\n        string\n    Default:\n\n        resource\n\n    The label that Prometheus uses to store the uuid of OpenStack instances. Defaults to ‘resource’.\n    \n\n\nbase_path\n\n    Type:\n\n        string\n    Default:\n\n        \u0027\u0027\n\n    The subpath where the promeetus api endpoitn is hosted if it is not at the root.\n\n\n```\n\n\nby the way im not sure if base_path or root_path is still neededd\n\nif we are gettign the endpoint form keystone we will be getting the full url and it shoudl have this already incldued\n\ni.e. the keystone endpoitn should be `https://proxy.my.cloud/prometheus/`\n\nnot `https://proxy.my.cloud/` with a base_path/root_path of `/prometheus`\n\nin most cases using subdomains is prefered over subpaths but we can supprot both however that hsoudl be doen but registring it propelry in keyston ideaaly.\n\nwe do not normally mutate endpiotn liek that for any other services so i woudl prefer to avoid that if we can.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Other deployer impact"},{"line_number":128,"context_line":"---------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"None"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Developer impact"},{"line_number":133,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fe47accd_0604ef0b","line":130,"in_reply_to":"22b61c6c_5e5ea886","updated":"2025-07-01 22:33:15.000000000","message":"Thank you. You\u0027re correct, when we get the endpoint from Keystone, it already has the root path, so there is no need for a config value.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Assignee(s)"},{"line_number":141,"context_line":"-----------"},{"line_number":142,"context_line":"None"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Work Items"},{"line_number":145,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"cebfa527_4cca9bfb","line":142,"updated":"2025-07-01 12:12:43.000000000","message":"this should be yoeur irc or gerrit username.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Assignee(s)"},{"line_number":141,"context_line":"-----------"},{"line_number":142,"context_line":"None"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Work Items"},{"line_number":145,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5d0ded36_5ad55338","line":142,"in_reply_to":"cebfa527_4cca9bfb","updated":"2025-07-01 22:33:15.000000000","message":"Done","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":141,"context_line":"-----------"},{"line_number":142,"context_line":"None"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Work Items"},{"line_number":145,"context_line":"----------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* Use newer python-observabilityclient"}],"source_content_type":"text/x-rst","patch_set":8,"id":"de465045_bf3b527b","line":144,"updated":"2025-07-01 12:12:43.000000000","message":"extendign the analogy this is kind of the  `WHEN`\nit basically the over all task breakdown.\n\nit does nto have to be exact or map 1:1 to the comits but it shoudl list the main deliverable chunks for work. it also does nto need to be in order.\n\nit does help you think about the breakdown, but it\u0027s not perspictive.\n\nIt helps to think about it as, `i need to do this, and this and then this ...`\n\nthat why i think of it as the `when` \n\ni think this is mostly ok.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":141,"context_line":"-----------"},{"line_number":142,"context_line":"None"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Work Items"},{"line_number":145,"context_line":"----------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* Use newer python-observabilityclient"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da5e2bc0_4887e512","line":144,"in_reply_to":"de465045_bf3b527b","updated":"2025-07-01 22:33:15.000000000","message":"Acknowledged","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":true,"context_lines":[{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"* The current watcher-prometheus-integration job can be duplicated and"},{"line_number":170,"context_line":"  modified slightly to be deployed with Aetos, using Aetos\u0027s devstack plugin."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* Unit tests would be added as well"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"753cdbc1_d81767ae","line":170,"updated":"2025-07-01 12:12:43.000000000","message":"+1\n\nthe testing expection is all test adn feature that are currently run on the promethos datasouce shoudl work with ateos and that the job will be added in the patch that makes ateos functionl.\n\nwe could merge some of the ateos code in prior commit btu the change that adds the config option to allow you to turn it on shoudl have the job, docs and release note.","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"253d65d129570c0b112ee1a564a9da650ab1c216","unresolved":false,"context_lines":[{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"* The current watcher-prometheus-integration job can be duplicated and"},{"line_number":170,"context_line":"  modified slightly to be deployed with Aetos, using Aetos\u0027s devstack plugin."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* Unit tests would be added as well"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"99b2deb9_a458a2fa","line":170,"in_reply_to":"753cdbc1_d81767ae","updated":"2025-07-01 22:33:15.000000000","message":"Acknowledged","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7127f8382fe02c2acc7d6cfedfb4f900d44bc05","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"A mention will be added, that having a Prometheus and Aetos datasources at"},{"line_number":185,"context_line":"the same time isn\u0027t supported and ends with a configuration error."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"References"},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"06220ecb_bad22b6a","line":186,"updated":"2025-07-01 12:12:43.000000000","message":"ack","commit_id":"2af2c7cdbb25059fb173729bba1881a43a0c343d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"29b7d60f75dd345d7ae1a1dccffa6e202d5ede97","unresolved":true,"context_lines":[{"line_number":30,"context_line":"the PrometheusAPIClient."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"You should also specify the root_path prefix. The root_path parameter"},{"line_number":34,"context_line":"allows for specifying a prefix, which gets added to the path portion"},{"line_number":35,"context_line":"of the URL when sending requests through the PrometheusAPIClient. So for"},{"line_number":36,"context_line":"example, with a host\u003dlocalhost, port\u003d9090 and root_path\u003dprom, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5b6a2dfd_a213cd04","line":33,"updated":"2025-07-02 11:12:31.000000000","message":"Is this still accurate? Will we need a `root_path` config option? The wording at the end of the paragraph seems to imply we won\u0027t, because we can get it from the keystone endpoint","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d2764226a249cb445e21e7ee9b30f80f6a0bdf3f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"the PrometheusAPIClient."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"You should also specify the root_path prefix. The root_path parameter"},{"line_number":34,"context_line":"allows for specifying a prefix, which gets added to the path portion"},{"line_number":35,"context_line":"of the URL when sending requests through the PrometheusAPIClient. So for"},{"line_number":36,"context_line":"example, with a host\u003dlocalhost, port\u003d9090 and root_path\u003dprom, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9f38e310_3408844a","line":33,"in_reply_to":"2e233521_ac611f71","updated":"2025-07-02 15:47:18.000000000","message":"it is ok since there is more details in the follow up https://review.opendev.org/c/openstack/watcher-specs/+/953912/2/specs/2025.2/approved/prometheus-multitenancy-support.rst","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"3f0fb7d350a74550fccbef3f3205bbb640727a0a","unresolved":true,"context_lines":[{"line_number":30,"context_line":"the PrometheusAPIClient."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"You should also specify the root_path prefix. The root_path parameter"},{"line_number":34,"context_line":"allows for specifying a prefix, which gets added to the path portion"},{"line_number":35,"context_line":"of the URL when sending requests through the PrometheusAPIClient. So for"},{"line_number":36,"context_line":"example, with a host\u003dlocalhost, port\u003d9090 and root_path\u003dprom, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"94282e09_21d6e54f","line":33,"in_reply_to":"4fb01cb7_b5d23916","updated":"2025-07-02 14:04:10.000000000","message":"You need to provide the root_path when creating the PrometheusAPIClient object. But that\u0027ll be a part of the URL you get from Keystone. No need to have a config option. I tried to clerify it a bit more. Is it good now?","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"da5c9800d6afbaac594a6666890ec94bc0f629c1","unresolved":true,"context_lines":[{"line_number":30,"context_line":"the PrometheusAPIClient."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"You should also specify the root_path prefix. The root_path parameter"},{"line_number":34,"context_line":"allows for specifying a prefix, which gets added to the path portion"},{"line_number":35,"context_line":"of the URL when sending requests through the PrometheusAPIClient. So for"},{"line_number":36,"context_line":"example, with a host\u003dlocalhost, port\u003d9090 and root_path\u003dprom, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"4fb01cb7_b5d23916","line":33,"in_reply_to":"5b6a2dfd_a213cd04","updated":"2025-07-02 12:44:06.000000000","message":"yeah, good point Joan. This needs to be reviewed","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"3192f147181cd83ae5687bc4f548282e1634132a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"the PrometheusAPIClient."},{"line_number":31,"context_line":"See the new init function signature:"},{"line_number":32,"context_line":"https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56"},{"line_number":33,"context_line":"You should also specify the root_path prefix. The root_path parameter"},{"line_number":34,"context_line":"allows for specifying a prefix, which gets added to the path portion"},{"line_number":35,"context_line":"of the URL when sending requests through the PrometheusAPIClient. So for"},{"line_number":36,"context_line":"example, with a host\u003dlocalhost, port\u003d9090 and root_path\u003dprom, when"}],"source_content_type":"text/x-rst","patch_set":9,"id":"2e233521_ac611f71","line":33,"in_reply_to":"94282e09_21d6e54f","updated":"2025-07-02 14:09:53.000000000","message":"yes, I think now it\u0027s clear enough, thanks!","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"da5c9800d6afbaac594a6666890ec94bc0f629c1","unresolved":true,"context_lines":[{"line_number":58,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":59,"context_line":"Reverse proxy server."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":9,"id":"2953ab18_1b102401","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":15},"updated":"2025-07-02 12:44:06.000000000","message":"We agree that we can fix in a follow up (which you already started), but this is looking more like work items. In proposed change we can explain that the proposed change is to create another datasource, which is based on the existing Prometheus one, and that it will communicate with Keystone to discover if Aetos service is available.","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"3f0fb7d350a74550fccbef3f3205bbb640727a0a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":59,"context_line":"Reverse proxy server."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Proposed change"},{"line_number":62,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":9,"id":"56e8d339_31b678b2","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":15},"in_reply_to":"2953ab18_1b102401","updated":"2025-07-02 14:04:10.000000000","message":"Acknowledged. I\u0027ll try to do that in the followup.","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"da5c9800d6afbaac594a6666890ec94bc0f629c1","unresolved":true,"context_lines":[{"line_number":82,"context_line":"  catalog."},{"line_number":83,"context_line":"* The Aetos datasource will exit with an error, which stops the decision"},{"line_number":84,"context_line":"  engine, if it\u0027s enabled and Aetos isn\u0027t registered in Keystone."},{"line_number":85,"context_line":"* Configuring Prometheus and Aetos datasources both at the same time"},{"line_number":86,"context_line":"  is a configuration error."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"95b7fa8d_a50a936c","line":86,"range":{"start_line":85,"start_character":2,"end_line":86,"end_character":27},"updated":"2025-07-02 12:44:06.000000000","message":"I think that we can have both working together, but since it is not a requirement, we can raise an error, instead of the need of testing both together.","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"3f0fb7d350a74550fccbef3f3205bbb640727a0a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"  catalog."},{"line_number":83,"context_line":"* The Aetos datasource will exit with an error, which stops the decision"},{"line_number":84,"context_line":"  engine, if it\u0027s enabled and Aetos isn\u0027t registered in Keystone."},{"line_number":85,"context_line":"* Configuring Prometheus and Aetos datasources both at the same time"},{"line_number":86,"context_line":"  is a configuration error."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"f53ad95a_06bfecf0","line":86,"range":{"start_line":85,"start_character":2,"end_line":86,"end_character":27},"in_reply_to":"95b7fa8d_a50a936c","updated":"2025-07-02 14:04:10.000000000","message":"My thinking here was, that I don\u0027t think Watcher currently supports having 2 prometheuses and having a prometheus and aetos at the same time is quite similar. I don\u0027t know if there could be any problems with having both or if there is even a valid usecase for having both. So I think it\u0027s safer to just disallow it and if needed, it can be allowed later.","commit_id":"81513f081e408ac45bdc85e68baa99a526ee8cf4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6f13007d180066f8f099be92caa23da0eba6bbdd","unresolved":true,"context_lines":[{"line_number":38,"context_line":"the final URL will look like this:"},{"line_number":39,"context_line":"\u0027localhost:9090/prom/api/v1/query\u0027, while without the root_path parameter,"},{"line_number":40,"context_line":"it\u0027d be just \u0027localhost:9090/api/v1/query\u0027. This is useful, because Aetos"},{"line_number":41,"context_line":"can be installed with uwsgi under any prefix. This is part of the Aetos\u0027s URL"},{"line_number":42,"context_line":"in the Keystone endpoints and the only work is to parse it out and provide"},{"line_number":43,"context_line":"it as a parameter for the PrometheusAPIClient. No need to expose the root_path"},{"line_number":44,"context_line":"as a configuration option for the users."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"It\u0027s expected for Aetos to have an endpoint with service name \u0027aetos\u0027,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"c1d7a1eb_dcc90765","line":43,"range":{"start_line":41,"start_character":46,"end_line":43,"end_character":45},"updated":"2025-07-02 15:34:15.000000000","message":"right i do not want to do that.\n\nwatcher shoudl not need to extract the endpoint form the session object and parse it with url parse just to provide the root path \n\nhttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparse\ncan do it trivially but this is a defect in the \n\nPrometheusAPIClient constructor the logic to do that if its required internally shoudl be done in https://opendev.org/openstack/python-observabilityclient/src/branch/master/observabilityclient/prometheus_client.py#L56\n\nfor now i think we can defer this to the implation but i woudl like you to change the obserablity client an do a new relesae and for now not pass the root_path at all.\n\nlets discss that in the implemenmtaion review","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"fef93bbe4f5f9a176fcc9e9af8fab7e928179654","unresolved":false,"context_lines":[{"line_number":38,"context_line":"the final URL will look like this:"},{"line_number":39,"context_line":"\u0027localhost:9090/prom/api/v1/query\u0027, while without the root_path parameter,"},{"line_number":40,"context_line":"it\u0027d be just \u0027localhost:9090/api/v1/query\u0027. This is useful, because Aetos"},{"line_number":41,"context_line":"can be installed with uwsgi under any prefix. This is part of the Aetos\u0027s URL"},{"line_number":42,"context_line":"in the Keystone endpoints and the only work is to parse it out and provide"},{"line_number":43,"context_line":"it as a parameter for the PrometheusAPIClient. No need to expose the root_path"},{"line_number":44,"context_line":"as a configuration option for the users."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"It\u0027s expected for Aetos to have an endpoint with service name \u0027aetos\u0027,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ffeb9318_6b267b27","line":43,"range":{"start_line":41,"start_character":46,"end_line":43,"end_character":45},"in_reply_to":"0df1d055_3be845c6","updated":"2025-07-02 18:29:33.000000000","message":"This is implemented in the observabilityclient already. You chose to use the lower level PrometheusAPIClient directly for Watcher. There are no plans for the PrometheusAPIClient to accept URLs like that. If we change the init function signature to accept a whole URL instead of the individual pieces, you\u0027re not gonna like us because of backwards compatibility reasons.","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"94cebf704692188dc1fb8044b009ab2365df36cc","unresolved":false,"context_lines":[{"line_number":38,"context_line":"the final URL will look like this:"},{"line_number":39,"context_line":"\u0027localhost:9090/prom/api/v1/query\u0027, while without the root_path parameter,"},{"line_number":40,"context_line":"it\u0027d be just \u0027localhost:9090/api/v1/query\u0027. This is useful, because Aetos"},{"line_number":41,"context_line":"can be installed with uwsgi under any prefix. This is part of the Aetos\u0027s URL"},{"line_number":42,"context_line":"in the Keystone endpoints and the only work is to parse it out and provide"},{"line_number":43,"context_line":"it as a parameter for the PrometheusAPIClient. No need to expose the root_path"},{"line_number":44,"context_line":"as a configuration option for the users."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"It\u0027s expected for Aetos to have an endpoint with service name \u0027aetos\u0027,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"0df1d055_3be845c6","line":43,"range":{"start_line":41,"start_character":46,"end_line":43,"end_character":45},"in_reply_to":"42dafe19_e25c36c1","updated":"2025-07-02 16:56:35.000000000","message":"Acknowledged","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d2764226a249cb445e21e7ee9b30f80f6a0bdf3f","unresolved":true,"context_lines":[{"line_number":38,"context_line":"the final URL will look like this:"},{"line_number":39,"context_line":"\u0027localhost:9090/prom/api/v1/query\u0027, while without the root_path parameter,"},{"line_number":40,"context_line":"it\u0027d be just \u0027localhost:9090/api/v1/query\u0027. This is useful, because Aetos"},{"line_number":41,"context_line":"can be installed with uwsgi under any prefix. This is part of the Aetos\u0027s URL"},{"line_number":42,"context_line":"in the Keystone endpoints and the only work is to parse it out and provide"},{"line_number":43,"context_line":"it as a parameter for the PrometheusAPIClient. No need to expose the root_path"},{"line_number":44,"context_line":"as a configuration option for the users."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"It\u0027s expected for Aetos to have an endpoint with service name \u0027aetos\u0027,"}],"source_content_type":"text/x-rst","patch_set":10,"id":"42dafe19_e25c36c1","line":43,"range":{"start_line":41,"start_character":46,"end_line":43,"end_character":45},"in_reply_to":"c1d7a1eb_dcc90765","updated":"2025-07-02 15:47:18.000000000","message":"+1","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6f13007d180066f8f099be92caa23da0eba6bbdd","unresolved":true,"context_lines":[{"line_number":60,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":61,"context_line":"Reverse proxy server."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed change"},{"line_number":64,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":10,"id":"390e1006_7773f3a9","line":63,"updated":"2025-07-02 15:34:15.000000000","message":"This is intended to be prose, not a bullet list of tasks...\n\nThe work items are a bullet list of tasks.\n\nThis is not enough of a reason for me to block this for this cycle, however, if spec freeze was not tomorrow, I would have expected you to put more effort into following the style of how specs are intended to be written.\n\nIts very frustrating as a review when this feedback is not taken on board.\nWe may not have a lot of examples, but we had 4 specs proposed for this cycle\nand the format is the same as used in Nova/Cinder/neutron, ectra, so there are examples to draw from...\n\nanyway. for now ill move on adn we may propose additional follow-ups to correct this after spec freeze.\n\nspecs serve as documentation for developers and admins for years to come so the readability of a spec is very important. They will be read many times more than they are written.","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"d2764226a249cb445e21e7ee9b30f80f6a0bdf3f","unresolved":true,"context_lines":[{"line_number":60,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":61,"context_line":"Reverse proxy server."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed change"},{"line_number":64,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3bac787a_7c108f3b","line":63,"in_reply_to":"390e1006_7773f3a9","updated":"2025-07-02 15:47:18.000000000","message":"+1\nThere are some improvements in the follow up patch[1], but still not what I was also expecting from a spec.\nI agree that we should/may propose/review additional follow ups to correct this.\n\n[1] https://review.opendev.org/c/openstack/watcher-specs/+/953912","commit_id":"a167196a9d3f6250734950c76353fb2097590496"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"94cebf704692188dc1fb8044b009ab2365df36cc","unresolved":false,"context_lines":[{"line_number":60,"context_line":"disabling outside access to Prometheus and implementing RBAC via the Aetos"},{"line_number":61,"context_line":"Reverse proxy server."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed change"},{"line_number":64,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Use the python-observabilityclient 1.0.0 or newer."}],"source_content_type":"text/x-rst","patch_set":10,"id":"29fe9c05_82995e20","line":63,"in_reply_to":"3bac787a_7c108f3b","updated":"2025-07-02 16:56:35.000000000","message":"Acknowledged","commit_id":"a167196a9d3f6250734950c76353fb2097590496"}]}
