)]}'
{"ceilometer/dispatcher/gnocchi.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0b921832ee28b64cf8ca137f8be1b89064419e8e","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            # because batch_resources_metrics_measures exception"},{"line_number":309,"context_line":"            # returns this id and not the ceilometer one"},{"line_number":310,"context_line":"            gnocchi_id \u003d gnocchi_utils.encode_resource_id(resource_id)"},{"line_number":311,"context_line":"            res_info \u003d gnocchi_data.setdefault(gnocchi_id, {})"},{"line_number":312,"context_line":"            for metric_name, samples in metric_grouped_samples:"},{"line_number":313,"context_line":"                stats[\u0027metrics\u0027] +\u003d 1"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_a5cbc571","line":311,"updated":"2016-03-29 13:15:25.000000000","message":"do we need to check if gnocchi_id exists in gnocchi_data? it should never exist yet no?","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"3bf56bc95f093480e55c4bf3187172aefee0f72c","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            # because batch_resources_metrics_measures exception"},{"line_number":309,"context_line":"            # returns this id and not the ceilometer one"},{"line_number":310,"context_line":"            gnocchi_id \u003d gnocchi_utils.encode_resource_id(resource_id)"},{"line_number":311,"context_line":"            res_info \u003d gnocchi_data.setdefault(gnocchi_id, {})"},{"line_number":312,"context_line":"            for metric_name, samples in metric_grouped_samples:"},{"line_number":313,"context_line":"                stats[\u0027metrics\u0027] +\u003d 1"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_d55f3d3f","line":311,"in_reply_to":"ba0121b8_a5cbc571","updated":"2016-03-30 13:57:22.000000000","message":"setdefault use existing dict if gnocchi_id already exists otherwise {};","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"949a338c116db11b0c491e8518f2f2b420deb184","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                samples \u003d list(samples)"},{"line_number":316,"context_line":"                rd \u003d self._get_resource_definition(metric_name)"},{"line_number":317,"context_line":"                if rd is None:"},{"line_number":318,"context_line":"                    LOG.warning(\"metric %s is not handled by gnocchi\" %"},{"line_number":319,"context_line":"                                metric_name)"},{"line_number":320,"context_line":"                    continue"},{"line_number":321,"context_line":"                if rd.cfg.get(\"ignore\"):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_49ee4d23","line":318,"range":{"start_line":318,"start_character":61,"end_line":318,"end_character":68},"updated":"2016-03-29 09:56:46.000000000","message":"Gnocchi\n\n:)","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"3bf56bc95f093480e55c4bf3187172aefee0f72c","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                samples \u003d list(samples)"},{"line_number":316,"context_line":"                rd \u003d self._get_resource_definition(metric_name)"},{"line_number":317,"context_line":"                if rd is None:"},{"line_number":318,"context_line":"                    LOG.warning(\"metric %s is not handled by gnocchi\" %"},{"line_number":319,"context_line":"                                metric_name)"},{"line_number":320,"context_line":"                    continue"},{"line_number":321,"context_line":"                if rd.cfg.get(\"ignore\"):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_953ca5e3","line":318,"range":{"start_line":318,"start_character":61,"end_line":318,"end_character":68},"in_reply_to":"ba0121b8_2a94a435","updated":"2016-03-30 13:57:22.000000000","message":"Done","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0b921832ee28b64cf8ca137f8be1b89064419e8e","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                samples \u003d list(samples)"},{"line_number":316,"context_line":"                rd \u003d self._get_resource_definition(metric_name)"},{"line_number":317,"context_line":"                if rd is None:"},{"line_number":318,"context_line":"                    LOG.warning(\"metric %s is not handled by gnocchi\" %"},{"line_number":319,"context_line":"                                metric_name)"},{"line_number":320,"context_line":"                    continue"},{"line_number":321,"context_line":"                if rd.cfg.get(\"ignore\"):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_2a94a435","line":318,"range":{"start_line":318,"start_character":61,"end_line":318,"end_character":68},"in_reply_to":"ba0121b8_49ee4d23","updated":"2016-03-29 13:15:25.000000000","message":"_LW()","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0b921832ee28b64cf8ca137f8be1b89064419e8e","unresolved":false,"context_lines":[{"line_number":379,"context_line":"            gnocchi_ids_freshly_handled \u003d set()"},{"line_number":380,"context_line":"            for gnocchi_id, metric_name in metric_list:"},{"line_number":381,"context_line":"                if gnocchi_id in gnocchi_ids_freshly_handled:"},{"line_number":382,"context_line":"                    continue"},{"line_number":383,"context_line":"                resource \u003d resource_infos[gnocchi_id][\u0027resource\u0027]"},{"line_number":384,"context_line":"                resource_type \u003d resource_infos[gnocchi_id][\u0027resource_type\u0027]"},{"line_number":385,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_acff2d00","line":382,"updated":"2016-03-29 13:15:25.000000000","message":"is metric_list grouped by gnocchi_id? or is it a set of gnocchi_id+metric pairs where there might be multiple entry for same gnocchi_id?\n\nif there are multiple entry of gnocchi_id, this might create the resource and metric of first metric, but it won\u0027t create the metric on the second metric of same gnocchi_id? if it\u0027s grouped by gnocchi_id, i\u0027m not sure we actually need gnocchi_ids_freshly_handled?","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"3bf56bc95f093480e55c4bf3187172aefee0f72c","unresolved":false,"context_lines":[{"line_number":379,"context_line":"            gnocchi_ids_freshly_handled \u003d set()"},{"line_number":380,"context_line":"            for gnocchi_id, metric_name in metric_list:"},{"line_number":381,"context_line":"                if gnocchi_id in gnocchi_ids_freshly_handled:"},{"line_number":382,"context_line":"                    continue"},{"line_number":383,"context_line":"                resource \u003d resource_infos[gnocchi_id][\u0027resource\u0027]"},{"line_number":384,"context_line":"                resource_type \u003d resource_infos[gnocchi_id][\u0027resource_type\u0027]"},{"line_number":385,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_8b580834","line":382,"in_reply_to":"ba0121b8_acff2d00","updated":"2016-03-30 13:57:22.000000000","message":"metric_list is not grouped by gnocchi_id, and yes this is a pais of gnocchi_id+metric and we can get the same  gnocchi_id.\n\ngnocchi_ids_freshly_handled handles errors for a resource_id that why the metric with the same gnocchi_id is skipped. If we fail to recreate the resource with a 400 or 500. We just skip next identical failure.\n\nWhen we have two times the same gnocchi_id, they are a place of improvement.","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0b921832ee28b64cf8ca137f8be1b89064419e8e","unresolved":false,"context_lines":[{"line_number":413,"context_line":"            self._gnocchi.metric.batch_resources_metrics_measures(measures)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        LOG.debug(\"%(measures)d measures posted against %(metrics)d \""},{"line_number":416,"context_line":"                  \"metrics through %(resources)d resources\", stats)"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def _create_resource(self, resource_type, resource):"},{"line_number":419,"context_line":"        self._gnocchi.resource.create(resource_type, resource)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_e9359746","line":416,"updated":"2016-03-29 13:15:25.000000000","message":"these stats don\u0027t match all the (possible) filtering done above","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"3bf56bc95f093480e55c4bf3187172aefee0f72c","unresolved":false,"context_lines":[{"line_number":413,"context_line":"            self._gnocchi.metric.batch_resources_metrics_measures(measures)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"        LOG.debug(\"%(measures)d measures posted against %(metrics)d \""},{"line_number":416,"context_line":"                  \"metrics through %(resources)d resources\", stats)"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def _create_resource(self, resource_type, resource):"},{"line_number":419,"context_line":"        self._gnocchi.resource.create(resource_type, resource)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba0121b8_58008401","line":416,"in_reply_to":"ba0121b8_e9359746","updated":"2016-03-30 13:57:22.000000000","message":"Yeah I\u0027m a bit lazy, lets add a comment about that.","commit_id":"c5d21ed0f7e8aab1a428bbcfacfdcfce5d897606"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"886870e653615e9a0f9e927f275097526bbc9f44","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            # because batch_resources_metrics_measures exception"},{"line_number":309,"context_line":"            # returns this id and not the ceilometer one"},{"line_number":310,"context_line":"            gnocchi_id \u003d gnocchi_utils.encode_resource_id(resource_id)"},{"line_number":311,"context_line":"            res_info \u003d gnocchi_data.setdefault(gnocchi_id, {})"},{"line_number":312,"context_line":"            for metric_name, samples in metric_grouped_samples:"},{"line_number":313,"context_line":"                stats[\u0027metrics\u0027] +\u003d 1"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a061dce_3c1c8b69","line":311,"updated":"2016-04-06 14:33:10.000000000","message":"if we\u0027re grouping by resource_id in this loop, doesn\u0027t that mean every gnocchi_id we calculate will be unique and not exists in gnocchi_data?","commit_id":"d81b4c8092368a4759793ec4c53612b0f036fb4b"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"b54f813a9d8007f1a43e6a77cbf5a48fa464d920","unresolved":false,"context_lines":[{"line_number":308,"context_line":"            # because batch_resources_metrics_measures exception"},{"line_number":309,"context_line":"            # returns this id and not the ceilometer one"},{"line_number":310,"context_line":"            gnocchi_id \u003d gnocchi_utils.encode_resource_id(resource_id)"},{"line_number":311,"context_line":"            res_info \u003d gnocchi_data.setdefault(gnocchi_id, {})"},{"line_number":312,"context_line":"            for metric_name, samples in metric_grouped_samples:"},{"line_number":313,"context_line":"                stats[\u0027metrics\u0027] +\u003d 1"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9a061dce_d894498c","line":311,"in_reply_to":"9a061dce_3c1c8b69","updated":"2016-04-07 12:52:56.000000000","message":"Indeed, fixed.","commit_id":"d81b4c8092368a4759793ec4c53612b0f036fb4b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"a92cad188af0067b7be5ff0ed3a70997471a0204","unresolved":false,"context_lines":[{"line_number":361,"context_line":"            except Exception as e:"},{"line_number":362,"context_line":"                LOG.error(six.text_type(e), exc_info\u003dTrue)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    RE_UNKNOW_METRICS \u003d re.compile(\"Unknown metrics: (.*) \\(HTTP 400\\)\")"},{"line_number":365,"context_line":"    RE_UNKNOW_METRICS_LIST \u003d re.compile(\"([^/ ,]*)/([^,]*)\")"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def batch_measures(self, measures, resource_infos, stats):"},{"line_number":368,"context_line":"        # NOTE(sileht): We don\u0027t care about error here, we want"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a061dce_1be349da","line":365,"range":{"start_line":364,"start_character":4,"end_line":365,"end_character":60},"updated":"2016-04-07 14:23:37.000000000","message":"Maybe we could return something better in Gnocchi, JSON based.","commit_id":"4a451fac0e8d6d70e32b5a3ee5403747f6c3442c"}]}
