)]}'
{"aodh/api/controllers/v2/alarm_rules/gnocchi.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2d530814b08ef89be5aac1b9bf59f98652471379","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    query \u003d wsme.wsattr(wtypes.text, mandatory\u003dTrue)"},{"line_number":126,"context_line":"    (\u0027The query to filter the metric, Don\\\u0027t forget to filter out \u0027"},{"line_number":127,"context_line":"     \u0027ended resources (example: {\"and\": [{\"\u003d\": {\"ended_at\": null}}, ...]}), \u0027"},{"line_number":128,"context_line":"     \u0027Otherwise gnocchi will try to create the aggregate against obsolete \u0027"},{"line_number":129,"context_line":"     \u0027resources\u0027)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    resource_type \u003d wsme.wsattr(wtypes.text, mandatory\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_9982a1ff","line":128,"updated":"2015-08-04 19:11:07.000000000","message":"Gnocchi","commit_id":"fbfc93837d7cd1288acf84cd719f1a1caa30d734"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"fa03f0cc5390d80f1dfd0511897745e5afe639c3","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    query \u003d wsme.wsattr(wtypes.text, mandatory\u003dTrue)"},{"line_number":126,"context_line":"    (\u0027The query to filter the metric, Don\\\u0027t forget to filter out \u0027"},{"line_number":127,"context_line":"     \u0027ended resources (example: {\"and\": [{\"\u003d\": {\"ended_at\": null}}, ...]}), \u0027"},{"line_number":128,"context_line":"     \u0027Otherwise gnocchi will try to create the aggregate against obsolete \u0027"},{"line_number":129,"context_line":"     \u0027resources\u0027)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    resource_type \u003d wsme.wsattr(wtypes.text, mandatory\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_f6ff1da8","line":128,"in_reply_to":"1a4dcd0f_9982a1ff","updated":"2015-08-05 06:39:29.000000000","message":"Done","commit_id":"fbfc93837d7cd1288acf84cd719f1a1caa30d734"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"701581cde09cfd9d125125a8ff995f87152a126d","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    query \u003d wsme.wsattr(wtypes.text, mandatory\u003dTrue)"},{"line_number":126,"context_line":"    (\u0027The query to filter the metric, Don\\\u0027t forget to filter out \u0027"},{"line_number":127,"context_line":"     \u0027ended resources (example: {\"and\": [{\"\u003d\": {\"ended_at\": null}}, ...]}), \u0027"},{"line_number":128,"context_line":"     \u0027Otherwise Gnocchi will try to create the aggregate against obsolete \u0027"},{"line_number":129,"context_line":"     \u0027resources\u0027)"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_d7cbe951","line":127,"updated":"2015-08-05 13:11:39.000000000","message":"s/ended/deleted/","commit_id":"f25900f05e812de4d0642f0ac1a3d4740e784e74"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"edff9a90377b6d8cd3f2cb907ba9352558e7a9a7","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    query \u003d wsme.wsattr(wtypes.text, mandatory\u003dTrue)"},{"line_number":126,"context_line":"    (\u0027The query to filter the metric, Don\\\u0027t forget to filter out \u0027"},{"line_number":127,"context_line":"     \u0027ended resources (example: {\"and\": [{\"\u003d\": {\"ended_at\": null}}, ...]}), \u0027"},{"line_number":128,"context_line":"     \u0027Otherwise Gnocchi will try to create the aggregate against obsolete \u0027"},{"line_number":129,"context_line":"     \u0027resources\u0027)"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_7f9c270f","line":127,"in_reply_to":"1a4dcd0f_d7cbe951","updated":"2015-08-05 14:31:59.000000000","message":"Done","commit_id":"f25900f05e812de4d0642f0ac1a3d4740e784e74"}],"aodh/evaluator/gnocchi.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2d530814b08ef89be5aac1b9bf59f98652471379","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            # for the aggregation, gnocchi will raise a \u0027No overlap\u0027 exception."},{"line_number":67,"context_line":"            # So temporary set \u0027percent_of_overlap\u0027 to 0 to disable the"},{"line_number":68,"context_line":"            # gnocchi checks about missing points. For more detail see:"},{"line_number":69,"context_line":"            #   https://bugs.launchpad.net/gnocchi/+bug/1479429"},{"line_number":70,"context_line":"            req[\u0027params\u0027][\u0027percent_of_overlap\u0027] \u003d 0"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        elif alarm.type \u003d\u003d \u0027gnocchi_aggregation_by_metrics_threshold\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_99994171","line":69,"updated":"2015-08-04 19:11:07.000000000","message":"Isn\u0027t the problem only gonna arise if you check without any \"smart\" time bounding?","commit_id":"fbfc93837d7cd1288acf84cd719f1a1caa30d734"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"fa03f0cc5390d80f1dfd0511897745e5afe639c3","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            # for the aggregation, gnocchi will raise a \u0027No overlap\u0027 exception."},{"line_number":67,"context_line":"            # So temporary set \u0027percent_of_overlap\u0027 to 0 to disable the"},{"line_number":68,"context_line":"            # gnocchi checks about missing points. For more detail see:"},{"line_number":69,"context_line":"            #   https://bugs.launchpad.net/gnocchi/+bug/1479429"},{"line_number":70,"context_line":"            req[\u0027params\u0027][\u0027percent_of_overlap\u0027] \u003d 0"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        elif alarm.type \u003d\u003d \u0027gnocchi_aggregation_by_metrics_threshold\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_fd886824","line":69,"in_reply_to":"1a4dcd0f_99994171","updated":"2015-08-05 06:39:29.000000000","message":"No, the request always have start and end defined. The resource aggregation assumes we have all points in the metric of each resource. percent_of_overlap exists to be less or more strict. \n\nBut for the heat downscaling issue, this is used as workaround. The strictness should be set by end-user (heat here).\n\nThe idea is to implement on the dispatcher side something that set ended_at when the compute is deleted. And filter out deleted resources via the query in the alarm definition in the heat template. But because this is huge and not well defined tasks in my head, I have started with this workaround to fix the downscaling.","commit_id":"fbfc93837d7cd1288acf84cd719f1a1caa30d734"}]}
