)]}'
{"gnocchi/carbonara.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4d20b1a77ce51b1b6b48c2f6cba13dadac832693","unresolved":false,"context_lines":[{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    @staticmethod"},{"line_number":370,"context_line":"    def aggregated(timeseries, from_timestamp\u003dNone, to_timestamp\u003dNone,"},{"line_number":371,"context_line":"                   aggregation\u003d\u0027mean\u0027, needed_percent_of_overlap\u003dNone):"},{"line_number":372,"context_line":"        if needed_percent_of_overlap is None:"},{"line_number":373,"context_line":"            needed_percent_of_overlap \u003d 100.0"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_3273a1b2","line":371,"updated":"2014-12-10 10:43:08.000000000","message":"\u003d100.0\n? :)","commit_id":"3aa62d4ac31d55595526830d2c4127e4d471f133"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d1742fef46de8f07fee0b6462f4223ceaffbd7bd","unresolved":false,"context_lines":[{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    @staticmethod"},{"line_number":370,"context_line":"    def aggregated(timeseries, from_timestamp\u003dNone, to_timestamp\u003dNone,"},{"line_number":371,"context_line":"                   aggregation\u003d\u0027mean\u0027, needed_percent_of_overlap\u003dNone):"},{"line_number":372,"context_line":"        if needed_percent_of_overlap is None:"},{"line_number":373,"context_line":"            needed_percent_of_overlap \u003d 100.0"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_8035d8db","line":371,"in_reply_to":"3a961159_3273a1b2","updated":"2014-12-10 14:51:23.000000000","message":"Done","commit_id":"3aa62d4ac31d55595526830d2c4127e4d471f133"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"c4bf76ab3210d9c28a3f4c303ceef3f8188bed23","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        points_count \u003d pandas.concat(dataframes).groupby("},{"line_number":397,"context_line":"            level\u003d\u0027timestamp\u0027).count()"},{"line_number":398,"context_line":"        maximum \u003d len(points_count)"},{"line_number":399,"context_line":"        minimum \u003d len(points_count[points_count \u003c len(timeseries)].dropna())"},{"line_number":400,"context_line":"        percent_of_overlap \u003d float(maximum - minimum) * 100.0 / float(maximum)"},{"line_number":401,"context_line":"        if percent_of_overlap \u003c needed_percent_of_overlap:"},{"line_number":402,"context_line":"            raise UnAggregableTimeseries(\u0027Less than %f%% of datapoints \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_5c0f7be1","line":399,"updated":"2014-12-17 18:14:48.000000000","message":"If the to_timestamp overlaps up with the BoundTimeSerie in the TimeSerieArchive, i.e. the span of the query overlaps with the full-resolution buffer, then should we so strict as to require a datapoint for each of the contributing timeseries?\n\nI thinking here of the fact the \"leading edge\" is generally only partially populated because say in the case of metrics like cpu_util, the compute agents on the nodes aren\u0027t running with their polling intervals in sync, so in general only a subset will have reported for the current period.\n\nWould it be less fragile to exclude this most recent churny period from the overlap requirement?","commit_id":"71e4c1a9b3beec65627137c39b85b469bbdbf0cf"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"781f6a111f30b8df1857dbec2853fad09dbf6630","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        points_count \u003d pandas.concat(dataframes).groupby("},{"line_number":397,"context_line":"            level\u003d\u0027timestamp\u0027).count()"},{"line_number":398,"context_line":"        maximum \u003d len(points_count)"},{"line_number":399,"context_line":"        minimum \u003d len(points_count[points_count \u003c len(timeseries)].dropna())"},{"line_number":400,"context_line":"        percent_of_overlap \u003d float(maximum - minimum) * 100.0 / float(maximum)"},{"line_number":401,"context_line":"        if percent_of_overlap \u003c needed_percent_of_overlap:"},{"line_number":402,"context_line":"            raise UnAggregableTimeseries(\u0027Less than %f%% of datapoints \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_d4e07ece","line":399,"in_reply_to":"3a961159_5c0f7be1","updated":"2014-12-18 16:00:18.000000000","message":"Not sure I understand, but perhaps I have pushed here, the anwser of this question: https://review.openstack.org/#/c/142824/","commit_id":"71e4c1a9b3beec65627137c39b85b469bbdbf0cf"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b992fde192ad2a7345f760451549b0abff102b21","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        points_count \u003d pandas.concat(dataframes).groupby("},{"line_number":397,"context_line":"            level\u003d\u0027timestamp\u0027).count()"},{"line_number":398,"context_line":"        maximum \u003d len(points_count)"},{"line_number":399,"context_line":"        minimum \u003d len(points_count[points_count \u003c len(timeseries)].dropna())"},{"line_number":400,"context_line":"        percent_of_overlap \u003d float(maximum - minimum) * 100.0 / float(maximum)"},{"line_number":401,"context_line":"        if percent_of_overlap \u003c needed_percent_of_overlap:"},{"line_number":402,"context_line":"            raise UnAggregableTimeseries(\u0027Less than %f%% of datapoints \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_f761e039","line":399,"in_reply_to":"3a961159_d4e07ece","updated":"2014-12-19 11:24:29.000000000","message":"I see the case, I think the aggregation should in this case compute the to_timestamp to be last possible datapoints in common for all the timeseries.\n\nThe need_percent_of_overlap check should only happen if both from_timestamp and to_timestamp are set; otherwise an automatic discovery should happen.","commit_id":"71e4c1a9b3beec65627137c39b85b469bbdbf0cf"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"6651816bcf3c95a9909bdb9307d05d710457fe99","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        points_count \u003d pandas.concat(dataframes).groupby("},{"line_number":397,"context_line":"            level\u003d\u0027timestamp\u0027).count()"},{"line_number":398,"context_line":"        maximum \u003d len(points_count)"},{"line_number":399,"context_line":"        minimum \u003d len(points_count[points_count \u003c len(timeseries)].dropna())"},{"line_number":400,"context_line":"        percent_of_overlap \u003d float(maximum - minimum) * 100.0 / float(maximum)"},{"line_number":401,"context_line":"        if percent_of_overlap \u003c needed_percent_of_overlap:"},{"line_number":402,"context_line":"            raise UnAggregableTimeseries(\u0027Less than %f%% of datapoints \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_16367c51","line":399,"in_reply_to":"3a961159_f761e039","updated":"2015-01-15 11:19:24.000000000","message":"I have updated https://review.openstack.org/#/c/142824/, that should fix the issue.","commit_id":"71e4c1a9b3beec65627137c39b85b469bbdbf0cf"}],"gnocchi/rest/__init__.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4d20b1a77ce51b1b6b48c2f6cba13dadac832693","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @pecan.expose(\u0027json\u0027)"},{"line_number":283,"context_line":"    def get_measures(self, start\u003dNone, stop\u003dNone, aggregation\u003d\u0027mean\u0027,"},{"line_number":284,"context_line":"                     needed_overlap\u003dNone):"},{"line_number":285,"context_line":"        if aggregation not in storage.AGGREGATION_TYPES:"},{"line_number":286,"context_line":"            pecan.abort(400, \u0027Invalid aggregation value %s, must be one of %s\u0027"},{"line_number":287,"context_line":"                        % (aggregation, str(storage.AGGREGATION_TYPES)))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_b2b5d132","line":284,"updated":"2014-12-10 10:43:08.000000000","message":"The default of None sounds like no overlap is needed.\n\nI think you should have a default too here of 100.0","commit_id":"3aa62d4ac31d55595526830d2c4127e4d471f133"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d1742fef46de8f07fee0b6462f4223ceaffbd7bd","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @pecan.expose(\u0027json\u0027)"},{"line_number":283,"context_line":"    def get_measures(self, start\u003dNone, stop\u003dNone, aggregation\u003d\u0027mean\u0027,"},{"line_number":284,"context_line":"                     needed_overlap\u003dNone):"},{"line_number":285,"context_line":"        if aggregation not in storage.AGGREGATION_TYPES:"},{"line_number":286,"context_line":"            pecan.abort(400, \u0027Invalid aggregation value %s, must be one of %s\u0027"},{"line_number":287,"context_line":"                        % (aggregation, str(storage.AGGREGATION_TYPES)))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_403bf0d0","line":284,"in_reply_to":"3a961159_b2b5d132","updated":"2014-12-10 14:51:23.000000000","message":"Done","commit_id":"3aa62d4ac31d55595526830d2c4127e4d471f133"}]}
