)]}'
{"specs/stein/approved/file-based-metricmap.rst":[{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"698781d8bd5e30317a1458b27ae861bf5b7a0cb0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"----------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"As a Watcher user, I want that Watcher should be allow choosing a metric"},{"line_number":28,"context_line":"name as defined in current datasource being used"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"As a Watcher user, I want that Watcher to be able to change the metrics"},{"line_number":31,"context_line":"names as required."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_b3fde509","line":28,"updated":"2019-03-20 01:33:14.000000000","message":"Please add period.","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"edd9f74fc1451d1c77fadc52da7263ee4fe0f1bc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"----------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"As a Watcher user, I want that Watcher should be allow choosing a metric"},{"line_number":28,"context_line":"name as defined in current datasource being used"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"As a Watcher user, I want that Watcher to be able to change the metrics"},{"line_number":31,"context_line":"names as required."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_454e2ec2","line":28,"in_reply_to":"5fc1f717_b3fde509","updated":"2019-03-20 11:07:53.000000000","message":"Done","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"e86c070208248944bcb32db5f6eabb6efbe0a7ba","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"An option of metric_map_path should be added to watcher_decision_engine"},{"line_number":38,"context_line":"section of watcher.conf"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Allow watcher to load a yaml file which contains a map of internal metric"},{"line_number":41,"context_line":"names (as expected by watcher) to real metrics names in use in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_e16769e8","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":23},"updated":"2019-03-15 04:10:35.000000000","message":"Watcher has a more flexible method to map metrics.\nyou can map actual metrics to Watcher internal metrics through strategy parameters. Could this way meet your needs?\nfor example:the \u0027instance_metrics\u0027 in strategy parameters.\nhttps://docs.openstack.org/watcher/latest/strategies/workload-stabilization.html","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"8038f316bd9c4ce4906fca014514ead67e4be009","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"An option of metric_map_path should be added to watcher_decision_engine"},{"line_number":38,"context_line":"section of watcher.conf"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Allow watcher to load a yaml file which contains a map of internal metric"},{"line_number":41,"context_line":"names (as expected by watcher) to real metrics names in use in the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_eddaf875","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":23},"in_reply_to":"5fc1f717_e16769e8","updated":"2019-03-15 09:42:32.000000000","message":"that is good option but is strategy specific.\n\nMy aim with this spec is: the user can have stored `instance_cpu_usage` as used in `cpu_vm_util`for gnocchi instead of cpu_util, and cannot change it ( as there are alarms based on that metric) and now cannot use watcher because watcher assumes it to be `cpu_util` for use with any strategy.\n\nThe user will not have to keep track for these renames during strategy application/creation can just define it as the datasource level","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"d77a139625c95ca7ab9cee946b7ee01dfdf7a219","unresolved":false,"context_lines":[{"line_number":37,"context_line":"An option of metric_map_path should be added to watcher_decision_engine"},{"line_number":38,"context_line":"section of watcher.conf"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Allow watcher to load a yaml file which contains a map of internal metric"},{"line_number":41,"context_line":"names (as expected by watcher) to real metrics names in use in the"},{"line_number":42,"context_line":"datasources."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_53460124","line":40,"range":{"start_line":40,"start_character":22,"end_line":40,"end_character":33},"updated":"2019-03-20 01:51:44.000000000","message":"Could you give a template example?","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"b8499253267f1d791f6cfaeb57a086ee6f79bfd6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"An option of metric_map_path should be added to watcher_decision_engine"},{"line_number":38,"context_line":"section of watcher.conf"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Allow watcher to load a yaml file which contains a map of internal metric"},{"line_number":41,"context_line":"names (as expected by watcher) to real metrics names in use in the"},{"line_number":42,"context_line":"datasources."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_1508bcd7","line":40,"range":{"start_line":40,"start_character":24,"end_line":40,"end_character":28},"updated":"2019-03-14 17:37:29.000000000","message":"I am not sure if an additional yaml file for the configuration of this metric map is the best idea. We could also add a dictionary to the config options, in that way have all the watcher configuration options will be in one file.","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"8038f316bd9c4ce4906fca014514ead67e4be009","unresolved":false,"context_lines":[{"line_number":37,"context_line":"An option of metric_map_path should be added to watcher_decision_engine"},{"line_number":38,"context_line":"section of watcher.conf"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Allow watcher to load a yaml file which contains a map of internal metric"},{"line_number":41,"context_line":"names (as expected by watcher) to real metrics names in use in the"},{"line_number":42,"context_line":"datasources."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_126c4506","line":40,"range":{"start_line":40,"start_character":24,"end_line":40,"end_character":28},"in_reply_to":"5fc1f717_1508bcd7","updated":"2019-03-15 09:42:32.000000000","message":"it need not be a yaml, it can be json or even a python dict, we can choose either.\n\nI choose yaml because: map will be nested. One each for monasca/gnocchi(/ceilometer?) or anything else we plan to provide in future. This can be tedious and can quickly grow pretty big in size, as there are 11*3 minimum map elemets","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"edd9f74fc1451d1c77fadc52da7263ee4fe0f1bc","unresolved":false,"context_lines":[{"line_number":37,"context_line":"An option of metric_map_path should be added to watcher_decision_engine"},{"line_number":38,"context_line":"section of watcher.conf"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Allow watcher to load a yaml file which contains a map of internal metric"},{"line_number":41,"context_line":"names (as expected by watcher) to real metrics names in use in the"},{"line_number":42,"context_line":"datasources."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_654b2ab0","line":40,"range":{"start_line":40,"start_character":22,"end_line":40,"end_character":33},"in_reply_to":"5fc1f717_53460124","updated":"2019-03-20 11:07:53.000000000","message":"Done","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"d77a139625c95ca7ab9cee946b7ee01dfdf7a219","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def __init__(self):"},{"line_number":51,"context_line":"        #..."},{"line_number":52,"context_line":"        self.metric_map.update(self.metrics_from_file())"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def metrics_from_file(self):"},{"line_number":55,"context_line":"        \"\"\"Load metrics from the config.metric_map_path\"\"\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_f3004dae","line":52,"range":{"start_line":52,"start_character":13,"end_line":52,"end_character":30},"updated":"2019-03-20 01:51:44.000000000","message":"Now the default metrics are gnocchi,monasca and ceilometer.\nthey all have their own helper class, could you give a example how to use the metric from yaml file?","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"edd9f74fc1451d1c77fadc52da7263ee4fe0f1bc","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def __init__(self):"},{"line_number":51,"context_line":"        #..."},{"line_number":52,"context_line":"        self.metric_map.update(self.metrics_from_file())"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def metrics_from_file(self):"},{"line_number":55,"context_line":"        \"\"\"Load metrics from the config.metric_map_path\"\"\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_65e00a98","line":52,"range":{"start_line":52,"start_character":13,"end_line":52,"end_character":30},"in_reply_to":"5fc1f717_f3004dae","updated":"2019-03-20 11:07:53.000000000","message":"ofcourse, I missed that part. And I agree that its not obvious. Added some explanation.","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"698781d8bd5e30317a1458b27ae861bf5b7a0cb0","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                log.info(\u0027Could not load %(s): %s\u0027 % (config.metric_map_path, str(e)))"},{"line_number":63,"context_line":"                return {}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_b374059e","line":65,"updated":"2019-03-20 01:33:14.000000000","message":"Please add an example of a yaml file like:\n\ngnocchi:\n  - instance_cpu_usage: cpu_vm_util","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"edd9f74fc1451d1c77fadc52da7263ee4fe0f1bc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                log.info(\u0027Could not load %(s): %s\u0027 % (config.metric_map_path, str(e)))"},{"line_number":63,"context_line":"                return {}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_05efc687","line":65,"in_reply_to":"5fc1f717_b374059e","updated":"2019-03-20 11:07:53.000000000","message":"Done","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"698781d8bd5e30317a1458b27ae861bf5b7a0cb0","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Testing"},{"line_number":142,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Add unit test for file loading error."},{"line_number":145,"context_line":"Add unit test for checking if file contents are loaded correctly."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_3311f554","line":144,"updated":"2019-03-20 01:33:14.000000000","message":"Please itemize these items.","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"edd9f74fc1451d1c77fadc52da7263ee4fe0f1bc","unresolved":false,"context_lines":[{"line_number":141,"context_line":"Testing"},{"line_number":142,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Add unit test for file loading error."},{"line_number":145,"context_line":"Add unit test for checking if file contents are loaded correctly."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_25f4425b","line":144,"in_reply_to":"5fc1f717_3311f554","updated":"2019-03-20 11:07:53.000000000","message":"Done","commit_id":"df10950c728426d8e4d33f1efaf79c21f1cb8350"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"857ff8f33bca1e5481c108865e74a3b259e8fb6c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                ceil.CeilometerHelper.NAME: ceil.CeilometerHelper.METRIC_MAP"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"            # 2. overide the loaded default by using yaml"},{"line_number":81,"context_line":"            self.metric_map.update(self.metrics_from_file())"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        def get_backend(self, metrics):"},{"line_number":84,"context_line":"            #..."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_8173934d","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":60},"updated":"2019-03-21 07:21:13.000000000","message":"Hello, do you mean that users can manually modify value or add key-value in this METRIC_MAP[1] instead of overwriting it? From the current code, this will replace the dictionary as a whole, instead of updating values of them.\n[1]. https://github.com/openstack/watcher/blob/master/watcher/datasource/gnocchi.py#L39","commit_id":"8296aaee3eb2c6bc77ed8fd7569bf53364329402"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"1a5fb69324712ab305c37a96644b62e1d029e402","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                ceil.CeilometerHelper.NAME: ceil.CeilometerHelper.METRIC_MAP"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"            # 2. overide the loaded default by using yaml"},{"line_number":81,"context_line":"            self.metric_map.update(self.metrics_from_file())"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        def get_backend(self, metrics):"},{"line_number":84,"context_line":"            #..."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_a1b00f8d","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":60},"in_reply_to":"5fc1f717_2105ff7a","updated":"2019-03-21 08:02:44.000000000","message":"hello Dantali0n, thanks for your example, but you didn\u0027t understand what I meant. There are two levels of dictionary. This update method will update the first level dictionary, but the second level dictionary will be replaced as a whole.","commit_id":"8296aaee3eb2c6bc77ed8fd7569bf53364329402"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"cf93d0d4463265448c0f5532f548a3e197d49883","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                ceil.CeilometerHelper.NAME: ceil.CeilometerHelper.METRIC_MAP"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"            # 2. overide the loaded default by using yaml"},{"line_number":81,"context_line":"            self.metric_map.update(self.metrics_from_file())"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        def get_backend(self, metrics):"},{"line_number":84,"context_line":"            #..."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_b7aa91cf","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":60},"in_reply_to":"5fc1f717_214bbf87","updated":"2019-03-21 09:23:24.000000000","message":"The more code I add to these snippet the more implementation details we will have here. This is something which would have come up with tests. But I agree to your question, it was not clear in the spec, so updated the Proposed Change section","commit_id":"8296aaee3eb2c6bc77ed8fd7569bf53364329402"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"5aa676c6d0c31540aca950ad403b6cb6ca9f0e89","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                ceil.CeilometerHelper.NAME: ceil.CeilometerHelper.METRIC_MAP"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"            # 2. overide the loaded default by using yaml"},{"line_number":81,"context_line":"            self.metric_map.update(self.metrics_from_file())"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        def get_backend(self, metrics):"},{"line_number":84,"context_line":"            #..."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_2105ff7a","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":60},"in_reply_to":"5fc1f717_8173934d","updated":"2019-03-21 07:43:21.000000000","message":"Dict.update() does not replace the dictionary as a whole and does update existing items or add none existing ones.\n\nThis minimal example will demonstrate that\n\u2028\u2028dict1 \u003d {\u0027Name\u0027: \u0027Zara\u0027, \u0027Age\u0027: 7}\ndict2 \u003d {\u0027Sex\u0027: \u0027Female\u0027, \u0027Age\u0027: 22}\ndict1.update(dict2)\nprint(\"Value: {0}\".format(dict1))\n\u2028","commit_id":"8296aaee3eb2c6bc77ed8fd7569bf53364329402"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"6bf607ee1ae405c5aca2b3c32fe1ccef8f660e68","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                ceil.CeilometerHelper.NAME: ceil.CeilometerHelper.METRIC_MAP"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"            # 2. overide the loaded default by using yaml"},{"line_number":81,"context_line":"            self.metric_map.update(self.metrics_from_file())"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        def get_backend(self, metrics):"},{"line_number":84,"context_line":"            #..."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_214bbf87","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":60},"in_reply_to":"5fc1f717_a1b00f8d","updated":"2019-03-21 08:47:59.000000000","message":"Ah yes ofcourse sorry about the confusion, Yeah this needs to change indeed.","commit_id":"8296aaee3eb2c6bc77ed8fd7569bf53364329402"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"4f6b1c0dbffcdf399525aa80be8c7c27b147db78","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                ceil.CeilometerHelper.NAME: ceil.CeilometerHelper.METRIC_MAP"},{"line_number":79,"context_line":"            }"},{"line_number":80,"context_line":"            # 2. overide the loaded default by using yaml"},{"line_number":81,"context_line":"            self.metric_map.update(self.metrics_from_file())"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        def get_backend(self, metrics):"},{"line_number":84,"context_line":"            #..."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_1704c5c5","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":60},"in_reply_to":"5fc1f717_b7aa91cf","updated":"2019-03-28 02:16:33.000000000","message":"Done","commit_id":"8296aaee3eb2c6bc77ed8fd7569bf53364329402"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"16cb7d4a084088561f1007a3ec2c27dfe4e81655","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Problem description"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Watchers supports loading metrics for various datasources however the"},{"line_number":18,"context_line":"metrics it uses to retrieve data are stored directly in the codebase and do"},{"line_number":19,"context_line":"not allow flexibly changing these names. And customers/admin/user are"},{"line_number":20,"context_line":"forced to use a naming scheme expected by watcher. Also it hinders watcher"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_a2447648","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":8},"updated":"2019-03-22 02:58:33.000000000","message":"Watcher","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"16cb7d4a084088561f1007a3ec2c27dfe4e81655","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Watchers supports loading metrics for various datasources however the"},{"line_number":18,"context_line":"metrics it uses to retrieve data are stored directly in the codebase and do"},{"line_number":19,"context_line":"not allow flexibly changing these names. And customers/admin/user are"},{"line_number":20,"context_line":"forced to use a naming scheme expected by watcher. Also it hinders watcher"},{"line_number":21,"context_line":"ease of integration if a particulars metric is already in use under a"},{"line_number":22,"context_line":"different name."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_c2966295","line":20,"range":{"start_line":20,"start_character":42,"end_line":20,"end_character":49},"updated":"2019-03-22 02:58:33.000000000","message":"Watcher","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"16cb7d4a084088561f1007a3ec2c27dfe4e81655","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Watchers supports loading metrics for various datasources however the"},{"line_number":18,"context_line":"metrics it uses to retrieve data are stored directly in the codebase and do"},{"line_number":19,"context_line":"not allow flexibly changing these names. And customers/admin/user are"},{"line_number":20,"context_line":"forced to use a naming scheme expected by watcher. Also it hinders watcher"},{"line_number":21,"context_line":"ease of integration if a particulars metric is already in use under a"},{"line_number":22,"context_line":"different name."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_a28b1666","line":20,"range":{"start_line":20,"start_character":67,"end_line":20,"end_character":74},"updated":"2019-03-22 02:58:33.000000000","message":"ditto","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"16cb7d4a084088561f1007a3ec2c27dfe4e81655","unresolved":false,"context_lines":[{"line_number":18,"context_line":"metrics it uses to retrieve data are stored directly in the codebase and do"},{"line_number":19,"context_line":"not allow flexibly changing these names. And customers/admin/user are"},{"line_number":20,"context_line":"forced to use a naming scheme expected by watcher. Also it hinders watcher"},{"line_number":21,"context_line":"ease of integration if a particulars metric is already in use under a"},{"line_number":22,"context_line":"different name."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_c2dbc27a","line":21,"range":{"start_line":21,"start_character":25,"end_line":21,"end_character":36},"updated":"2019-03-22 02:58:33.000000000","message":"particular","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"b3409e57943dc0674d834f2403d8181b53a909f1","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Comments"},{"line_number":110,"context_line":"--------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Step 1:"},{"line_number":113,"context_line":"This loading can be avoided if the defaults are to be never stored in python"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_cd7533ce","line":110,"range":{"start_line":109,"start_character":0,"end_line":110,"end_character":8},"updated":"2019-03-22 05:03:39.000000000","message":"As far as seeing the output, This section name is not needed.\nhttp://logs.openstack.org/12/643312/8/check/openstack-tox-docs/9156ee4/html/specs/stein/approved/file-based-metricmap.html","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"23e60d241a1c089b92b006d749475bf9b7379190","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Comments"},{"line_number":110,"context_line":"--------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Step 1:"},{"line_number":113,"context_line":"This loading can be avoided if the defaults are to be never stored in python"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_9f9750ec","line":110,"range":{"start_line":109,"start_character":0,"end_line":110,"end_character":8},"in_reply_to":"5fc1f717_cd7533ce","updated":"2019-03-22 09:36:24.000000000","message":"That is just some explanation, I feel it doesnt hurt to have it there, but now its no longer a section.","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"16cb7d4a084088561f1007a3ec2c27dfe4e81655","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"   * - Release Name"},{"line_number":235,"context_line":"     - Description"},{"line_number":236,"context_line":"   * - Stein"},{"line_number":237,"context_line":"     - Introduced"},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_e2c91e79","line":236,"range":{"start_line":236,"start_character":7,"end_line":236,"end_character":12},"updated":"2019-03-22 02:58:33.000000000","message":"It\u0027s too late for Stein. This spec will be approved in Train cycle.","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"},{"author":{"_account_id":23735,"name":"sumitjami","email":"sjamgade@suse.com","username":"nthforloop"},"change_message_id":"23e60d241a1c089b92b006d749475bf9b7379190","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"   * - Release Name"},{"line_number":235,"context_line":"     - Description"},{"line_number":236,"context_line":"   * - Stein"},{"line_number":237,"context_line":"     - Introduced"},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fc1f717_1f5a804f","line":236,"range":{"start_line":236,"start_character":7,"end_line":236,"end_character":12},"in_reply_to":"5fc1f717_e2c91e79","updated":"2019-03-22 09:36:24.000000000","message":"for now there is folder structure for train.","commit_id":"436e4405ed13ddd9cad2be702f6595d955e96eac"}]}
