)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Spec: Add query functions to Prometheus"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"See specs/ussuri/add_prometheus_query_functions_to_the_colletor.rst"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Story: 2006427"},{"line_number":12,"context_line":"Task: 36329"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"3fa7e38b_35bb65c4","line":9,"range":{"start_line":9,"start_character":55,"end_line":9,"end_character":65},"updated":"2019-11-22 08:34:34.000000000","message":"collector. You\u0027ll also have to fix the filename","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Spec: Add query functions to Prometheus"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"See specs/ussuri/add_prometheus_query_functions_to_the_colletor.rst"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Story: 2006427"},{"line_number":12,"context_line":"Task: 36329"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"3fa7e38b_585f380e","line":9,"range":{"start_line":9,"start_character":55,"end_line":9,"end_character":65},"in_reply_to":"3fa7e38b_35bb65c4","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"}],"specs/train/add_prometheus_query_functions_to_the_colletor.rst":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem Description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The Prometheus collector cannot handle ``Counter`` and ``Gauge`` data type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"A ``counter`` is a cumulative metric that represents a single monotonically"},{"line_number":19,"context_line":"increasing counter whose value can only increase or be reset"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_4a82baa7","line":16,"range":{"start_line":16,"start_character":39,"end_line":16,"end_character":64},"updated":"2019-08-23 14:49:22.000000000","message":"Consitency: either Capitalized or lowercased everywhere","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem Description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The Prometheus collector cannot handle ``Counter`` and ``Gauge`` data type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"A ``counter`` is a cumulative metric that represents a single monotonically"},{"line_number":19,"context_line":"increasing counter whose value can only increase or be reset"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_a5c35f06","line":16,"range":{"start_line":16,"start_character":39,"end_line":16,"end_character":64},"in_reply_to":"7faddb67_4a82baa7","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"A ``gauge`` is a metric that represents a single numerical"},{"line_number":25,"context_line":"value that can arbitrarily go up and down."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":28,"context_line":"two cycle of collect, therefore we can charge this kind of data"},{"line_number":29,"context_line":"that evolve over cycles."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_0a8cc2d5","line":28,"range":{"start_line":27,"start_character":53,"end_line":28,"end_character":20},"updated":"2019-08-23 14:49:22.000000000","message":"The difference between two collect cycles","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":24,"context_line":"A ``gauge`` is a metric that represents a single numerical"},{"line_number":25,"context_line":"value that can arbitrarily go up and down."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":28,"context_line":"two cycle of collect, therefore we can charge this kind of data"},{"line_number":29,"context_line":"that evolve over cycles."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_25520f6a","line":28,"range":{"start_line":27,"start_character":53,"end_line":28,"end_character":20},"in_reply_to":"7faddb67_0a8cc2d5","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"value that can arbitrarily go up and down."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":28,"context_line":"two cycle of collect, therefore we can charge this kind of data"},{"line_number":29,"context_line":"that evolve over cycles."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Proposed Change"},{"line_number":32,"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":7,"id":"7faddb67_4aab9a1d","line":29,"range":{"start_line":28,"start_character":46,"end_line":29,"end_character":24},"updated":"2019-08-23 14:49:22.000000000","message":"data that grows over cycles","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":25,"context_line":"value that can arbitrarily go up and down."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":28,"context_line":"two cycle of collect, therefore we can charge this kind of data"},{"line_number":29,"context_line":"that evolve over cycles."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Proposed Change"},{"line_number":32,"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":7,"id":"7faddb67_454f0bbe","line":29,"range":{"start_line":28,"start_character":46,"end_line":29,"end_character":24},"in_reply_to":"7faddb67_4aab9a1d","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Proposed Change"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"We can add a field in the ``extra_args`` section of the ``metrics.yml`` file."},{"line_number":35,"context_line":"This field would have only few functions allowed because of the expected"},{"line_number":36,"context_line":"formatted result. Here\u0027s a list of the prometheus query functions that"},{"line_number":37,"context_line":"should be allowed :"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_2a5c1e4b","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":21},"updated":"2019-08-23 14:49:22.000000000","message":"Adding a field to the","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Proposed Change"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"We can add a field in the ``extra_args`` section of the ``metrics.yml`` file."},{"line_number":35,"context_line":"This field would have only few functions allowed because of the expected"},{"line_number":36,"context_line":"formatted result. Here\u0027s a list of the prometheus query functions that"},{"line_number":37,"context_line":"should be allowed :"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_c5c8db22","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":21},"in_reply_to":"7faddb67_2a5c1e4b","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"- round()"},{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We also noticed that prometheus functions can be grouped in two ways."},{"line_number":56,"context_line":"Those who take a ``Range Vector`` in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_8a475278","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":69},"updated":"2019-08-23 14:49:22.000000000","message":"Prometheus functions can be grouped into two categories:","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":52,"context_line":"- round()"},{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We also noticed that prometheus functions can be grouped in two ways."},{"line_number":56,"context_line":"Those who take a ``Range Vector`` in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_45fdcb39","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":69},"in_reply_to":"7faddb67_8a475278","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We also noticed that prometheus functions can be grouped in two ways."},{"line_number":56,"context_line":"Those who take a ``Range Vector`` in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Range :"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_4a595a59","line":56,"range":{"start_line":56,"start_character":6,"end_line":56,"end_character":9},"updated":"2019-08-23 14:49:22.000000000","message":"which","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We also noticed that prometheus functions can be grouped in two ways."},{"line_number":56,"context_line":"Those who take a ``Range Vector`` in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Range :"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_2500cf35","line":56,"range":{"start_line":56,"start_character":6,"end_line":56,"end_character":9},"in_reply_to":"7faddb67_4a595a59","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We also noticed that prometheus functions can be grouped in two ways."},{"line_number":56,"context_line":"Those who take a ``Range Vector`` in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Range :"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_8a3c32e2","line":57,"range":{"start_line":56,"start_character":0,"end_line":57,"end_character":24},"updated":"2019-08-23 14:49:22.000000000","message":"These do not seem to be mutually exclusive: Could you please specify input/ouptut types/format for both categories ?","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We also noticed that prometheus functions can be grouped in two ways."},{"line_number":56,"context_line":"Those who take a ``Range Vector`` in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Range :"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_703599a7","line":57,"range":{"start_line":56,"start_character":0,"end_line":57,"end_character":24},"in_reply_to":"7faddb67_8a3c32e2","updated":"2019-11-21 16:17:58.000000000","message":"\"There are no functions that take a range vector and return a range vector\".\nhttps://www.robustperception.io/composing-range-vector-functions-in-promql","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":78,"context_line":"- round()"},{"line_number":79,"context_line":"- sqrt()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and for keeping things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_0a284295","line":81,"range":{"start_line":81,"start_character":52,"end_line":81,"end_character":63},"updated":"2019-08-23 14:49:22.000000000","message":"to keep","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":78,"context_line":"- round()"},{"line_number":79,"context_line":"- sqrt()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and for keeping things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_4582aba7","line":81,"range":{"start_line":81,"start_character":52,"end_line":81,"end_character":63},"in_reply_to":"7faddb67_0a284295","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"- sqrt()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and for keeping things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_aa16ce57","line":82,"range":{"start_line":82,"start_character":62,"end_line":82,"end_character":71},"updated":"2019-08-23 14:49:22.000000000","message":"as if they were","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":79,"context_line":"- sqrt()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and for keeping things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_c5bf7b5e","line":82,"range":{"start_line":82,"start_character":62,"end_line":82,"end_character":71},"in_reply_to":"7faddb67_aa16ce57","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and for keeping things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"},{"line_number":86,"context_line":"and will be handled by the new field : ``query_function``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_2a0ade26","line":83,"range":{"start_line":83,"start_character":29,"end_line":83,"end_character":54},"updated":"2019-08-23 14:49:22.000000000","message":"they will be set through the","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and for keeping things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"},{"line_number":86,"context_line":"and will be handled by the new field : ``query_function``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_6569e7f6","line":83,"range":{"start_line":83,"start_character":29,"end_line":83,"end_character":54},"in_reply_to":"7faddb67_2a0ade26","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"},{"line_number":86,"context_line":"and will be handled by the new field : ``query_function``."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Example"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_4a071a1f","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":23},"updated":"2019-08-23 14:49:22.000000000","message":"Functions taking an","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"},{"line_number":86,"context_line":"and will be handled by the new field : ``query_function``."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Example"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_450ceb38","line":85,"range":{"start_line":85,"start_character":51,"end_line":85,"end_character":79},"updated":"2019-08-23 14:49:22.000000000","message":"What happens when one is specified ? Does the aggregation still happen ? If yes, when ? How will the URL against which the query is done be built ?","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as it was an"},{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"},{"line_number":86,"context_line":"and will be handled by the new field : ``query_function``."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Example"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_2573efea","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":23},"in_reply_to":"7faddb67_4a071a1f","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"},{"line_number":86,"context_line":"and will be handled by the new field : ``query_function``."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Example"},{"line_number":89,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_0516f34a","line":86,"range":{"start_line":86,"start_character":12,"end_line":86,"end_character":27},"updated":"2019-08-23 14:49:22.000000000","message":"Set through a new ``extra_args`` field","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":83,"context_line":"aggregation operator. That\u0027s why we will put it in the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"The function that takes ``instant-vector`` argument will be considered optional"},{"line_number":86,"context_line":"and will be handled by the new field : ``query_function``."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Example"},{"line_number":89,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_a52d9faf","line":86,"range":{"start_line":86,"start_character":12,"end_line":86,"end_character":27},"in_reply_to":"7faddb67_0516f34a","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":88,"context_line":"Example"},{"line_number":89,"context_line":"-------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"The config file will look like something like this :"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. code-block:: yaml"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_2538cfd2","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":52},"updated":"2019-08-23 14:49:22.000000000","message":"The config file will look like this","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":88,"context_line":"Example"},{"line_number":89,"context_line":"-------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"The config file will look like something like this :"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. code-block:: yaml"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_2521afb6","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":52},"in_reply_to":"7faddb67_2538cfd2","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. code-block:: yaml"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  #metrics.yml: |-"},{"line_number":96,"context_line":"    metrics:"},{"line_number":97,"context_line":"      gateway_functions_seconds_count:"},{"line_number":98,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_e53157ef","line":95,"range":{"start_line":95,"start_character":2,"end_line":95,"end_character":18},"updated":"2019-08-23 14:49:22.000000000","message":"Delete this. Having the URL that would result from this configuration would be great","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. code-block:: yaml"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  #metrics.yml: |-"},{"line_number":96,"context_line":"    metrics:"},{"line_number":97,"context_line":"      gateway_functions_seconds_count:"},{"line_number":98,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_109305a5","line":95,"range":{"start_line":95,"start_character":2,"end_line":95,"end_character":18},"in_reply_to":"7faddb67_e53157ef","updated":"2019-11-21 16:17:58.000000000","message":"I don\u0027t understand what you mean. You want the prometheus URL that result from this config ?","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":".. code-block:: yaml"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  #metrics.yml: |-"},{"line_number":110,"context_line":"    metrics:"},{"line_number":111,"context_line":"      gateway_functions_seconds_count:"},{"line_number":112,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_c54e9b6d","line":109,"range":{"start_line":109,"start_character":2,"end_line":109,"end_character":18},"updated":"2019-08-23 14:49:22.000000000","message":"Ditto","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Alternatives"},{"line_number":122,"context_line":"------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The PyScript module can be used in some case but it\u0027s a little bit"},{"line_number":125,"context_line":"heavy for just do some simple operations."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_65532718","line":124,"range":{"start_line":124,"start_character":20,"end_line":124,"end_character":26},"updated":"2019-08-23 14:49:22.000000000","message":"could be","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Alternatives"},{"line_number":122,"context_line":"------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The PyScript module can be used in some case but it\u0027s a little bit"},{"line_number":125,"context_line":"heavy for just do some simple operations."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_c04e896d","line":124,"range":{"start_line":124,"start_character":20,"end_line":124,"end_character":26},"in_reply_to":"7faddb67_65532718","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":122,"context_line":"------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The PyScript module can be used in some case but it\u0027s a little bit"},{"line_number":125,"context_line":"heavy for just do some simple operations."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"},{"line_number":128,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_857183ab","line":125,"range":{"start_line":125,"start_character":6,"end_line":125,"end_character":29},"updated":"2019-08-23 14:49:22.000000000","message":"\"just for some simple\". Also, it would require storing a previous state in the pyscripts (in the case of a delta)","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":122,"context_line":"------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The PyScript module can be used in some case but it\u0027s a little bit"},{"line_number":125,"context_line":"heavy for just do some simple operations."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"},{"line_number":128,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_4035b9da","line":125,"range":{"start_line":125,"start_character":6,"end_line":125,"end_character":29},"in_reply_to":"7faddb67_857183ab","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":178,"context_line":"----------"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Implement Prometheus query function (with unit tests)"},{"line_number":181,"context_line":"* Add the documentation for the field ``query_function``"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Dependencies"},{"line_number":184,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_055d9314","line":181,"range":{"start_line":181,"start_character":24,"end_line":181,"end_character":56},"updated":"2019-08-23 14:49:22.000000000","message":"for the ``query_function`` field. These should be done in the same commit, so please make this a single item","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":178,"context_line":"----------"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Implement Prometheus query function (with unit tests)"},{"line_number":181,"context_line":"* Add the documentation for the field ``query_function``"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Dependencies"},{"line_number":184,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_a0726daf","line":181,"range":{"start_line":181,"start_character":24,"end_line":181,"end_character":56},"in_reply_to":"7faddb67_055d9314","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"3d514d95bf0843ee38691a47b50ad45d4754f2b7","unresolved":false,"context_lines":[{"line_number":194,"context_line":"Documentation Impact"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"We will add an entry detailing the field configuration"},{"line_number":198,"context_line":"in ``Admin/Configuration/Collector``."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"References"},{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_45a86bd8","line":198,"range":{"start_line":197,"start_character":0,"end_line":198,"end_character":37},"updated":"2019-08-23 14:49:22.000000000","message":"An entry detailing the configuration of the new field will be added to","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":194,"context_line":"Documentation Impact"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"We will add an entry detailing the field configuration"},{"line_number":198,"context_line":"in ``Admin/Configuration/Collector``."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"References"},{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_00b2614a","line":198,"range":{"start_line":197,"start_character":0,"end_line":198,"end_character":37},"in_reply_to":"7faddb67_45a86bd8","updated":"2019-11-21 16:17:58.000000000","message":"Done","commit_id":"89f425a25f1522e20fa4b6e534941279c7137a6b"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"bc3fceea3369a7177c9bd626c7db26c6bb8c4e6a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"- round()"},{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Prometheus functions can be grouped in two categories:"},{"line_number":56,"context_line":"Those which take a ``Range Vector`` type in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Range :"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7faddb67_9e4223ab","line":57,"range":{"start_line":55,"start_character":0,"end_line":57,"end_character":24},"updated":"2019-08-26 07:50:40.000000000","message":"From what I have understood from your specification, I think you meant \"[...] and those which take an ``Instant Vector`` type.\"","commit_id":"6e3f6189f882acb6bc9bf4cc558ec5b6c8196ece"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"d394e83c7a81cfde6a54bfb2babdc4df5ebb49ac","unresolved":false,"context_lines":[{"line_number":52,"context_line":"- round()"},{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Prometheus functions can be grouped in two categories:"},{"line_number":56,"context_line":"Those which take a ``Range Vector`` type in argument and those which return"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Range :"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7faddb67_303ba19b","line":57,"range":{"start_line":55,"start_character":0,"end_line":57,"end_character":24},"in_reply_to":"7faddb67_9e4223ab","updated":"2019-11-21 16:17:58.000000000","message":"Yes indeed. Thank\u0027s for the remark.","commit_id":"6e3f6189f882acb6bc9bf4cc558ec5b6c8196ece"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"1f3c7aa48c97ed08b78a30acc4e4f1378143db20","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":".. code-block:: yaml"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  #metrics.yml: |-"},{"line_number":97,"context_line":"    metrics:"},{"line_number":98,"context_line":"      gateway_functions_seconds_count:"},{"line_number":99,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5faad753_1b44e6b6","line":96,"range":{"start_line":96,"start_character":1,"end_line":96,"end_character":18},"updated":"2019-09-10 14:56:52.000000000","message":"Delete this. + please add the prometheus query URL that would result from this config example.","commit_id":"a530f3c046869335cff5e56af0e209eaa25fac20"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"1f3c7aa48c97ed08b78a30acc4e4f1378143db20","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. code-block:: yaml"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  #metrics.yml: |-"},{"line_number":111,"context_line":"    metrics:"},{"line_number":112,"context_line":"      gateway_functions_seconds_count:"},{"line_number":113,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5faad753_9b11b6af","line":110,"range":{"start_line":110,"start_character":2,"end_line":110,"end_character":18},"updated":"2019-09-10 14:56:52.000000000","message":"Delete this. + please add the prometheus query URL that would result from this config example.","commit_id":"a530f3c046869335cff5e56af0e209eaa25fac20"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"1f3c7aa48c97ed08b78a30acc4e4f1378143db20","unresolved":false,"context_lines":[{"line_number":122,"context_line":"Alternatives"},{"line_number":123,"context_line":"------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The PyScript module could be used in some case but it\u0027s a little bit"},{"line_number":126,"context_line":"heavy just for some simple operations. It would also require to save the latest"},{"line_number":127,"context_line":"state of the metric (in case of the delta function)."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5faad753_7b839acd","line":125,"range":{"start_line":125,"start_character":42,"end_line":125,"end_character":46},"updated":"2019-09-10 14:56:52.000000000","message":"cases","commit_id":"a530f3c046869335cff5e56af0e209eaa25fac20"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"1f3c7aa48c97ed08b78a30acc4e4f1378143db20","unresolved":false,"context_lines":[{"line_number":180,"context_line":"----------"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* Implement Prometheus query function (with unit tests)"},{"line_number":183,"context_line":"  and add the documentation"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Dependencies"},{"line_number":186,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5faad753_5b51fe61","line":183,"range":{"start_line":183,"start_character":10,"end_line":183,"end_character":27},"updated":"2019-09-10 14:56:52.000000000","message":"add documentation for the ``query_function`` field","commit_id":"a530f3c046869335cff5e56af0e209eaa25fac20"}],"specs/train/add_query_function_to_prometheus.rst":[{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"597d3472c394d37a8633dd649c99ef1b169904d9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem Description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The Prometheus collector cannot handle ``total`` data type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Proposed Change"},{"line_number":19,"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":2,"id":"7faddb67_e03abe33","line":16,"range":{"start_line":16,"start_character":39,"end_line":16,"end_character":58},"updated":"2019-08-22 15:08:49.000000000","message":"A quick explanation of what represents a \"``total`` data type\" in the context of Prometheus would be appreciated.\n\nAlso that would be nice if you could explain why the Prometheus collector should therefore handle this kind of data.\n\nThis would naturally come to describe the use case your spec aims to solve and convince us that the Prometheus collector not handling this type is indeed a problem that deserves to be addressed.","commit_id":"714c6c6cfc0965a52b303d73a5553841ecf0056f"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"597d3472c394d37a8633dd649c99ef1b169904d9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem Description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The Prometheus collector cannot handle ``total`` data type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Proposed Change"},{"line_number":19,"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":"7faddb67_60480e8a","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":59},"updated":"2019-08-22 15:08:49.000000000","message":"A quick explanation of what represents a \"``total`` data type\" in the context of Prometheus would be appreciated.\n\nAlso that would be nice if you could explain why the Prometheus collector should therefore handle this kind of data.\n\nThis would naturally come to describe the use case your spec aims to solve and convince us that the Prometheus collector not handling this type is indeed a problem that deserves to be addressed.","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"77a5f3d0f8215ba61863ef52030f8c1f4b83ea9d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem Description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The Prometheus collector cannot handle ``total`` data type."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Proposed Change"},{"line_number":19,"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":"7faddb67_b08df57d","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":59},"in_reply_to":"7faddb67_60480e8a","updated":"2019-08-22 15:52:30.000000000","message":"Done","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"597d3472c394d37a8633dd649c99ef1b169904d9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"formatted result. Here\u0027s a list of the prometheus query functions that"},{"line_number":24,"context_line":"should be allowed :"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- abs()"},{"line_number":27,"context_line":"- ceil()"},{"line_number":28,"context_line":"- changes()"},{"line_number":29,"context_line":"- delta()"},{"line_number":30,"context_line":"- deriv()"},{"line_number":31,"context_line":"- exp()"},{"line_number":32,"context_line":"- floor()"},{"line_number":33,"context_line":"- idelta()"},{"line_number":34,"context_line":"- ln()"},{"line_number":35,"context_line":"- log2()"},{"line_number":36,"context_line":"- log10()"},{"line_number":37,"context_line":"- rate()"},{"line_number":38,"context_line":"- round()"},{"line_number":39,"context_line":"- sqrt()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":42,"context_line":"two cycle of collect, therefore we can charge \"total\" kind of data"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_fb8113a2","line":39,"range":{"start_line":26,"start_character":0,"end_line":39,"end_character":8},"updated":"2019-08-22 15:08:49.000000000","message":"Seems okay to me since they are all unary functions.","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"77a5f3d0f8215ba61863ef52030f8c1f4b83ea9d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"formatted result. Here\u0027s a list of the prometheus query functions that"},{"line_number":24,"context_line":"should be allowed :"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- abs()"},{"line_number":27,"context_line":"- ceil()"},{"line_number":28,"context_line":"- changes()"},{"line_number":29,"context_line":"- delta()"},{"line_number":30,"context_line":"- deriv()"},{"line_number":31,"context_line":"- exp()"},{"line_number":32,"context_line":"- floor()"},{"line_number":33,"context_line":"- idelta()"},{"line_number":34,"context_line":"- ln()"},{"line_number":35,"context_line":"- log2()"},{"line_number":36,"context_line":"- log10()"},{"line_number":37,"context_line":"- rate()"},{"line_number":38,"context_line":"- round()"},{"line_number":39,"context_line":"- sqrt()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":42,"context_line":"two cycle of collect, therefore we can charge \"total\" kind of data"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_0de072f8","line":39,"range":{"start_line":26,"start_character":0,"end_line":39,"end_character":8},"in_reply_to":"7faddb67_fb8113a2","updated":"2019-08-22 15:52:30.000000000","message":"Done","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"597d3472c394d37a8633dd649c99ef1b169904d9","unresolved":false,"context_lines":[{"line_number":38,"context_line":"- round()"},{"line_number":39,"context_line":"- sqrt()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":42,"context_line":"two cycle of collect, therefore we can charge \"total\" kind of data"},{"line_number":43,"context_line":"in Prometheus."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Example"},{"line_number":46,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_7b00c301","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":14},"updated":"2019-08-22 15:08:49.000000000","message":"Okay so you did it here. This is the kind of point that would be more appropriate to mention before under the \"Problem Description\" section.\n\nThe \"Proposed Change\" is actually the technical solution you provide to this and comes after.","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"77a5f3d0f8215ba61863ef52030f8c1f4b83ea9d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"- round()"},{"line_number":39,"context_line":"- sqrt()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"For example if we use the delta function, we can get data between"},{"line_number":42,"context_line":"two cycle of collect, therefore we can charge \"total\" kind of data"},{"line_number":43,"context_line":"in Prometheus."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Example"},{"line_number":46,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_90ea390c","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":14},"in_reply_to":"7faddb67_7b00c301","updated":"2019-08-22 15:52:30.000000000","message":"Done","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"597d3472c394d37a8633dd649c99ef1b169904d9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"None"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Data model impact"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_3bf48bf1","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":4},"updated":"2019-08-22 15:08:49.000000000","message":"Some evocations of (even few) alternatives are appreciated because it can reinforce your point by demonstrating your questioning about how to solve the issue.\n\nWhy do you not retain them in favor of the solution you have provided above?","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"77a5f3d0f8215ba61863ef52030f8c1f4b83ea9d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"None"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Data model impact"},{"line_number":69,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_8d7a22ee","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":4},"in_reply_to":"7faddb67_3bf48bf1","updated":"2019-08-22 15:52:30.000000000","message":"Done","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"change_message_id":"597d3472c394d37a8633dd649c99ef1b169904d9","unresolved":false,"context_lines":[{"line_number":87,"context_line":"Other end user impact"},{"line_number":88,"context_line":"---------------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"End users will be able to make bill with ``total`` data type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Performance Impact"},{"line_number":93,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_5b2aa72f","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":61},"updated":"2019-08-22 15:08:49.000000000","message":"It is true but too domain-specific imo. End users will be able to perform more operations on metrics retrieved by the Prometheus collector.","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"77a5f3d0f8215ba61863ef52030f8c1f4b83ea9d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"Other end user impact"},{"line_number":88,"context_line":"---------------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"End users will be able to make bill with ``total`` data type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Performance Impact"},{"line_number":93,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_6dcec6b8","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":61},"in_reply_to":"7faddb67_5b2aa72f","updated":"2019-08-22 15:52:30.000000000","message":"Done","commit_id":"91c2bb7bb66369c35058bc64c6633e821d25006b"}],"specs/ussuri/add_prometheus_query_functions_to_the_colletor.rst":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Adding a field to the ``extra_args`` section of the ``metrics.yml`` file."},{"line_number":35,"context_line":"This field would have only few functions allowed because of the expected"},{"line_number":36,"context_line":"formatted result. Here\u0027s a list of the prometheus query functions that"},{"line_number":37,"context_line":"will be allowed :\u003c\u003e"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"- abs()"},{"line_number":40,"context_line":"- ceil()"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_15bc29da","line":37,"range":{"start_line":37,"start_character":17,"end_line":37,"end_character":19},"updated":"2019-11-22 08:34:34.000000000","message":"What\u0027s this ?","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Adding a field to the ``extra_args`` section of the ``metrics.yml`` file."},{"line_number":35,"context_line":"This field would have only few functions allowed because of the expected"},{"line_number":36,"context_line":"formatted result. Here\u0027s a list of the prometheus query functions that"},{"line_number":37,"context_line":"will be allowed :\u003c\u003e"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"- abs()"},{"line_number":40,"context_line":"- ceil()"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_9576d9d7","line":37,"range":{"start_line":37,"start_character":17,"end_line":37,"end_character":19},"in_reply_to":"3fa7e38b_15bc29da","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"- round()"},{"line_number":53,"context_line":"- sqrt()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Prometheus functions can be grouped in two categories:"},{"line_number":56,"context_line":"Those which take a ``Range Vector`` type in argument and those which take"},{"line_number":57,"context_line":"``Instant vector`` type."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Range :"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_358da530","line":57,"range":{"start_line":55,"start_character":0,"end_line":57,"end_character":24},"updated":"2019-11-22 08:34:34.000000000","message":"Please be more explicit: specify input/output type for both function categories.","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"- sqrt()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and to keep things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as if they where"},{"line_number":83,"context_line":"an aggregation operator. That\u0027s why they will be set through the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"Functions taking an ``instant-vector`` argument will be considered"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_957d791d","line":82,"range":{"start_line":82,"start_character":73,"end_line":82,"end_character":78},"updated":"2019-11-22 08:34:34.000000000","message":"were","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"- sqrt()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Because of the nature of the argument they take and to keep things simple"},{"line_number":82,"context_line":"for the end user, we will consider ``range-vector`` functions as if they where"},{"line_number":83,"context_line":"an aggregation operator. That\u0027s why they will be set through the"},{"line_number":84,"context_line":"``aggregation_method`` field."},{"line_number":85,"context_line":"Functions taking an ``instant-vector`` argument will be considered"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_154c299c","line":82,"range":{"start_line":82,"start_character":73,"end_line":82,"end_character":78},"in_reply_to":"3fa7e38b_957d791d","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":".. code-block:: yaml"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  #metrics.yml: |-"},{"line_number":97,"context_line":"    metrics:"},{"line_number":98,"context_line":"      gateway_functions_seconds_count:"},{"line_number":99,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_f5a94d8e","line":96,"range":{"start_line":96,"start_character":0,"end_line":96,"end_character":18},"updated":"2019-11-22 08:34:34.000000000","message":"delete this","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":".. code-block:: yaml"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  #metrics.yml: |-"},{"line_number":97,"context_line":"    metrics:"},{"line_number":98,"context_line":"      gateway_functions_seconds_count:"},{"line_number":99,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_7550fd2c","line":96,"range":{"start_line":96,"start_character":0,"end_line":96,"end_character":18},"in_reply_to":"3fa7e38b_f5a94d8e","updated":"2019-11-29 15:53:55.000000000","message":"Why whe should delete this block ? I think this is an important point.","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        extra_args:"},{"line_number":104,"context_line":"          aggregation_method: delta"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The query url will look like :"},{"line_number":107,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003ddelta(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}[3600s])\u0026start\u003d2019-11-21T16:00:00Z\u0026end\u003d2019-11-21T17:08:00Z``"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Note : the start \u0026 end arguments aren\u0027t necessary."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_75955d3c","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":30},"updated":"2019-11-22 08:34:34.000000000","message":"The query will be","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        extra_args:"},{"line_number":104,"context_line":"          aggregation_method: delta"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The query url will look like :"},{"line_number":107,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003ddelta(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}[3600s])\u0026start\u003d2019-11-21T16:00:00Z\u0026end\u003d2019-11-21T17:08:00Z``"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Note : the start \u0026 end arguments aren\u0027t necessary."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_d5369102","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":30},"in_reply_to":"3fa7e38b_75955d3c","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":104,"context_line":"          aggregation_method: delta"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The query url will look like :"},{"line_number":107,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003ddelta(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}[3600s])\u0026start\u003d2019-11-21T16:00:00Z\u0026end\u003d2019-11-21T17:08:00Z``"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Note : the start \u0026 end arguments aren\u0027t necessary."},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_75c0fd4a","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":180},"updated":"2019-11-22 08:34:34.000000000","message":"Just \"delta(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}[3600s])\" Would be enough.\n\nthis query doesn\u0027t look valid though: You\u0027re filtering on \"code\" (which is neither a \"groupby\" attribute nor a \"metadata\" attribute), and \"function_name\". There should be no filtering but a grouping on \"function_name\" and \"instance\"","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":104,"context_line":"          aggregation_method: delta"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The query url will look like :"},{"line_number":107,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003ddelta(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}[3600s])\u0026start\u003d2019-11-21T16:00:00Z\u0026end\u003d2019-11-21T17:08:00Z``"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Note : the start \u0026 end arguments aren\u0027t necessary."},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_d50f7136","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":180},"in_reply_to":"3fa7e38b_75c0fd4a","updated":"2019-11-29 15:53:55.000000000","message":"The query url is good, i tested it. This is based on OpenFaaS metrics. If you want i can delete \"code\" and \"function_name\" in the query url ?","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The query url will look like :"},{"line_number":107,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003ddelta(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}[3600s])\u0026start\u003d2019-11-21T16:00:00Z\u0026end\u003d2019-11-21T17:08:00Z``"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Note : the start \u0026 end arguments aren\u0027t necessary."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Another example :"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_d5a691c0","line":109,"range":{"start_line":108,"start_character":0,"end_line":109,"end_character":50},"updated":"2019-11-22 08:34:34.000000000","message":"Not required","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The query url will look like :"},{"line_number":107,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003ddelta(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}[3600s])\u0026start\u003d2019-11-21T16:00:00Z\u0026end\u003d2019-11-21T17:08:00Z``"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Note : the start \u0026 end arguments aren\u0027t necessary."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Another example :"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_b508b52c","line":109,"range":{"start_line":108,"start_character":0,"end_line":109,"end_character":50},"in_reply_to":"3fa7e38b_d5a691c0","updated":"2019-11-29 15:53:55.000000000","message":"You want me to delete my phrase or you want me to change my phrase to \"Not required\" ?","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. code-block:: yaml"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  #metrics.yml: |-"},{"line_number":116,"context_line":"    metrics:"},{"line_number":117,"context_line":"      gateway_functions_seconds_count:"},{"line_number":118,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_95949945","line":115,"range":{"start_line":115,"start_character":1,"end_line":115,"end_character":18},"updated":"2019-11-22 08:34:34.000000000","message":"delete this","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. code-block:: yaml"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  #metrics.yml: |-"},{"line_number":116,"context_line":"    metrics:"},{"line_number":117,"context_line":"      gateway_functions_seconds_count:"},{"line_number":118,"context_line":"        unit: seconds"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_75febd06","line":115,"range":{"start_line":115,"start_character":1,"end_line":115,"end_character":18},"in_reply_to":"3fa7e38b_95949945","updated":"2019-11-29 15:53:55.000000000","message":"ditto","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":123,"context_line":"          aggregation_method: max"},{"line_number":124,"context_line":"          query_function: abs"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The query url will look like :"},{"line_number":127,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003dabs(max(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}))``"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note : same as before."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_559aa16e","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":30},"updated":"2019-11-22 08:34:34.000000000","message":"The query will be","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":123,"context_line":"          aggregation_method: max"},{"line_number":124,"context_line":"          query_function: abs"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The query url will look like :"},{"line_number":127,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003dabs(max(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}))``"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note : same as before."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_78dd546b","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":30},"in_reply_to":"3fa7e38b_559aa16e","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"          query_function: abs"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The query url will look like :"},{"line_number":127,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003dabs(max(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}))``"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note : same as before."},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_b58f552c","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":124},"updated":"2019-11-22 08:34:34.000000000","message":"Only the query part, the rest is irrelevant.\n\nAgain, this query doesn\u0027t seem to be consistent with the config","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":126,"context_line":"The query url will look like :"},{"line_number":127,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003dabs(max(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}))``"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note : same as before."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_3592854c","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":22},"updated":"2019-11-22 08:34:34.000000000","message":"What ?","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":126,"context_line":"The query url will look like :"},{"line_number":127,"context_line":"``http://127.0.0.1:3000/api/v1/query?query\u003dabs(max(gateway_function_invocation_total{code\u003d\"200\", function_name\u003d\"figlet\"}))``"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note : same as before."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_38d59c43","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":22},"in_reply_to":"3fa7e38b_3592854c","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"},{"line_number":151,"context_line":"None"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Notifications Impact"},{"line_number":154,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_f5970d38","line":151,"range":{"start_line":151,"start_character":0,"end_line":151,"end_character":4},"updated":"2019-11-22 08:34:34.000000000","message":"Add an empty line before this","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"},{"line_number":151,"context_line":"None"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Notifications Impact"},{"line_number":154,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_d8c7a897","line":151,"range":{"start_line":151,"start_character":0,"end_line":151,"end_character":4},"in_reply_to":"3fa7e38b_f5970d38","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"215aba332a343d8c803d2983036d18446f866ce8","unresolved":false,"context_lines":[{"line_number":196,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"None"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Testing"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_b59d1558","line":199,"updated":"2019-11-22 08:34:34.000000000","message":"Too many blank lines","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"},{"author":{"_account_id":30844,"name":"Florian Davasse","email":"florian.davasse@objectif-libre.com","username":"aimbot31"},"change_message_id":"9767e57c019eb7a3b94dbd87c4ccef93295c5fe0","unresolved":false,"context_lines":[{"line_number":196,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"None"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Testing"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_98c5b090","line":199,"in_reply_to":"3fa7e38b_b59d1558","updated":"2019-11-29 15:53:55.000000000","message":"Done","commit_id":"481b320c1ce2da106cc0a8fc343f251860c2d895"}]}
