)]}'
{"specs/version1/stats_api.rst":[{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"35f5742c35982979754ecebcfe0fc159220b42b6","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"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":"Currently, there is no statistics gathering for loadbalancer in octavia, and"},{"line_number":16,"context_line":"that caused the broken between neutron-lbaas API and octavia."},{"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":1,"id":"9ad45d7e_927227e4","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":61},"updated":"2016-08-09 08:35:02.000000000","message":"Please fix the grammar here. It should be something more like:\n\nCurrently, Octavia does not support gathering loadbalancer statistics. This causes inconsistencies between the Octavia and Neutron-LBaaS APIs.","commit_id":"de9e7a5b4e7aabf4faa1c1c2288f3897b1fdbc1b"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"a81be8597c0449958906f96a880494fda0b87a6a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":48,"context_line":"    | Field              | Type        | Null | Key | Default | Extra |"},{"line_number":49,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":50,"context_line":"    | request_errors     | int(11)     | NO   |     | NULL    |       |"},{"line_number":51,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ad45d7e_778f412a","line":50,"range":{"start_line":50,"start_character":54,"end_line":50,"end_character":58},"updated":"2016-08-10 18:49:56.000000000","message":"If we don\u0027t allow null in this field, the default should probably be zero.","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"3b4cf0f8699723e0c250d9e0fb34a0ba07e6c5fa","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":48,"context_line":"    | Field              | Type        | Null | Key | Default | Extra |"},{"line_number":49,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":50,"context_line":"    | request_errors     | int(11)     | NO   |     | NULL    |       |"},{"line_number":51,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_c9bfcef9","line":50,"range":{"start_line":50,"start_character":54,"end_line":50,"end_character":58},"in_reply_to":"3ac371cc_a61c42c2","updated":"2016-08-16 04:56:03.000000000","message":"Sure, will update this part later.\nI actually using the bigint in code. :)","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"7069751da02815f21d78a12ba900e940b20cc7e5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":48,"context_line":"    | Field              | Type        | Null | Key | Default | Extra |"},{"line_number":49,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":50,"context_line":"    | request_errors     | int(11)     | NO   |     | NULL    |       |"},{"line_number":51,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ad45d7e_cbb75cd6","line":50,"range":{"start_line":50,"start_character":54,"end_line":50,"end_character":58},"in_reply_to":"9ad45d7e_778f412a","updated":"2016-08-11 01:09:23.000000000","message":"I think the NULL in default means we do not allow to use a default value. \nThe value should always be the stats we get from haproxy \u003d\u003e ereq.","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"7b89396393302a4b9997f011e006480b3f211668","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":48,"context_line":"    | Field              | Type        | Null | Key | Default | Extra |"},{"line_number":49,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":50,"context_line":"    | request_errors     | int(11)     | NO   |     | NULL    |       |"},{"line_number":51,"context_line":"    +--------------------+-------------+------+-----+---------+-------+"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_a61c42c2","line":50,"range":{"start_line":50,"start_character":54,"end_line":50,"end_character":58},"in_reply_to":"9ad45d7e_cbb75cd6","updated":"2016-08-16 02:21:43.000000000","message":"Eh... this is just going to be created using an alembic migration that looks like the other fields in the listener_statistics table anyway. So I guess my comment is splitting hairs as it is. :/\n\nThough this is not splitting hairs: The other numbered fields that are totals are bigint(20) and this should be as well. (While I would hope we wouldn\u0027t have that many errors, it\u0027s conceivable that under some circumstances, like a DDOS attack, we could have some listeners that see more errors than an int(11) can handle...) And database field storage is cheap.","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"a81be8597c0449958906f96a880494fda0b87a6a","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Add a new API to list loadbalancer statistics"},{"line_number":72,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Lists loadbalancer statistics."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    +----------------+------------------------------------------------+"},{"line_number":77,"context_line":"    | Request Type   | ``GET``                                        |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ad45d7e_d7e54ddc","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":30},"updated":"2016-08-10 18:49:56.000000000","message":"In addition to gathering loadbalancer statistics, we should also add API to get listener statistics. It will look a lot like the loadbalancer stats, but be under a path like:\nURL/v1/loadbalancers/{lb_id}/listeners/{listener_id}/stats","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"3b4cf0f8699723e0c250d9e0fb34a0ba07e6c5fa","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Add a new API to list loadbalancer statistics"},{"line_number":72,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Lists loadbalancer statistics."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    +----------------+------------------------------------------------+"},{"line_number":77,"context_line":"    | Request Type   | ``GET``                                        |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_894cb643","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":30},"in_reply_to":"3ac371cc_a6d722ec","updated":"2016-08-16 04:56:03.000000000","message":"That\u0027s actually the previous part. \n**Example List listener statistics: JSON response**\n\n:) \n\nCurrently, all responses from octavia do not have a key words inside the response body, that makes things a little hard to distinguish.","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"7b89396393302a4b9997f011e006480b3f211668","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Add a new API to list loadbalancer statistics"},{"line_number":72,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Lists loadbalancer statistics."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    +----------------+------------------------------------------------+"},{"line_number":77,"context_line":"    | Request Type   | ``GET``                                        |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_a6d722ec","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":30},"in_reply_to":"9ad45d7e_6bc3d057","updated":"2016-08-16 02:21:43.000000000","message":"Aah-- right. But the API for it doesn\u0027t contain request_errors. That should be added.","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"7069751da02815f21d78a12ba900e940b20cc7e5","unresolved":false,"context_lines":[{"line_number":71,"context_line":"Add a new API to list loadbalancer statistics"},{"line_number":72,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Lists loadbalancer statistics."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    +----------------+------------------------------------------------+"},{"line_number":77,"context_line":"    | Request Type   | ``GET``                                        |"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ad45d7e_6bc3d057","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":30},"in_reply_to":"9ad45d7e_d7e54ddc","updated":"2016-08-11 01:09:23.000000000","message":"I think the API for listener statistics is already there:\n\nhttp://docs.openstack.org/developer/octavia/api/octaviaapi.html#list-listener-statistics","commit_id":"68b2bd6134dde1842aa16c2a0fd3141fb3d16029"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"dcd0d8fa01fb4efb09fcad5fec89545e021c1591","unresolved":false,"context_lines":[{"line_number":35,"context_line":"for gathering statistics at the loadbalancer level."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Update the \u0027stats\u0027 method in neutron-lbaas for octavia driver to allow"},{"line_number":38,"context_line":"neutron-lbaas to send REST request to Octavia to get stats data, to keep"},{"line_number":39,"context_line":"consistent with neutron-lbaas API."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3ac371cc_c6597e5c","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":72},"updated":"2016-08-16 02:23:53.000000000","message":"Actually, it was decided in last week\u0027s meeting that this should be done using event streamer. (ie. stats should be pushed from Octavia to Neutron-LBaaS, not polled.)","commit_id":"ebbe4b08f7f22c443c44452d932e7a53251b6c54"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"e199966f9f8e18c84e416e00135dc92b81b6c846","unresolved":false,"context_lines":[{"line_number":35,"context_line":"for gathering statistics at the loadbalancer level."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Update the \u0027stats\u0027 method in neutron-lbaas for octavia driver to allow"},{"line_number":38,"context_line":"neutron-lbaas to send REST request to Octavia to get stats data, to keep"},{"line_number":39,"context_line":"consistent with neutron-lbaas API."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3ac371cc_09d1e657","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":72},"in_reply_to":"3ac371cc_c6597e5c","updated":"2016-08-16 04:56:17.000000000","message":"Sure, will update this part later.","commit_id":"ebbe4b08f7f22c443c44452d932e7a53251b6c54"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"e36434f94097a74563c6ecc892e9caac3fe655cc","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    {"},{"line_number":68,"context_line":"        \"listener\": {"},{"line_number":69,"context_line":"            \"listener_id\": \"uuid\""},{"line_number":70,"context_line":"            \"bytes_in\": 0,"},{"line_number":71,"context_line":"            \"bytes_out\": 0,"},{"line_number":72,"context_line":"            \"active_connections\": 0,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ac06dbe_de1d2074","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":33},"updated":"2016-08-24 04:59:23.000000000","message":"Wouldn\u0027t the listener_id in this section be implied by the URL to retrieve this information? In this output we should probably omit it. (It\u0027s useful / necessary in the loadbalancer stats output below, redundant here.)","commit_id":"16db27529a647564a52ad865a873f603ea99153a"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"ca1c1b0fd8a87b05805a9e18c28631ed2a85d780","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    {"},{"line_number":68,"context_line":"        \"listener\": {"},{"line_number":69,"context_line":"            \"listener_id\": \"uuid\""},{"line_number":70,"context_line":"            \"bytes_in\": 0,"},{"line_number":71,"context_line":"            \"bytes_out\": 0,"},{"line_number":72,"context_line":"            \"active_connections\": 0,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1ac06dbe_f73c7f94","line":69,"range":{"start_line":69,"start_character":0,"end_line":69,"end_character":33},"in_reply_to":"1ac06dbe_de1d2074","updated":"2016-08-24 06:20:26.000000000","message":"Done","commit_id":"16db27529a647564a52ad865a873f603ea99153a"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"a1ca61e2ca3a74aad337ddfcf3423fc764acfc5d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"a class LoadbalancerStatisticsController to provide a new REST API"},{"line_number":35,"context_line":"for gathering statistics at the loadbalancer level."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use evenstream to serialize the statistics messages from the octavia to"},{"line_number":38,"context_line":"neutron-lbaas via oslo_messaging, to keep consistent with neutron-lbaas API."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ac06dbe_251c0513","line":37,"range":{"start_line":37,"start_character":57,"end_line":37,"end_character":60},"updated":"2016-08-24 15:15:43.000000000","message":"\"the\" can be removed here","commit_id":"696bf71c01a78d93c1df38b51ed1e3f84f5b2221"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"a1ca61e2ca3a74aad337ddfcf3423fc764acfc5d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"for gathering statistics at the loadbalancer level."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use evenstream to serialize the statistics messages from the octavia to"},{"line_number":38,"context_line":"neutron-lbaas via oslo_messaging, to keep consistent with neutron-lbaas API."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ac06dbe_6516fdf2","line":38,"range":{"start_line":38,"start_character":53,"end_line":38,"end_character":75},"updated":"2016-08-24 15:15:43.000000000","message":"Should be \"with the neutron-lbaas API.\"","commit_id":"696bf71c01a78d93c1df38b51ed1e3f84f5b2221"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"9f2532f1e5eed13a00577d18be699a510409d967","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Testing"},{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":159,"context_line":"Function tests with tox."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Documentation Impact"},{"line_number":162,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1ac06dbe_58211fb4","line":159,"updated":"2016-08-24 15:45:04.000000000","message":"Nit: Functional","commit_id":"696bf71c01a78d93c1df38b51ed1e3f84f5b2221"}]}
