)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It should add following metrics"},{"line_number":10,"context_line":"vm.io.read_bytes, vm.io.write_bytes, vm.io.read_iops,"},{"line_number":11,"context_line":"vm.io.write_ops, vm.total.io.read_bytes, vm.total.io.write_bytes"},{"line_number":12,"context_line":"vm.total.read_requests, vm.total.write_requests,"},{"line_number":13,"context_line":"vm.disk_allocation, vm.disk_capacity, vm.disk_physical,"},{"line_number":14,"context_line":"vm.total.disk_allocation, vm.total.disk_capacity,"},{"line_number":15,"context_line":"vm.total.disk_physical"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bab6814e_79e3b4a4","line":12,"range":{"start_line":12,"start_character":33,"end_line":12,"end_character":47},"updated":"2016-05-20 16:23:38.000000000","message":"please add to monasca agent documentation if these are not there","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"84020e54ee1900b1b5f6d5e41579cbb7cf544659","unresolved":false,"context_lines":[{"line_number":10,"context_line":"vm.io.read_bytes, vm.io.write_bytes, vm.io.read_iops,"},{"line_number":11,"context_line":"vm.io.write_ops, vm.total.io.read_bytes, vm.total.io.write_bytes"},{"line_number":12,"context_line":"vm.total.read_requests, vm.total.write_requests,"},{"line_number":13,"context_line":"vm.disk_allocation, vm.disk_capacity, vm.disk_physical,"},{"line_number":14,"context_line":"vm.total.disk_allocation, vm.total.disk_capacity,"},{"line_number":15,"context_line":"vm.total.disk_physical"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bab6814e_15b5c07c","line":13,"range":{"start_line":13,"start_character":3,"end_line":13,"end_character":18},"updated":"2016-05-23 16:03:06.000000000","message":"make sure you add these metrics to the documentation as well","commit_id":"ddc10ab8998b66dba7f24f86110bceca8422a631"}],"docs/Libvirt.md":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"669db37b51c4511f482cff6bb76bfaebf03620f1","unresolved":false,"context_lines":[{"line_number":224,"context_line":"| total.io.write_bytes | Total Disk I/O write bytes across all devices |                 |"},{"line_number":225,"context_line":"| total.io.write_bytes_sec | Total Disk I/O Write bytes per second across devices |      |"},{"line_number":226,"context_line":"| total.io.write_requests | Total Disk I/O write operations across all devices |         |"},{"line_number":227,"context_line":"| total.io.write_requests_sec | Total Disk I/O write operations across all devices  per sec |  |"},{"line_number":228,"context_line":"| net.in_packets_sec   | Network received packets per second    | \u0027device\u0027 (ie, \u0027vnet0\u0027) |"},{"line_number":229,"context_line":"| net.out_packets_sec  | Network transmitted packets per second | \u0027device\u0027 (ie, \u0027vnet0\u0027) |"},{"line_number":230,"context_line":"| net.in_bytes_sec     | Network received bytes per second      | \u0027device\u0027 (ie, \u0027vnet0\u0027) |"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"bab6814e_23f61d8f","line":227,"range":{"start_line":227,"start_character":2,"end_line":227,"end_character":7},"updated":"2016-05-26 13:38:51.000000000","message":"Names should be changed with \"io\" as the prefix. \n\nFor example, \"io.write_requests_total_sec\".\n\nAlso, I\u0027m wondering if we should use \"agg\" short for aggregate, similar to what the transform engine is doing or \"combined\" to make this clear.\n\nAlso, with all these metrics that have a \"total\" on them, it sounds like what we are doing is just adding the total across all devices. Monasca can already merge metrics into a single list and apply all the statistics operations that are supported to a merged list. Therefore, do we really need to supply the aggregated metrics across all devices or just supply the current metrics, and use the API to do the aggregation or the Threshold Engine?","commit_id":"70d8fc504c8b852064420e1fcf800cecd96f5599"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"31a4004dfcebd564ccab01ad848dda839c4334f7","unresolved":false,"context_lines":[{"line_number":224,"context_line":"| total.io.write_bytes | Total Disk I/O write bytes across all devices |                 |"},{"line_number":225,"context_line":"| total.io.write_bytes_sec | Total Disk I/O Write bytes per second across devices |      |"},{"line_number":226,"context_line":"| total.io.write_requests | Total Disk I/O write operations across all devices |         |"},{"line_number":227,"context_line":"| total.io.write_requests_sec | Total Disk I/O write operations across all devices  per sec |  |"},{"line_number":228,"context_line":"| net.in_packets_sec   | Network received packets per second    | \u0027device\u0027 (ie, \u0027vnet0\u0027) |"},{"line_number":229,"context_line":"| net.out_packets_sec  | Network transmitted packets per second | \u0027device\u0027 (ie, \u0027vnet0\u0027) |"},{"line_number":230,"context_line":"| net.in_bytes_sec     | Network received bytes per second      | \u0027device\u0027 (ie, \u0027vnet0\u0027) |"}],"source_content_type":"text/x-markdown","patch_set":6,"id":"bab6814e_eb65fc44","line":227,"range":{"start_line":227,"start_character":2,"end_line":227,"end_character":7},"in_reply_to":"bab6814e_23f61d8f","updated":"2016-05-26 18:26:30.000000000","message":"Done for the name changes.\n\nFor the total metrics. I think initial intent was to allow to create alarms when the total IO on an instance grows by certain amount. Secondly, can we create rate metrics using statistics? I suppose it will be difficult to get prev value and subtract the current value in api?\n\nAlso, alarms can be created using statistics api of such kind where I can say do like get the ios for all instances, group by instance name if there is a value where it exceed certain threshold raise a alarm?","commit_id":"70d8fc504c8b852064420e1fcf800cecd96f5599"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"57c310be067734550832c3bc230a5e47b315f968","unresolved":false,"context_lines":[{"line_number":201,"context_line":"| Name                 | Description                            | Associated Dimensions  |"},{"line_number":202,"context_line":"| -------------------- | -------------------------------------- | ---------------------- |"},{"line_number":203,"context_line":"| cpu.utilization_perc | Overall CPU utilization (percentage)   |                        |"},{"line_number":204,"context_line":"| disk_allocation      | Total Disk allocation for a device     | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":205,"context_line":"| disk_capacity        | Total Disk capacity for a device       | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":206,"context_line":"| disk_physical        | Total Disk usage for a device          | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":207,"context_line":"| disk_allocation_total| Total Disk allocation across devices for instances |            |"},{"line_number":208,"context_line":"| disk_capacity_total  | Total Disk capacity across devices for instances |              |"},{"line_number":209,"context_line":"| disk_physical_total  | Total Disk usage across devices for instances |                 |"},{"line_number":210,"context_line":"| host_alive_status    | See [host_alive_status Codes](#host_alive_status-codes) below |  |"},{"line_number":211,"context_line":"| io.read_ops_sec      | Disk I/O read operations per second    | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":212,"context_line":"| io.read_ops          | Disk I/O read operations absolute val  | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"}],"source_content_type":"text/x-markdown","patch_set":7,"id":"7aa08908_b9fc1873","line":209,"range":{"start_line":204,"start_character":0,"end_line":209,"end_character":74},"updated":"2016-06-07 17:54:13.000000000","message":"These should be disk.* instead of disk_* to be consistent with other metrics","commit_id":"03edef666e89ec84fec765527f56d0ba923d14a8"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"23e4299592dac9be7b5cb4882033570803b092fc","unresolved":false,"context_lines":[{"line_number":201,"context_line":"| Name                 | Description                            | Associated Dimensions  |"},{"line_number":202,"context_line":"| -------------------- | -------------------------------------- | ---------------------- |"},{"line_number":203,"context_line":"| cpu.utilization_perc | Overall CPU utilization (percentage)   |                        |"},{"line_number":204,"context_line":"| disk_allocation      | Total Disk allocation for a device     | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":205,"context_line":"| disk_capacity        | Total Disk capacity for a device       | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":206,"context_line":"| disk_physical        | Total Disk usage for a device          | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":207,"context_line":"| disk_allocation_total| Total Disk allocation across devices for instances |            |"},{"line_number":208,"context_line":"| disk_capacity_total  | Total Disk capacity across devices for instances |              |"},{"line_number":209,"context_line":"| disk_physical_total  | Total Disk usage across devices for instances |                 |"},{"line_number":210,"context_line":"| host_alive_status    | See [host_alive_status Codes](#host_alive_status-codes) below |  |"},{"line_number":211,"context_line":"| io.read_ops_sec      | Disk I/O read operations per second    | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":212,"context_line":"| io.read_ops          | Disk I/O read operations absolute val  | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"}],"source_content_type":"text/x-markdown","patch_set":7,"id":"7aa08908_62b8252b","line":209,"range":{"start_line":204,"start_character":0,"end_line":209,"end_character":74},"in_reply_to":"7aa08908_b9fc1873","updated":"2016-06-08 00:05:27.000000000","message":"Done","commit_id":"03edef666e89ec84fec765527f56d0ba923d14a8"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"57c310be067734550832c3bc230a5e47b315f968","unresolved":false,"context_lines":[{"line_number":214,"context_line":"| io.read_bytes_sec    | Disk I/O read bytes per second         | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":215,"context_line":"| io.read_bytes_total  | Total Disk I/O read bytes across all devices |                  |"},{"line_number":216,"context_line":"| io.read_bytes_total_sec | Total Disk I/O read bytes per second across devices |        |"},{"line_number":217,"context_line":"| io.read_requests_total | Total Disk I/O read operations across all devices |           |"},{"line_number":218,"context_line":"| io.read_requests_total_sec | Total Disk I/O read operations across all devices  per sec |  |"},{"line_number":219,"context_line":"| io.write_ops_sec     | Disk I/O write operations per second   | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":220,"context_line":"| io.write_ops         | Disk I/O write operations absolute val | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"}],"source_content_type":"text/x-markdown","patch_set":7,"id":"7aa08908_d4dc4975","line":217,"range":{"start_line":217,"start_character":2,"end_line":217,"end_character":24},"updated":"2016-06-07 17:54:13.000000000","message":"This should be read_ops_total to be consistent io.read_ops. Same with all other uses of _requests","commit_id":"03edef666e89ec84fec765527f56d0ba923d14a8"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"23e4299592dac9be7b5cb4882033570803b092fc","unresolved":false,"context_lines":[{"line_number":214,"context_line":"| io.read_bytes_sec    | Disk I/O read bytes per second         | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":215,"context_line":"| io.read_bytes_total  | Total Disk I/O read bytes across all devices |                  |"},{"line_number":216,"context_line":"| io.read_bytes_total_sec | Total Disk I/O read bytes per second across devices |        |"},{"line_number":217,"context_line":"| io.read_requests_total | Total Disk I/O read operations across all devices |           |"},{"line_number":218,"context_line":"| io.read_requests_total_sec | Total Disk I/O read operations across all devices  per sec |  |"},{"line_number":219,"context_line":"| io.write_ops_sec     | Disk I/O write operations per second   | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":220,"context_line":"| io.write_ops         | Disk I/O write operations absolute val | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"}],"source_content_type":"text/x-markdown","patch_set":7,"id":"7aa08908_42b5292f","line":217,"range":{"start_line":217,"start_character":2,"end_line":217,"end_character":24},"in_reply_to":"7aa08908_d4dc4975","updated":"2016-06-08 00:05:27.000000000","message":"Done","commit_id":"03edef666e89ec84fec765527f56d0ba923d14a8"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"1736e7e15e13881c6b72ff2a299d6d0eccfc5d33","unresolved":false,"context_lines":[{"line_number":210,"context_line":"| host_alive_status    | See [host_alive_status Codes](#host_alive_status-codes) below |  |"},{"line_number":211,"context_line":"| io.read_ops_sec      | Disk I/O read operations per second    | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":212,"context_line":"| io.read_ops          | Disk I/O read operations absolute val  | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":213,"context_line":"| io.read_bytes        | Disk I/O Read Operations absolute val  | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":214,"context_line":"| io.read_bytes_sec    | Disk I/O read bytes per second         | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":215,"context_line":"| io.read_bytes_total  | Total Disk I/O read bytes across all devices |                  |"},{"line_number":216,"context_line":"| io.read_bytes_total_sec | Total Disk I/O read bytes per second across devices |        |"}],"source_content_type":"text/x-markdown","patch_set":8,"id":"7aa08908_002c7697","line":213,"range":{"start_line":213,"start_character":31,"end_line":213,"end_character":32},"updated":"2016-06-08 19:24:30.000000000","message":"this is read bytes, and I don\u0027t think stating the the value is \"absolute\" is required as it can\u0027t be negative.","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"4b7ed2b9dffb86c22f6553579e33ebffd2cc3832","unresolved":false,"context_lines":[{"line_number":210,"context_line":"| host_alive_status    | See [host_alive_status Codes](#host_alive_status-codes) below |  |"},{"line_number":211,"context_line":"| io.read_ops_sec      | Disk I/O read operations per second    | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":212,"context_line":"| io.read_ops          | Disk I/O read operations absolute val  | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":213,"context_line":"| io.read_bytes        | Disk I/O Read Operations absolute val  | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":214,"context_line":"| io.read_bytes_sec    | Disk I/O read bytes per second         | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":215,"context_line":"| io.read_bytes_total  | Total Disk I/O read bytes across all devices |                  |"},{"line_number":216,"context_line":"| io.read_bytes_total_sec | Total Disk I/O read bytes per second across devices |        |"}],"source_content_type":"text/x-markdown","patch_set":8,"id":"7aa08908_7e464850","line":213,"range":{"start_line":213,"start_character":31,"end_line":213,"end_character":32},"in_reply_to":"7aa08908_002c7697","updated":"2016-06-10 16:28:00.000000000","message":"Done","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"1736e7e15e13881c6b72ff2a299d6d0eccfc5d33","unresolved":false,"context_lines":[{"line_number":221,"context_line":"| io.write_bytes       | Disk I/O Writes Operations absolute val| \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":222,"context_line":"| io.write_bytes_sec   | Disk I/O write bytes per second        | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":223,"context_line":"| io.errors_sec        | Disk I/O errors per second             | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":224,"context_line":"| io.write_bytes_total | Total Disk I/O write bytes across all devices |                 |"},{"line_number":225,"context_line":"| io.write_bytes_total_sec | Total Disk I/O Write bytes per second across devices |      |"},{"line_number":226,"context_line":"| io.write_ops_total | Total Disk I/O write operations across all devices |         |"},{"line_number":227,"context_line":"| io.write_ops_total_sec | Total Disk I/O write operations across all devices  per sec |  |"}],"source_content_type":"text/x-markdown","patch_set":8,"id":"7aa08908_bd294f9d","line":224,"range":{"start_line":224,"start_character":5,"end_line":224,"end_character":22},"updated":"2016-06-08 19:24:30.000000000","message":"My understanding of this metric is that it is calculating the number of total number of bytes written aggregated across all the devices on a single host. Similarly, for several of the other new metrics part of this review.\n\nIn Monasca, there are several functions available, such as avg, min, max, sum and count as well as the merge_metrics flag and group_by operation.\n\nIn this specific example, wouldn\u0027t io.write_bytes_total just be the sum of the metrics for a specific host, which can be done with the merge_metrics flag enabled?\n\nI\u0027m just wondering if we really need to calculate the aggregated metrics. This is a lot of extra data, and it looks like the metrics can be easily derived.\n\nAdditionally, in the Threshold Engine, there are similar functions that can be used.\n\nUsing the Monasca CLI, something like\n\nmonasca metric-statistics --dimensions hostname:foo --merge_metrics io.write_bytes\n\nwould be used in this case.","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"4b7ed2b9dffb86c22f6553579e33ebffd2cc3832","unresolved":false,"context_lines":[{"line_number":221,"context_line":"| io.write_bytes       | Disk I/O Writes Operations absolute val| \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":222,"context_line":"| io.write_bytes_sec   | Disk I/O write bytes per second        | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":223,"context_line":"| io.errors_sec        | Disk I/O errors per second             | \u0027device\u0027 (ie, \u0027hdd\u0027)   |"},{"line_number":224,"context_line":"| io.write_bytes_total | Total Disk I/O write bytes across all devices |                 |"},{"line_number":225,"context_line":"| io.write_bytes_total_sec | Total Disk I/O Write bytes per second across devices |      |"},{"line_number":226,"context_line":"| io.write_ops_total | Total Disk I/O write operations across all devices |         |"},{"line_number":227,"context_line":"| io.write_ops_total_sec | Total Disk I/O write operations across all devices  per sec |  |"}],"source_content_type":"text/x-markdown","patch_set":8,"id":"7aa08908_1e262468","line":224,"range":{"start_line":224,"start_character":5,"end_line":224,"end_character":22},"in_reply_to":"7aa08908_bd294f9d","updated":"2016-06-10 16:28:00.000000000","message":"the total number is used thereafter in calculating the corresponding rate metrics thereafter. I\u0027ve mentioned in my previous comments as well that I don\u0027t think there is API call to do the rate metric? Furthermore these rate metrics are being calculated and pushed at the same intervals the totals are being calculated.\nSecondly, a nit correction: these are not host metrics and are VM metrics.\n\nThanks \u0026 Regards,\nAtul Aggarwal","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"}],"monasca_agent/collector/checks_d/libvirt.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        for disk in insp.inspect_disks(inst):"},{"line_number":345,"context_line":"            sample_time \u003d time.time()"},{"line_number":346,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":347,"context_line":"            total_of_metric \u003d {}"},{"line_number":348,"context_line":"            for metric in disk[1]._fields:"},{"line_number":349,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":350,"context_line":"                if metric_name not in metric_cache[inst_name]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_f9a204fb","line":347,"range":{"start_line":347,"start_character":12,"end_line":347,"end_character":27},"updated":"2016-05-20 16:23:38.000000000","message":"I think this would be better names metric_aggregates or metrics_totals","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"6f8103c620b49c26cdcf4f0df75678e4ab4c9d84","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        for disk in insp.inspect_disks(inst):"},{"line_number":345,"context_line":"            sample_time \u003d time.time()"},{"line_number":346,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":347,"context_line":"            total_of_metric \u003d {}"},{"line_number":348,"context_line":"            for metric in disk[1]._fields:"},{"line_number":349,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":350,"context_line":"                if metric_name not in metric_cache[inst_name]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_7c1e02bc","line":347,"range":{"start_line":347,"start_character":12,"end_line":347,"end_character":27},"in_reply_to":"bab6814e_f9a204fb","updated":"2016-05-20 16:51:24.000000000","message":"thanks for the feedback. metric_aggregates sounds good. will do that.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            sample_time \u003d time.time()"},{"line_number":346,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":347,"context_line":"            total_of_metric \u003d {}"},{"line_number":348,"context_line":"            for metric in disk[1]._fields:"},{"line_number":349,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":350,"context_line":"                if metric_name not in metric_cache[inst_name]:"},{"line_number":351,"context_line":"                    metric_cache[inst_name][metric_name] \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_79d9f421","line":348,"range":{"start_line":348,"start_character":34,"end_line":348,"end_character":41},"updated":"2016-05-20 16:23:38.000000000","message":"is there going to be multiple metrics with the same name that would make your total of metric worthwhile.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"6f8103c620b49c26cdcf4f0df75678e4ab4c9d84","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            sample_time \u003d time.time()"},{"line_number":346,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":347,"context_line":"            total_of_metric \u003d {}"},{"line_number":348,"context_line":"            for metric in disk[1]._fields:"},{"line_number":349,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":350,"context_line":"                if metric_name not in metric_cache[inst_name]:"},{"line_number":351,"context_line":"                    metric_cache[inst_name][metric_name] \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_5c533e39","line":348,"range":{"start_line":348,"start_character":34,"end_line":348,"end_character":41},"in_reply_to":"bab6814e_79d9f421","updated":"2016-05-20 16:51:24.000000000","message":"No, I think what happen here is (as far as I understand it) this loop through all the devices attached to the instances. and I wanted to aggregate the metric value across the devices for a given instances. So for aggregated metric device id is not needed. Hence don\u0027t need device id in dimensions for these aggregated metrics. I think this total_of_metric should be before the disk loop and not \"in\" the disk loop. I will put that before \"for disk in insp.inspect_disk(inst)\" I didn\u0027t tested it that is why i missed it I guess.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"56b4f2e97eaf76df166d20af4b7e7b4fc2b1ce9f","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            sample_time \u003d time.time()"},{"line_number":346,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":347,"context_line":"            total_of_metric \u003d {}"},{"line_number":348,"context_line":"            for metric in disk[1]._fields:"},{"line_number":349,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":350,"context_line":"                if metric_name not in metric_cache[inst_name]:"},{"line_number":351,"context_line":"                    metric_cache[inst_name][metric_name] \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_9c1806d5","line":348,"range":{"start_line":348,"start_character":34,"end_line":348,"end_character":41},"in_reply_to":"bab6814e_79d9f421","updated":"2016-05-20 16:40:00.000000000","message":"There will be multiple metrics of the same name for each disk on the VM.  Those metrics will differ by dimensions.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"d0f7262a231cdd21c299ea7185dd743756badc71","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            sample_time \u003d time.time()"},{"line_number":346,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":347,"context_line":"            total_of_metric \u003d {}"},{"line_number":348,"context_line":"            for metric in disk[1]._fields:"},{"line_number":349,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":350,"context_line":"                if metric_name not in metric_cache[inst_name]:"},{"line_number":351,"context_line":"                    metric_cache[inst_name][metric_name] \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_376773ea","line":348,"range":{"start_line":348,"start_character":34,"end_line":348,"end_character":41},"in_reply_to":"bab6814e_9c1806d5","updated":"2016-05-20 16:50:52.000000000","message":"agreed but the total_of_metric is local to the each disk loop just wondering what disk[1].fields looks like","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                    \u0027value\u0027: value}"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"            for metric in total_of_metric:"},{"line_number":392,"context_line":"                this_dimensions.clear()"},{"line_number":393,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":394,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":395,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_799d7465","line":392,"range":{"start_line":392,"start_character":32,"end_line":392,"end_character":37},"updated":"2016-05-20 16:23:38.000000000","message":"do you need to do a disk_dimensions.copy here or no?","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"6f8103c620b49c26cdcf4f0df75678e4ab4c9d84","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                    \u0027value\u0027: value}"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"            for metric in total_of_metric:"},{"line_number":392,"context_line":"                this_dimensions.clear()"},{"line_number":393,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":394,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":395,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_9749ff62","line":392,"range":{"start_line":392,"start_character":32,"end_line":392,"end_character":37},"in_reply_to":"bab6814e_799d7465","updated":"2016-05-20 16:51:24.000000000","message":"Nope I don\u0027t need disk dimension. My intent was to have the aggregated metric across different disks attached to the instance.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":390,"context_line":""},{"line_number":391,"context_line":"            for metric in total_of_metric:"},{"line_number":392,"context_line":"                this_dimensions.clear()"},{"line_number":393,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":394,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":395,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["},{"line_number":396,"context_line":"                    metric], dimensions\u003dthis_dimensions)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_595070d4","line":393,"range":{"start_line":393,"start_character":39,"end_line":393,"end_character":52},"updated":"2016-05-20 16:23:38.000000000","message":"do you need to do this dimension setting every loop i don think you need to.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"6f8103c620b49c26cdcf4f0df75678e4ab4c9d84","unresolved":false,"context_lines":[{"line_number":390,"context_line":""},{"line_number":391,"context_line":"            for metric in total_of_metric:"},{"line_number":392,"context_line":"                this_dimensions.clear()"},{"line_number":393,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":394,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":395,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["},{"line_number":396,"context_line":"                    metric], dimensions\u003dthis_dimensions)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_176cefce","line":393,"range":{"start_line":393,"start_character":39,"end_line":393,"end_character":52},"in_reply_to":"bab6814e_595070d4","updated":"2016-05-20 16:51:24.000000000","message":"Nope. thanks for the catching this. Will fix it.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        inst_name \u003d inst.name()"},{"line_number":403,"context_line":"        for disk in insp.inspect_disk_info(inst):"},{"line_number":404,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":405,"context_line":"            total_of_metric \u003d {}"},{"line_number":406,"context_line":"            for metric in disk[1]._fields:"},{"line_number":407,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":408,"context_line":"                value \u003d int(disk[1].__getattribute__(metric))"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_79f0d491","line":405,"range":{"start_line":405,"start_character":12,"end_line":405,"end_character":27},"updated":"2016-05-20 16:23:38.000000000","message":"same name change here","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"6f8103c620b49c26cdcf4f0df75678e4ab4c9d84","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        inst_name \u003d inst.name()"},{"line_number":403,"context_line":"        for disk in insp.inspect_disk_info(inst):"},{"line_number":404,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":405,"context_line":"            total_of_metric \u003d {}"},{"line_number":406,"context_line":"            for metric in disk[1]._fields:"},{"line_number":407,"context_line":"                metric_name \u003d \"io.{0}\".format(metric)"},{"line_number":408,"context_line":"                value \u003d int(disk[1].__getattribute__(metric))"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_d79c27c2","line":405,"range":{"start_line":405,"start_character":12,"end_line":405,"end_character":27},"in_reply_to":"bab6814e_79f0d491","updated":"2016-05-20 16:51:24.000000000","message":"Done","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                           dimensions\u003dthis_dimensions)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"            for metric in total_of_metric:"},{"line_number":426,"context_line":"                this_dimensions.clear()"},{"line_number":427,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":428,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":429,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_39280ce2","line":426,"range":{"start_line":426,"start_character":32,"end_line":426,"end_character":37},"updated":"2016-05-20 16:23:38.000000000","message":"want a disk_dimensions copy here?","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"6f8103c620b49c26cdcf4f0df75678e4ab4c9d84","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                           dimensions\u003dthis_dimensions)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"            for metric in total_of_metric:"},{"line_number":426,"context_line":"                this_dimensions.clear()"},{"line_number":427,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":428,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":429,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_37ae53e6","line":426,"range":{"start_line":426,"start_character":32,"end_line":426,"end_character":37},"in_reply_to":"bab6814e_39280ce2","updated":"2016-05-20 16:51:24.000000000","message":"same as above.","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"35ed08ddbd03efbc95881b8e562398b9214909b6","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            for metric in total_of_metric:"},{"line_number":426,"context_line":"                this_dimensions.clear()"},{"line_number":427,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":428,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":429,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["},{"line_number":430,"context_line":"                    metric], dimensions\u003dthis_dimensions)"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_997f78df","line":428,"range":{"start_line":428,"start_character":32,"end_line":428,"end_character":38},"updated":"2016-05-20 16:23:38.000000000","message":"again dont need in the loop","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"6f8103c620b49c26cdcf4f0df75678e4ab4c9d84","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            for metric in total_of_metric:"},{"line_number":426,"context_line":"                this_dimensions.clear()"},{"line_number":427,"context_line":"                this_dimensions.update(dims_customer)"},{"line_number":428,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":429,"context_line":"                self.guage(\"vm.total.{0}\".format(metric), total_of_metric["},{"line_number":430,"context_line":"                    metric], dimensions\u003dthis_dimensions)"},{"line_number":431,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_b7888372","line":428,"range":{"start_line":428,"start_character":32,"end_line":428,"end_character":38},"in_reply_to":"bab6814e_997f78df","updated":"2016-05-20 16:51:24.000000000","message":"Done","commit_id":"8cb7b572a3bd3883b21629851acb216abd0d418f"},{"author":{"_account_id":10781,"name":"selvakumar","email":"selvakumar.s2@hpe.com","username":"selvakumar"},"change_message_id":"ad3b5108d9e59e4c413ede877ab73e970888fbaf","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                    this_dimensions.update(dims_operations)"},{"line_number":382,"context_line":"                    self.gauge(\"vm.{0}\".format(rate_name), val_diff,"},{"line_number":383,"context_line":"                               dimensions\u003dthis_dimensions)"},{"line_number":384,"context_line":"                    self.guage(\"vm.{0}\".format(metric_name), value,"},{"line_number":385,"context_line":"                               dimensions\u003dthis_dimensions)"},{"line_number":386,"context_line":"                # Save this metric to the cache"},{"line_number":387,"context_line":"                metric_cache[inst_name][metric_name][disk[0].device] \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_5984c509","line":384,"range":{"start_line":384,"start_character":25,"end_line":384,"end_character":30},"updated":"2016-05-23 10:03:00.000000000","message":"guage-? gauge . typo error","commit_id":"ddc10ab8998b66dba7f24f86110bceca8422a631"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"9eb6cdfd0ee2781a8a38dc567f4f455c43866b6b","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                    this_dimensions.update(dims_operations)"},{"line_number":382,"context_line":"                    self.gauge(\"vm.{0}\".format(rate_name), val_diff,"},{"line_number":383,"context_line":"                               dimensions\u003dthis_dimensions)"},{"line_number":384,"context_line":"                    self.guage(\"vm.{0}\".format(metric_name), value,"},{"line_number":385,"context_line":"                               dimensions\u003dthis_dimensions)"},{"line_number":386,"context_line":"                # Save this metric to the cache"},{"line_number":387,"context_line":"                metric_cache[inst_name][metric_name][disk[0].device] \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_d57b38f3","line":384,"range":{"start_line":384,"start_character":25,"end_line":384,"end_character":30},"in_reply_to":"bab6814e_5984c509","updated":"2016-05-23 16:00:18.000000000","message":"Done","commit_id":"ddc10ab8998b66dba7f24f86110bceca8422a631"},{"author":{"_account_id":10781,"name":"selvakumar","email":"selvakumar.s2@hpe.com","username":"selvakumar"},"change_message_id":"ad3b5108d9e59e4c413ede877ab73e970888fbaf","unresolved":false,"context_lines":[{"line_number":392,"context_line":"        this_dimensions.update(dims_customer)"},{"line_number":393,"context_line":"        this_dimensions.update(dims_operations)"},{"line_number":394,"context_line":"        for metric in metric_aggregate:"},{"line_number":395,"context_line":"            self.guage(\"vm.total.{0}\".format(metric), metric_aggregate["},{"line_number":396,"context_line":"                metric], dimensions\u003dthis_dimensions)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    def _inspect_disk_info(self, insp, inst, instance_cache, metric_cache,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_997aad22","line":395,"range":{"start_line":395,"start_character":17,"end_line":395,"end_character":22},"updated":"2016-05-23 10:03:00.000000000","message":"same as 384","commit_id":"ddc10ab8998b66dba7f24f86110bceca8422a631"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"9eb6cdfd0ee2781a8a38dc567f4f455c43866b6b","unresolved":false,"context_lines":[{"line_number":392,"context_line":"        this_dimensions.update(dims_customer)"},{"line_number":393,"context_line":"        this_dimensions.update(dims_operations)"},{"line_number":394,"context_line":"        for metric in metric_aggregate:"},{"line_number":395,"context_line":"            self.guage(\"vm.total.{0}\".format(metric), metric_aggregate["},{"line_number":396,"context_line":"                metric], dimensions\u003dthis_dimensions)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    def _inspect_disk_info(self, insp, inst, instance_cache, metric_cache,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_1582e0c7","line":395,"range":{"start_line":395,"start_character":17,"end_line":395,"end_character":22},"in_reply_to":"bab6814e_997aad22","updated":"2016-05-23 16:00:18.000000000","message":"Done","commit_id":"ddc10ab8998b66dba7f24f86110bceca8422a631"},{"author":{"_account_id":10781,"name":"selvakumar","email":"selvakumar.s2@hpe.com","username":"selvakumar"},"change_message_id":"ad3b5108d9e59e4c413ede877ab73e970888fbaf","unresolved":false,"context_lines":[{"line_number":419,"context_line":"                # Operations (metric name prefixed with \"vm.\""},{"line_number":420,"context_line":"                this_dimensions \u003d disk_dimensions.copy()"},{"line_number":421,"context_line":"                this_dimensions.update(dims_operations)"},{"line_number":422,"context_line":"                self.guage(\"vm.{0}\".format(metric_name), value,"},{"line_number":423,"context_line":"                           dimensions\u003dthis_dimensions)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        this_dimensions.clear()"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_99a10d97","line":422,"range":{"start_line":422,"start_character":21,"end_line":422,"end_character":26},"updated":"2016-05-23 10:03:00.000000000","message":"same as 384","commit_id":"ddc10ab8998b66dba7f24f86110bceca8422a631"},{"author":{"_account_id":10781,"name":"selvakumar","email":"selvakumar.s2@hpe.com","username":"selvakumar"},"change_message_id":"ad3b5108d9e59e4c413ede877ab73e970888fbaf","unresolved":false,"context_lines":[{"line_number":426,"context_line":"        this_dimensions.update(dims_customer)"},{"line_number":427,"context_line":"        this_dimensions.update(dims_operations)"},{"line_number":428,"context_line":"        for metric in metric_aggregate:"},{"line_number":429,"context_line":"            self.guage(\"vm.total.{0}\".format(metric), metric_aggregate["},{"line_number":430,"context_line":"                metric], dimensions\u003dthis_dimensions)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"    def _inspect_state(self, insp, inst, instance_cache, dims_customer, dims_operations):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_d9a715a5","line":429,"range":{"start_line":429,"start_character":17,"end_line":429,"end_character":22},"updated":"2016-05-23 10:03:00.000000000","message":"same as 384","commit_id":"ddc10ab8998b66dba7f24f86110bceca8422a631"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"57c310be067734550832c3bc230a5e47b315f968","unresolved":false,"context_lines":[{"line_number":427,"context_line":"        for disk in insp.inspect_disk_info(inst):"},{"line_number":428,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":429,"context_line":"            for metric in disk[1]._fields:"},{"line_number":430,"context_line":"                metric_name \u003d \"{0}\".format(metric)"},{"line_number":431,"context_line":"                value \u003d int(disk[1].__getattribute__(metric))"},{"line_number":432,"context_line":"                if metric_name in metric_aggregate:"},{"line_number":433,"context_line":"                    metric_aggregate[metric_name] +\u003d value"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_f92860e4","line":430,"range":{"start_line":430,"start_character":30,"end_line":430,"end_character":35},"updated":"2016-06-07 17:54:13.000000000","message":"This should be \"disk.{0}\"","commit_id":"03edef666e89ec84fec765527f56d0ba923d14a8"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"23e4299592dac9be7b5cb4882033570803b092fc","unresolved":false,"context_lines":[{"line_number":427,"context_line":"        for disk in insp.inspect_disk_info(inst):"},{"line_number":428,"context_line":"            disk_dimensions \u003d {\u0027device\u0027: disk[0].device}"},{"line_number":429,"context_line":"            for metric in disk[1]._fields:"},{"line_number":430,"context_line":"                metric_name \u003d \"{0}\".format(metric)"},{"line_number":431,"context_line":"                value \u003d int(disk[1].__getattribute__(metric))"},{"line_number":432,"context_line":"                if metric_name in metric_aggregate:"},{"line_number":433,"context_line":"                    metric_aggregate[metric_name] +\u003d value"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_8289d177","line":430,"range":{"start_line":430,"start_character":30,"end_line":430,"end_character":35},"in_reply_to":"7aa08908_f92860e4","updated":"2016-06-08 00:05:27.000000000","message":"Done","commit_id":"03edef666e89ec84fec765527f56d0ba923d14a8"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"4923770dc478de0c0c74a2a773788126821bc3ae","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                if metric_name in metric_aggregate:"},{"line_number":355,"context_line":"                    metric_aggregate[metric_name] +\u003d value"},{"line_number":356,"context_line":"                else:"},{"line_number":357,"context_line":"                    metric_aggregate[metric_name] \u003d value"},{"line_number":358,"context_line":"                if disk[0].device in metric_cache[inst_name][metric_name]:"},{"line_number":359,"context_line":"                    val_diff \u003d value - metric_cache[inst_name][metric_name][disk[0].device][\u0027value\u0027]"},{"line_number":360,"context_line":"                    if val_diff \u003c 0:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_394a0fad","line":357,"range":{"start_line":357,"start_character":20,"end_line":357,"end_character":36},"updated":"2016-06-10 20:56:43.000000000","message":"Nit, I was just wondering if you wanted to code as:\n\nmetric_aggregate[metric_name] \u003d metric_aggregate.get(metric_name, 0) + value\n\nIs that the Pythonic way?","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"987566e78ccc78e29cebbae36de12cb379c1309c","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                if metric_name in metric_aggregate:"},{"line_number":355,"context_line":"                    metric_aggregate[metric_name] +\u003d value"},{"line_number":356,"context_line":"                else:"},{"line_number":357,"context_line":"                    metric_aggregate[metric_name] \u003d value"},{"line_number":358,"context_line":"                if disk[0].device in metric_cache[inst_name][metric_name]:"},{"line_number":359,"context_line":"                    val_diff \u003d value - metric_cache[inst_name][metric_name][disk[0].device][\u0027value\u0027]"},{"line_number":360,"context_line":"                    if val_diff \u003c 0:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_dde9f01b","line":357,"range":{"start_line":357,"start_character":20,"end_line":357,"end_character":36},"in_reply_to":"7aa08908_394a0fad","updated":"2016-06-13 19:05:17.000000000","message":"Done","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"4923770dc478de0c0c74a2a773788126821bc3ae","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                        self.log.warn(\"Ignoring negative disk sample for: \""},{"line_number":363,"context_line":"                                      \"{0} new value: {1} old value: {2}\""},{"line_number":364,"context_line":"                                      .format(inst_name, value,"},{"line_number":365,"context_line":"                                              metric_cache[inst_name][metric_name][disk[0].device][\u0027value\u0027]))"},{"line_number":366,"context_line":"                        metric_cache[inst_name][metric_name][disk[0].device] \u003d {"},{"line_number":367,"context_line":"                            \u0027timestamp\u0027: sample_time,"},{"line_number":368,"context_line":"                            \u0027value\u0027: value}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_c4e03efd","line":365,"range":{"start_line":365,"start_character":46,"end_line":365,"end_character":98},"updated":"2016-06-10 20:56:43.000000000","message":"It might be good to create a variable for \"metric_cache[inst_name][metric_name]\" or  metric_cache[inst_name][metric_name][disk[0].device as they are used in a few locations and it is a long dereference.","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"987566e78ccc78e29cebbae36de12cb379c1309c","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                        self.log.warn(\"Ignoring negative disk sample for: \""},{"line_number":363,"context_line":"                                      \"{0} new value: {1} old value: {2}\""},{"line_number":364,"context_line":"                                      .format(inst_name, value,"},{"line_number":365,"context_line":"                                              metric_cache[inst_name][metric_name][disk[0].device][\u0027value\u0027]))"},{"line_number":366,"context_line":"                        metric_cache[inst_name][metric_name][disk[0].device] \u003d {"},{"line_number":367,"context_line":"                            \u0027timestamp\u0027: sample_time,"},{"line_number":368,"context_line":"                            \u0027value\u0027: value}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_1df098fc","line":365,"range":{"start_line":365,"start_character":46,"end_line":365,"end_character":98},"in_reply_to":"7aa08908_c4e03efd","updated":"2016-06-13 19:05:17.000000000","message":"Done","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":22209,"name":"Ravikumar","email":"ravikumar.vallabhu@hpe.com","username":"ravivallabhu"},"change_message_id":"9281343eef61fda152e279d65645701598587c64","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                    \u0027timestamp\u0027: sample_time,"},{"line_number":389,"context_line":"                    \u0027value\u0027: value}"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        this_dimensions.clear()"},{"line_number":392,"context_line":"        this_dimensions.update(dims_customer)"},{"line_number":393,"context_line":"        this_dimensions.update(dims_operations)"},{"line_number":394,"context_line":"        for metric in metric_aggregate:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_3fdbb31c","line":391,"range":{"start_line":391,"start_character":8,"end_line":391,"end_character":23},"updated":"2016-06-08 12:31:43.000000000","message":"this_dimensions should initialized and validated before referring it. Currently i\u0027m seeing below error at line 391\n\n\"UnboundLocalError: local variable \u0027this_dimensions\u0027 referenced before assignment\"","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"550fe3fee36aae475959b966757e59bad826af9b","unresolved":false,"context_lines":[{"line_number":388,"context_line":"                    \u0027timestamp\u0027: sample_time,"},{"line_number":389,"context_line":"                    \u0027value\u0027: value}"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        this_dimensions.clear()"},{"line_number":392,"context_line":"        this_dimensions.update(dims_customer)"},{"line_number":393,"context_line":"        this_dimensions.update(dims_operations)"},{"line_number":394,"context_line":"        for metric in metric_aggregate:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_c1755bcb","line":391,"range":{"start_line":391,"start_character":8,"end_line":391,"end_character":23},"in_reply_to":"7aa08908_3fdbb31c","updated":"2016-06-08 17:08:49.000000000","message":"Done","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":22209,"name":"Ravikumar","email":"ravikumar.vallabhu@hpe.com","username":"ravivallabhu"},"change_message_id":"efd84ea57eb3217e6150c397356a39a9b6cfa800","unresolved":false,"context_lines":[{"line_number":445,"context_line":"                self.gauge(\"vm.{0}\".format(metric_name), value,"},{"line_number":446,"context_line":"                           dimensions\u003dthis_dimensions)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        this_dimensions.clear()"},{"line_number":449,"context_line":"        this_dimensions.update(dims_customer)"},{"line_number":450,"context_line":"        this_dimensions.update(dims_operations)"},{"line_number":451,"context_line":"        for metric in metric_aggregate:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_4a035bb8","line":448,"range":{"start_line":448,"start_character":8,"end_line":448,"end_character":22},"updated":"2016-06-08 12:38:17.000000000","message":"Same as line no. 391","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"550fe3fee36aae475959b966757e59bad826af9b","unresolved":false,"context_lines":[{"line_number":445,"context_line":"                self.gauge(\"vm.{0}\".format(metric_name), value,"},{"line_number":446,"context_line":"                           dimensions\u003dthis_dimensions)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"        this_dimensions.clear()"},{"line_number":449,"context_line":"        this_dimensions.update(dims_customer)"},{"line_number":450,"context_line":"        this_dimensions.update(dims_operations)"},{"line_number":451,"context_line":"        for metric in metric_aggregate:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_41504b32","line":448,"range":{"start_line":448,"start_character":8,"end_line":448,"end_character":22},"in_reply_to":"7aa08908_4a035bb8","updated":"2016-06-08 17:08:49.000000000","message":"Done","commit_id":"d5e11296fe213f65008a68816748dabef15a249c"}]}
