)]}'
{"docs/Plugins.md":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":566,"context_line":"| cpu.user_time_sec | hostname, unit | Rate of user CPU time consumed in core seconds per second"},{"line_number":567,"context_line":"| fs.total_bytes | hostname, device, unit | Number of bytes available"},{"line_number":568,"context_line":"| fs.usage_bytes | hostname, device, unit | Number of bytes consumed"},{"line_number":569,"context_line":"| io.read_bytes | hostname, unit | Total number of bytes read by all devices"},{"line_number":570,"context_line":"| io.read_bytes_sec | hostname, unit | Total number of bytes read by all devices per second"},{"line_number":571,"context_line":"| io.write_bytes | hostname, unit | Total number of bytes written by all devices"},{"line_number":572,"context_line":"| io.write_bytes_sec | hostname, unit | Total number of bytes written by all devices per second"},{"line_number":573,"context_line":"| mem.cache_bytes | hostname, unit | Number of bytes of page cache memory"},{"line_number":574,"context_line":"| mem.swap_bytes | hostname, unit | Swap usage in memory in bytes"},{"line_number":575,"context_line":"| mem.used_bytes | hostname, unit | Current memory in use in bytes"},{"line_number":576,"context_line":"| net.in_bytes | hostname, interface, unit | Total network bytes received by all interfaces"},{"line_number":577,"context_line":"| net.in_bytes_sec | hostname, interface, unit | Total number of network bytes received by all interfaces per second"},{"line_number":578,"context_line":"| net.in_dropped_packets | hostname, interface, unit | Total inbound network packets dropped by all interfaces"},{"line_number":579,"context_line":"| net.in_dropped_packets_sec | hostname, interface, unit | Total number of inbound network packets dropped by all interfaces per second"},{"line_number":580,"context_line":"| net.in_errors | hostname, interface, unit  | Total network errors on incoming network traffic by all interfaces"},{"line_number":581,"context_line":"| net.in_errors_sec | hostname, interface, unit | Total number of network errors on incoming network traffic by all interfaces per second"},{"line_number":582,"context_line":"| net.in_packets | hostname, interface, unit | Total network packets received by all interfaces"},{"line_number":583,"context_line":"| net.in_packets_sec | hostname, interface, unit | Total number of network packets received by all interfaces per second"},{"line_number":584,"context_line":"| net.out_bytes | hostname, interface, unit | Total network bytes sent by all interfaces"},{"line_number":585,"context_line":"| net.out_bytes_sec | hostname, interface, unit | Total number of network bytes sent by all interfaces per second"},{"line_number":586,"context_line":"| net.out_dropped_packets | hostname, interface, unit | Total outbound network packets dropped by all interfaces"},{"line_number":587,"context_line":"| net.out_dropped_packets_sec | hostname, interface, unit | Total number of outbound network packets dropped by all interfaces per second"},{"line_number":588,"context_line":"| net.out_errors | hostname, interface, unit | Total network errors on outgoing network traffic by all interfaces"},{"line_number":589,"context_line":"| net.out_errors_sec | hostname, interface, unit | Total number of network errors on outgoing network traffic by all interfaces per second"},{"line_number":590,"context_line":"| net.out_packets | hostname, interface, unit | Total network packets sent by all interfaces"},{"line_number":591,"context_line":"| net.out_packets_sec | hostname, interface, unit | Total number of network packets sent by all interfaces per second"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"## Check_MK_Local"},{"line_number":594,"context_line":"The [Check_MK](http://mathias-kettner.com/check_mk.html) [Agent](http://mathias-kettner.com/checkmk_linuxagent.html) can be extended through a series of [local checks](http://mathias-kettner.com/checkmk_localchecks.html).  This plugin parses the `\u003c\u003c\u003clocal\u003e\u003e\u003e` output of `check_mk_agent` and converts them into Monasca metrics.  It is installed by `monasca-setup` automatically when the `check_mk_agent` script is found to be installed on the system."}],"source_content_type":"text/x-markdown","patch_set":4,"id":"9ff52f3f_d03533f9","line":591,"range":{"start_line":569,"start_character":0,"end_line":591,"end_character":117},"updated":"2017-04-13 15:16:32.000000000","message":"do we want the ability to toggle between sum of all interfaces and not? I am fine with leaving it as all interfaces in one metric until we see a situation where we need the opposite, what do you think?","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":566,"context_line":"| cpu.user_time_sec | hostname, unit | Rate of user CPU time consumed in core seconds per second"},{"line_number":567,"context_line":"| fs.total_bytes | hostname, device, unit | Number of bytes available"},{"line_number":568,"context_line":"| fs.usage_bytes | hostname, device, unit | Number of bytes consumed"},{"line_number":569,"context_line":"| io.read_bytes | hostname, unit | Total number of bytes read by all devices"},{"line_number":570,"context_line":"| io.read_bytes_sec | hostname, unit | Total number of bytes read by all devices per second"},{"line_number":571,"context_line":"| io.write_bytes | hostname, unit | Total number of bytes written by all devices"},{"line_number":572,"context_line":"| io.write_bytes_sec | hostname, unit | Total number of bytes written by all devices per second"},{"line_number":573,"context_line":"| mem.cache_bytes | hostname, unit | Number of bytes of page cache memory"},{"line_number":574,"context_line":"| mem.swap_bytes | hostname, unit | Swap usage in memory in bytes"},{"line_number":575,"context_line":"| mem.used_bytes | hostname, unit | Current memory in use in bytes"},{"line_number":576,"context_line":"| net.in_bytes | hostname, interface, unit | Total network bytes received by all interfaces"},{"line_number":577,"context_line":"| net.in_bytes_sec | hostname, interface, unit | Total number of network bytes received by all interfaces per second"},{"line_number":578,"context_line":"| net.in_dropped_packets | hostname, interface, unit | Total inbound network packets dropped by all interfaces"},{"line_number":579,"context_line":"| net.in_dropped_packets_sec | hostname, interface, unit | Total number of inbound network packets dropped by all interfaces per second"},{"line_number":580,"context_line":"| net.in_errors | hostname, interface, unit  | Total network errors on incoming network traffic by all interfaces"},{"line_number":581,"context_line":"| net.in_errors_sec | hostname, interface, unit | Total number of network errors on incoming network traffic by all interfaces per second"},{"line_number":582,"context_line":"| net.in_packets | hostname, interface, unit | Total network packets received by all interfaces"},{"line_number":583,"context_line":"| net.in_packets_sec | hostname, interface, unit | Total number of network packets received by all interfaces per second"},{"line_number":584,"context_line":"| net.out_bytes | hostname, interface, unit | Total network bytes sent by all interfaces"},{"line_number":585,"context_line":"| net.out_bytes_sec | hostname, interface, unit | Total number of network bytes sent by all interfaces per second"},{"line_number":586,"context_line":"| net.out_dropped_packets | hostname, interface, unit | Total outbound network packets dropped by all interfaces"},{"line_number":587,"context_line":"| net.out_dropped_packets_sec | hostname, interface, unit | Total number of outbound network packets dropped by all interfaces per second"},{"line_number":588,"context_line":"| net.out_errors | hostname, interface, unit | Total network errors on outgoing network traffic by all interfaces"},{"line_number":589,"context_line":"| net.out_errors_sec | hostname, interface, unit | Total number of network errors on outgoing network traffic by all interfaces per second"},{"line_number":590,"context_line":"| net.out_packets | hostname, interface, unit | Total network packets sent by all interfaces"},{"line_number":591,"context_line":"| net.out_packets_sec | hostname, interface, unit | Total number of network packets sent by all interfaces per second"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"## Check_MK_Local"},{"line_number":594,"context_line":"The [Check_MK](http://mathias-kettner.com/check_mk.html) [Agent](http://mathias-kettner.com/checkmk_linuxagent.html) can be extended through a series of [local checks](http://mathias-kettner.com/checkmk_localchecks.html).  This plugin parses the `\u003c\u003c\u003clocal\u003e\u003e\u003e` output of `check_mk_agent` and converts them into Monasca metrics.  It is installed by `monasca-setup` automatically when the `check_mk_agent` script is found to be installed on the system."}],"source_content_type":"text/x-markdown","patch_set":4,"id":"9ff52f3f_49705e73","line":591,"range":{"start_line":569,"start_character":0,"end_line":591,"end_character":117},"in_reply_to":"9ff52f3f_d03533f9","updated":"2017-04-13 18:06:53.000000000","message":"Yeah I think we can keep this for now.","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"}],"monasca_agent/collector/checks_d/cadvisor_host.py":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"b2c61ddfdfdd277f740b474bcd913016fced6f71","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        for cadvisor_key, (metric_name, metric_types, metric_units) in six.iteritems(network_metrics):"},{"line_number":134,"context_line":"            if cadvisor_key in interface_sum:"},{"line_number":135,"context_line":"                self._send_metrics(\"net_rollup.\" + metric_name,"},{"line_number":136,"context_line":"                                   interface_sum[cadvisor_key],"},{"line_number":137,"context_line":"                                   network_dimensions,"},{"line_number":138,"context_line":"                                   metric_types, metric_units)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a1ced50_703a3d38","line":135,"range":{"start_line":135,"start_character":36,"end_line":135,"end_character":46},"updated":"2017-03-17 15:03:55.000000000","message":"Should be net","commit_id":"2aa5fa719356d6260273b5284f822f84cf5b4038"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                                       metric_types, metric_units)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def _parse_network(self, network_data, dimensions):"},{"line_number":125,"context_line":"        # This function is to roll up network metrics for different interfaces"},{"line_number":126,"context_line":"        network_interfaces \u003d network_data[\u0027interfaces\u0027]"},{"line_number":127,"context_line":"        network_metrics \u003d METRICS[\u0027network_metrics\u0027]"},{"line_number":128,"context_line":"        interface_sum \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_9374559b","line":125,"range":{"start_line":125,"start_character":15,"end_line":125,"end_character":23},"updated":"2017-04-13 15:16:32.000000000","message":"might want to put that on top of the rollup dictionaries call","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                                       metric_types, metric_units)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def _parse_network(self, network_data, dimensions):"},{"line_number":125,"context_line":"        # This function is to roll up network metrics for different interfaces"},{"line_number":126,"context_line":"        network_interfaces \u003d network_data[\u0027interfaces\u0027]"},{"line_number":127,"context_line":"        network_metrics \u003d METRICS[\u0027network_metrics\u0027]"},{"line_number":128,"context_line":"        interface_sum \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_69f8c2c3","line":125,"range":{"start_line":125,"start_character":15,"end_line":125,"end_character":23},"in_reply_to":"9ff52f3f_9374559b","updated":"2017-04-13 18:06:53.000000000","message":"Done","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            interface_sum \u003d rollup_dictionaries(interface_sum, interface)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        network_dimensions \u003d dimensions.copy()"},{"line_number":133,"context_line":"        if \u0027interface\u0027 in network_dimensions:"},{"line_number":134,"context_line":"            del network_dimensions[\u0027interface\u0027]"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        for cadvisor_key, (metric_name, metric_types, metric_units) in network_metrics.items():"},{"line_number":137,"context_line":"            if cadvisor_key in interface_sum:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_3391099b","line":134,"range":{"start_line":133,"start_character":0,"end_line":134,"end_character":47},"updated":"2017-04-13 15:16:32.000000000","message":"is there a case where the interface would be in the dimension dictionary since you took out the setting of it?","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            interface_sum \u003d rollup_dictionaries(interface_sum, interface)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        network_dimensions \u003d dimensions.copy()"},{"line_number":133,"context_line":"        if \u0027interface\u0027 in network_dimensions:"},{"line_number":134,"context_line":"            del network_dimensions[\u0027interface\u0027]"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        for cadvisor_key, (metric_name, metric_types, metric_units) in network_metrics.items():"},{"line_number":137,"context_line":"            if cadvisor_key in interface_sum:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_8471ade3","line":134,"range":{"start_line":133,"start_character":0,"end_line":134,"end_character":47},"in_reply_to":"9ff52f3f_3391099b","updated":"2017-04-13 18:06:53.000000000","message":"I dont think so hmmm I should delete these two lines I think.","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"}],"monasca_agent/collector/checks_d/kubernetes.py":[{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    def _parse_network(self, network_data, container_dimensions, pod_key, pod_net_metrics):"},{"line_number":350,"context_line":"        network_interfaces \u003d network_data[\u0027interfaces\u0027]"},{"line_number":351,"context_line":"        network_metrics \u003d CADVISOR_METRICS[\u0027network_metrics\u0027]"},{"line_number":352,"context_line":"        network_dimensions \u003d container_dimensions.copy()"},{"line_number":353,"context_line":"        container_name \u003d network_dimensions[\u0027container_name\u0027]"},{"line_number":354,"context_line":"        sum_network_interfaces \u003d {}"},{"line_number":355,"context_line":"        for interface in network_interfaces:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_93d575bc","line":352,"range":{"start_line":352,"start_character":0,"end_line":352,"end_character":56},"updated":"2017-04-13 15:16:32.000000000","message":"no need to do this anymore as the dimensions are the same now","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    def _parse_network(self, network_data, container_dimensions, pod_key, pod_net_metrics):"},{"line_number":350,"context_line":"        network_interfaces \u003d network_data[\u0027interfaces\u0027]"},{"line_number":351,"context_line":"        network_metrics \u003d CADVISOR_METRICS[\u0027network_metrics\u0027]"},{"line_number":352,"context_line":"        network_dimensions \u003d container_dimensions.copy()"},{"line_number":353,"context_line":"        container_name \u003d network_dimensions[\u0027container_name\u0027]"},{"line_number":354,"context_line":"        sum_network_interfaces \u003d {}"},{"line_number":355,"context_line":"        for interface in network_interfaces:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_bfcb981c","line":352,"range":{"start_line":352,"start_character":0,"end_line":352,"end_character":56},"in_reply_to":"9ff52f3f_93d575bc","updated":"2017-04-13 18:06:53.000000000","message":"Done","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                    if pod_key:"},{"line_number":369,"context_line":"                        if pod_key not in pod_net_metrics:"},{"line_number":370,"context_line":"                            pod_net_metrics[pod_key] \u003d {}"},{"line_number":371,"context_line":"                        if container_name not in pod_net_metrics[pod_key]:"},{"line_number":372,"context_line":"                            pod_net_metrics[pod_key][container_name] \u003d {}"},{"line_number":373,"context_line":"                        if metric_name not in pod_net_metrics[pod_key][container_name]:"},{"line_number":374,"context_line":"                            pod_net_metrics[pod_key][container_name][metric_name] \u003d metric_value"},{"line_number":375,"context_line":"                        else:"},{"line_number":376,"context_line":"                            pod_net_metrics[pod_key][container_name][metric_name] +\u003d metric_value"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def _parse_cpu(self, cpu_data, container_dimensions, pod_key, pod_metrics):"},{"line_number":379,"context_line":"        cpu_metrics \u003d CADVISOR_METRICS[\u0027cpu_metrics\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_d38e5d2d","line":376,"range":{"start_line":371,"start_character":0,"end_line":376,"end_character":97},"updated":"2017-04-13 15:16:32.000000000","message":"do you need this anymore wouldnt it just match the add pod metric? whats the need for container name I think you can just use add_pod_metric","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":368,"context_line":"                    if pod_key:"},{"line_number":369,"context_line":"                        if pod_key not in pod_net_metrics:"},{"line_number":370,"context_line":"                            pod_net_metrics[pod_key] \u003d {}"},{"line_number":371,"context_line":"                        if container_name not in pod_net_metrics[pod_key]:"},{"line_number":372,"context_line":"                            pod_net_metrics[pod_key][container_name] \u003d {}"},{"line_number":373,"context_line":"                        if metric_name not in pod_net_metrics[pod_key][container_name]:"},{"line_number":374,"context_line":"                            pod_net_metrics[pod_key][container_name][metric_name] \u003d metric_value"},{"line_number":375,"context_line":"                        else:"},{"line_number":376,"context_line":"                            pod_net_metrics[pod_key][container_name][metric_name] +\u003d metric_value"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def _parse_cpu(self, cpu_data, container_dimensions, pod_key, pod_metrics):"},{"line_number":379,"context_line":"        cpu_metrics \u003d CADVISOR_METRICS[\u0027cpu_metrics\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_bb74cb9a","line":376,"range":{"start_line":371,"start_character":0,"end_line":376,"end_character":97},"in_reply_to":"9ff52f3f_d38e5d2d","updated":"2017-04-13 18:06:53.000000000","message":"oops I didnt even see the add_pod_metric even its right there... Let me change to use that and then I can use send_pod_metrics instead I think. Thanks!","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                      pod_diskio_metrics):"},{"line_number":393,"context_line":"        diskio_services \u003d diskio_data[\u0027io_service_bytes\u0027]"},{"line_number":394,"context_line":"        diskio_metrics \u003d CADVISOR_METRICS[\u0027diskio_metrics\u0027]"},{"line_number":395,"context_line":"        diskio_dimensions \u003d container_dimensions.copy()"},{"line_number":396,"context_line":"        container_name \u003d diskio_dimensions[\u0027container_name\u0027]"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        sum_diskio_devices \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_b3e99981","line":395,"range":{"start_line":395,"start_character":0,"end_line":395,"end_character":55},"updated":"2017-04-13 15:16:32.000000000","message":"same","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":392,"context_line":"                      pod_diskio_metrics):"},{"line_number":393,"context_line":"        diskio_services \u003d diskio_data[\u0027io_service_bytes\u0027]"},{"line_number":394,"context_line":"        diskio_metrics \u003d CADVISOR_METRICS[\u0027diskio_metrics\u0027]"},{"line_number":395,"context_line":"        diskio_dimensions \u003d container_dimensions.copy()"},{"line_number":396,"context_line":"        container_name \u003d diskio_dimensions[\u0027container_name\u0027]"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"        sum_diskio_devices \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_bff4b85c","line":395,"range":{"start_line":395,"start_character":0,"end_line":395,"end_character":55},"in_reply_to":"9ff52f3f_b3e99981","updated":"2017-04-13 18:06:53.000000000","message":"Done","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        # non-network pod metrics. Need by interface"},{"line_number":476,"context_line":"        pod_metrics \u003d {}"},{"line_number":477,"context_line":"        # network pod metrics"},{"line_number":478,"context_line":"        pod_network_metrics \u003d {}"},{"line_number":479,"context_line":"        # diskio pod metrics"},{"line_number":480,"context_line":"        pod_diskio_metrics \u003d {}"},{"line_number":481,"context_line":"        for container, cadvisor_metrics in containers_metrics.items():"},{"line_number":482,"context_line":"            pod_key, container_dimensions \u003d self._get_container_dimensions("},{"line_number":483,"context_line":"                container,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_d3189dd4","line":480,"range":{"start_line":478,"start_character":0,"end_line":480,"end_character":31},"updated":"2017-04-13 15:16:32.000000000","message":"i dont think you need this anymore do you as you are dropping the interface and device dimension key","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        # non-network pod metrics. Need by interface"},{"line_number":476,"context_line":"        pod_metrics \u003d {}"},{"line_number":477,"context_line":"        # network pod metrics"},{"line_number":478,"context_line":"        pod_network_metrics \u003d {}"},{"line_number":479,"context_line":"        # diskio pod metrics"},{"line_number":480,"context_line":"        pod_diskio_metrics \u003d {}"},{"line_number":481,"context_line":"        for container, cadvisor_metrics in containers_metrics.items():"},{"line_number":482,"context_line":"            pod_key, container_dimensions \u003d self._get_container_dimensions("},{"line_number":483,"context_line":"                container,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_5b637fdd","line":480,"range":{"start_line":478,"start_character":0,"end_line":480,"end_character":31},"in_reply_to":"9ff52f3f_d3189dd4","updated":"2017-04-13 18:06:53.000000000","message":"Done","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":488,"context_line":"            # Grab first set of metrics from return data"},{"line_number":489,"context_line":"            cadvisor_metrics \u003d cadvisor_metrics[0]"},{"line_number":490,"context_line":"            if cadvisor_metrics[\u0027has_memory\u0027] and cadvisor_metrics[\u0027memory\u0027]:"},{"line_number":491,"context_line":"                self._parse_memory(cadvisor_metrics[\u0027memory\u0027],"},{"line_number":492,"context_line":"                                   container_dimensions,"},{"line_number":493,"context_line":"                                   pod_key,"},{"line_number":494,"context_line":"                                   pod_metrics)"},{"line_number":495,"context_line":"            if cadvisor_metrics[\u0027has_filesystem\u0027] and \u0027filesystem\u0027 in cadvisor_metrics \\"},{"line_number":496,"context_line":"                    and cadvisor_metrics[\u0027filesystem\u0027]:"},{"line_number":497,"context_line":"                self._parse_filesystem(cadvisor_metrics[\u0027filesystem\u0027],"},{"line_number":498,"context_line":"                                       container_dimensions)"},{"line_number":499,"context_line":"            if cadvisor_metrics[\u0027has_network\u0027] and cadvisor_metrics[\u0027network\u0027]:"},{"line_number":500,"context_line":"                self._parse_network(cadvisor_metrics[\u0027network\u0027],"},{"line_number":501,"context_line":"                                    container_dimensions,"},{"line_number":502,"context_line":"                                    pod_key,"},{"line_number":503,"context_line":"                                    pod_network_metrics)"},{"line_number":504,"context_line":"            if cadvisor_metrics[\u0027has_cpu\u0027] and cadvisor_metrics[\u0027cpu\u0027]:"},{"line_number":505,"context_line":"                self._parse_cpu(cadvisor_metrics[\u0027cpu\u0027],"},{"line_number":506,"context_line":"                                container_dimensions,"},{"line_number":507,"context_line":"                                pod_key,"},{"line_number":508,"context_line":"                                pod_metrics)"},{"line_number":509,"context_line":"            if cadvisor_metrics[\u0027has_diskio\u0027] and cadvisor_metrics[\u0027diskio\u0027]:"},{"line_number":510,"context_line":"                self._parse_diskio(cadvisor_metrics[\u0027diskio\u0027],"},{"line_number":511,"context_line":"                                   container_dimensions,"},{"line_number":512,"context_line":"                                   pod_key,"},{"line_number":513,"context_line":"                                   pod_diskio_metrics)"},{"line_number":514,"context_line":"        self.send_pod_metrics(pod_metrics, pod_dimension_map)"},{"line_number":515,"context_line":"        self.send_network_diskio_pod_metrics(pod_network_metrics,"},{"line_number":516,"context_line":"                                             pod_dimension_map)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_9304557d","line":513,"range":{"start_line":491,"start_character":0,"end_line":513,"end_character":54},"updated":"2017-04-13 15:16:32.000000000","message":"this looks better :) my bad","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":512,"context_line":"                                   pod_key,"},{"line_number":513,"context_line":"                                   pod_diskio_metrics)"},{"line_number":514,"context_line":"        self.send_pod_metrics(pod_metrics, pod_dimension_map)"},{"line_number":515,"context_line":"        self.send_network_diskio_pod_metrics(pod_network_metrics,"},{"line_number":516,"context_line":"                                             pod_dimension_map)"},{"line_number":517,"context_line":"        self.send_network_diskio_pod_metrics(pod_diskio_metrics,"},{"line_number":518,"context_line":"                                             pod_dimension_map)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def send_pod_metrics(self, pod_metrics_map, pod_dimension_map):"},{"line_number":521,"context_line":"        for pod_key, pod_metrics in pod_metrics_map.items():"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_13d725f0","line":518,"range":{"start_line":515,"start_character":0,"end_line":518,"end_character":63},"updated":"2017-04-13 15:16:32.000000000","message":"i think you can combine with the send pod metrics","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":512,"context_line":"                                   pod_key,"},{"line_number":513,"context_line":"                                   pod_diskio_metrics)"},{"line_number":514,"context_line":"        self.send_pod_metrics(pod_metrics, pod_dimension_map)"},{"line_number":515,"context_line":"        self.send_network_diskio_pod_metrics(pod_network_metrics,"},{"line_number":516,"context_line":"                                             pod_dimension_map)"},{"line_number":517,"context_line":"        self.send_network_diskio_pod_metrics(pod_diskio_metrics,"},{"line_number":518,"context_line":"                                             pod_dimension_map)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def send_pod_metrics(self, pod_metrics_map, pod_dimension_map):"},{"line_number":521,"context_line":"        for pod_key, pod_metrics in pod_metrics_map.items():"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_dba42f0b","line":518,"range":{"start_line":515,"start_character":0,"end_line":518,"end_character":63},"in_reply_to":"9ff52f3f_13d725f0","updated":"2017-04-13 18:06:53.000000000","message":"Yep if I use the add_pod_metric prior :-)","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"381e2e2a5ca4a8f89367d416a7353e73e4095b99","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                                   METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":526,"context_line":"                                   METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    def send_network_diskio_pod_metrics(self, pod_net_disk_metrics, pod_dimension_map):"},{"line_number":529,"context_line":"        for pod_key, container_metrics in pod_net_disk_metrics.items():"},{"line_number":530,"context_line":"            pod_dimensions \u003d pod_dimension_map[pod_key]"},{"line_number":531,"context_line":"            for container_name, metrics in container_metrics.items():"},{"line_number":532,"context_line":"                pod_net_disk_dimensions \u003d pod_dimensions.copy()"},{"line_number":533,"context_line":"                for metric_name, metric_value in metrics.items():"},{"line_number":534,"context_line":"                    self._send_metrics(\"pod.\" + metric_name,"},{"line_number":535,"context_line":"                                       metric_value,"},{"line_number":536,"context_line":"                                       pod_net_disk_dimensions,"},{"line_number":537,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":538,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_93eb35af","line":538,"range":{"start_line":528,"start_character":0,"end_line":538,"end_character":74},"updated":"2017-04-13 15:16:32.000000000","message":"same with this can you roll this up with the above","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"a92e78c4baee193645bccad987c615e9ae8afc30","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                                   METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":526,"context_line":"                                   METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    def send_network_diskio_pod_metrics(self, pod_net_disk_metrics, pod_dimension_map):"},{"line_number":529,"context_line":"        for pod_key, container_metrics in pod_net_disk_metrics.items():"},{"line_number":530,"context_line":"            pod_dimensions \u003d pod_dimension_map[pod_key]"},{"line_number":531,"context_line":"            for container_name, metrics in container_metrics.items():"},{"line_number":532,"context_line":"                pod_net_disk_dimensions \u003d pod_dimensions.copy()"},{"line_number":533,"context_line":"                for metric_name, metric_value in metrics.items():"},{"line_number":534,"context_line":"                    self._send_metrics(\"pod.\" + metric_name,"},{"line_number":535,"context_line":"                                       metric_value,"},{"line_number":536,"context_line":"                                       pod_net_disk_dimensions,"},{"line_number":537,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":538,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ff52f3f_9baea7e5","line":538,"range":{"start_line":528,"start_character":0,"end_line":538,"end_character":74},"in_reply_to":"9ff52f3f_93eb35af","updated":"2017-04-13 18:06:53.000000000","message":"Done","commit_id":"a9c8acbd2dd8b2dbfb8c89e1f9b1811ef45b1c8c"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"652d0c81636b54856ca5f8cea5d3dc9313461484","unresolved":false,"context_lines":[{"line_number":364,"context_line":"                                       network_dimensions,"},{"line_number":365,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":366,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":367,"context_line":"                    self._add_pod_metric(metric_name, metric_value, pod_key, pod_metrics)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def _parse_cpu(self, cpu_data, container_dimensions, pod_key, pod_metrics):"},{"line_number":370,"context_line":"        cpu_metrics \u003d CADVISOR_METRICS[\u0027cpu_metrics\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_95d0c8cb","line":367,"range":{"start_line":367,"start_character":20,"end_line":367,"end_character":89},"updated":"2017-04-14 14:10:01.000000000","message":"needs to be outside the if conditional above","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"223985cfd2adf7085a774ff8a220f0b8b0aa748e","unresolved":false,"context_lines":[{"line_number":364,"context_line":"                                       network_dimensions,"},{"line_number":365,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":366,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":367,"context_line":"                    self._add_pod_metric(metric_name, metric_value, pod_key, pod_metrics)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def _parse_cpu(self, cpu_data, container_dimensions, pod_key, pod_metrics):"},{"line_number":370,"context_line":"        cpu_metrics \u003d CADVISOR_METRICS[\u0027cpu_metrics\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_973549dd","line":367,"range":{"start_line":367,"start_character":20,"end_line":367,"end_character":89},"in_reply_to":"7ffa3b31_95d0c8cb","updated":"2017-04-17 17:48:08.000000000","message":"Good catch!! Thanks!","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"652d0c81636b54856ca5f8cea5d3dc9313461484","unresolved":false,"context_lines":[{"line_number":398,"context_line":"                                       diskio_dimensions,"},{"line_number":399,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":400,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":401,"context_line":"                    self._add_pod_metric(metric_name, metric_value, pod_key,"},{"line_number":402,"context_line":"                                         pod_metrics)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def _add_pod_metric(self, metric_name, metric_value, pod_key, pod_metrics):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_55da40e9","line":401,"range":{"start_line":401,"start_character":25,"end_line":401,"end_character":40},"updated":"2017-04-14 14:10:01.000000000","message":"same here","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"223985cfd2adf7085a774ff8a220f0b8b0aa748e","unresolved":false,"context_lines":[{"line_number":398,"context_line":"                                       diskio_dimensions,"},{"line_number":399,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":400,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":401,"context_line":"                    self._add_pod_metric(metric_name, metric_value, pod_key,"},{"line_number":402,"context_line":"                                         pod_metrics)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    def _add_pod_metric(self, metric_name, metric_value, pod_key, pod_metrics):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_3752f514","line":401,"range":{"start_line":401,"start_character":25,"end_line":401,"end_character":40},"in_reply_to":"7ffa3b31_55da40e9","updated":"2017-04-17 17:48:08.000000000","message":"Done","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"13c5e89ce4265fc73e8813f0ea9f598a09f3efb3","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                                   METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":463,"context_line":"                                   METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def send_network_pod_metrics(self, pod_network_metrics, pod_dimension_map):"},{"line_number":466,"context_line":"        for pod_key, network_interfaces in pod_network_metrics.items():"},{"line_number":467,"context_line":"            pod_dimensions \u003d pod_dimension_map[pod_key]"},{"line_number":468,"context_line":"            for network_interface, metrics in network_interfaces.items():"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_79706ba6","side":"PARENT","line":465,"range":{"start_line":465,"start_character":0,"end_line":465,"end_character":79},"updated":"2017-04-17 20:37:27.000000000","message":"so glad we got rid of this :)","commit_id":"7fdb297fe7690ff1e4dee5e300052eb117ee2169"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"13c5e89ce4265fc73e8813f0ea9f598a09f3efb3","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":350,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def _parse_network(self, network_data, network_dimensions, pod_key, pod_metrics):"},{"line_number":353,"context_line":"        network_interfaces \u003d network_data[\u0027interfaces\u0027]"},{"line_number":354,"context_line":"        network_metrics \u003d CADVISOR_METRICS[\u0027network_metrics\u0027]"},{"line_number":355,"context_line":"        sum_network_interfaces \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_f6ab681a","line":352,"range":{"start_line":352,"start_character":43,"end_line":352,"end_character":61},"updated":"2017-04-17 20:37:27.000000000","message":"nit but this is really container dimensions nothing really relates to the network metrics (such as interface)","commit_id":"f68042fd9748df1670049c9e449f505e62c6e2ef"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"1dfd3a0979430ca939b0af32cc987ee0a36ce112","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][0],"},{"line_number":350,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def _parse_network(self, network_data, network_dimensions, pod_key, pod_metrics):"},{"line_number":353,"context_line":"        network_interfaces \u003d network_data[\u0027interfaces\u0027]"},{"line_number":354,"context_line":"        network_metrics \u003d CADVISOR_METRICS[\u0027network_metrics\u0027]"},{"line_number":355,"context_line":"        sum_network_interfaces \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_595dafe7","line":352,"range":{"start_line":352,"start_character":43,"end_line":352,"end_character":61},"in_reply_to":"7ffa3b31_f6ab681a","updated":"2017-04-17 20:43:39.000000000","message":"yep you are definitely right haha let me change it just to be consistent with other _parse_xx methods. Thanks!","commit_id":"f68042fd9748df1670049c9e449f505e62c6e2ef"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"13c5e89ce4265fc73e8813f0ea9f598a09f3efb3","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                                       METRIC_TYPES_UNITS[metric_name][1])"},{"line_number":382,"context_line":"                self._add_pod_metric(metric_name, cpu_usage_sec, pod_key, pod_metrics)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def _parse_diskio(self, diskio_data, diskio_dimensions, pod_key, pod_metrics):"},{"line_number":385,"context_line":"        diskio_services \u003d diskio_data[\u0027io_service_bytes\u0027]"},{"line_number":386,"context_line":"        diskio_metrics \u003d CADVISOR_METRICS[\u0027diskio_metrics\u0027]"},{"line_number":387,"context_line":"        sum_diskio_devices \u003d {}"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_d6a62c54","line":384,"range":{"start_line":384,"start_character":41,"end_line":384,"end_character":58},"updated":"2017-04-17 20:37:27.000000000","message":"same here","commit_id":"f68042fd9748df1670049c9e449f505e62c6e2ef"}],"monasca_agent/common/util.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9adc0bac80e939cfd453c30b3003cba8f9805e5c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2015-2017 Hewlett Packard Enterprise Development Company LP"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import glob"},{"line_number":4,"context_line":"import hashlib"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_95132867","line":1,"range":{"start_line":1,"start_character":65,"end_line":1,"end_character":72},"updated":"2017-04-14 14:26:55.000000000","message":"remove","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"223985cfd2adf7085a774ff8a220f0b8b0aa748e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# (C) Copyright 2015-2017 Hewlett Packard Enterprise Development Company LP"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"import glob"},{"line_number":4,"context_line":"import hashlib"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_b73de5bc","line":1,"range":{"start_line":1,"start_character":65,"end_line":1,"end_character":72},"in_reply_to":"7ffa3b31_95132867","updated":"2017-04-17 17:48:08.000000000","message":"Done","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9adc0bac80e939cfd453c30b3003cba8f9805e5c","unresolved":false,"context_lines":[{"line_number":702,"context_line":"def rollup_dictionaries(dict_sum, data):"},{"line_number":703,"context_line":"    # add dictionaries"},{"line_number":704,"context_line":"    dict_sum \u003d {k: dict_sum.get(k, 0) + data.get(k, 0)"},{"line_number":705,"context_line":"                for k in set(data) | set(dict_sum) if"},{"line_number":706,"context_line":"                type(data.get(k, 0)) is int and"},{"line_number":707,"context_line":"                type(dict_sum.get(k, 0)) is int}"},{"line_number":708,"context_line":"    return dict_sum"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_b51e246e","line":707,"range":{"start_line":705,"start_character":51,"end_line":707,"end_character":47},"updated":"2017-04-14 14:26:55.000000000","message":"This method should be valid for floating point numbers as well. In fact, I don\u0027t really see any value in checking the types. The caller should ensure they are numbers.","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"223985cfd2adf7085a774ff8a220f0b8b0aa748e","unresolved":false,"context_lines":[{"line_number":702,"context_line":"def rollup_dictionaries(dict_sum, data):"},{"line_number":703,"context_line":"    # add dictionaries"},{"line_number":704,"context_line":"    dict_sum \u003d {k: dict_sum.get(k, 0) + data.get(k, 0)"},{"line_number":705,"context_line":"                for k in set(data) | set(dict_sum) if"},{"line_number":706,"context_line":"                type(data.get(k, 0)) is int and"},{"line_number":707,"context_line":"                type(dict_sum.get(k, 0)) is int}"},{"line_number":708,"context_line":"    return dict_sum"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_f7eecd86","line":707,"range":{"start_line":705,"start_character":51,"end_line":707,"end_character":47},"in_reply_to":"7ffa3b31_b51e246e","updated":"2017-04-17 17:48:08.000000000","message":"The reason why I checked the type here is because the dictionaries we are trying rollup look like \"{u\u0027tx_dropped\u0027: 0, u\u0027rx_packets\u0027: 18862, u\u0027name\u0027: u\u0027eth0\u0027, u\u0027rx_bytes\u0027: 3808418, u\u0027tx_errors\u0027: 0, u\u0027rx_errors\u0027: 0, u\u0027tx_bytes\u0027: 6100418, u\u0027rx_dropped\u0027: 0, u\u0027tx_packets\u0027: 60747}\".\nThis is a network output for one specific interface \"eth0\". When adding these dictionaries up I have to ignore the u\u0027name\u0027: u\u0027eth0\u0027 part and thats why I have this if statement to check type here. If we want to make the caller to ensure they are numbers then we need to remove this u\u0027name\u0027: u\u0027eth0\u0027  part from every dictionary before rollup.","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"246b710d1a88ca720d9e62bbdbffb33266f1956a","unresolved":false,"context_lines":[{"line_number":702,"context_line":"def rollup_dictionaries(dict_sum, data):"},{"line_number":703,"context_line":"    # add dictionaries"},{"line_number":704,"context_line":"    dict_sum \u003d {k: dict_sum.get(k, 0) + data.get(k, 0)"},{"line_number":705,"context_line":"                for k in set(data) | set(dict_sum) if"},{"line_number":706,"context_line":"                type(data.get(k, 0)) is int and"},{"line_number":707,"context_line":"                type(dict_sum.get(k, 0)) is int}"},{"line_number":708,"context_line":"    return dict_sum"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_b48118fe","line":707,"range":{"start_line":705,"start_character":51,"end_line":707,"end_character":47},"in_reply_to":"7ffa3b31_c1251dc4","updated":"2017-04-19 15:06:53.000000000","message":"Done :-)","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"93840317057103247a7b02d692d4f91716f56548","unresolved":false,"context_lines":[{"line_number":702,"context_line":"def rollup_dictionaries(dict_sum, data):"},{"line_number":703,"context_line":"    # add dictionaries"},{"line_number":704,"context_line":"    dict_sum \u003d {k: dict_sum.get(k, 0) + data.get(k, 0)"},{"line_number":705,"context_line":"                for k in set(data) | set(dict_sum) if"},{"line_number":706,"context_line":"                type(data.get(k, 0)) is int and"},{"line_number":707,"context_line":"                type(dict_sum.get(k, 0)) is int}"},{"line_number":708,"context_line":"    return dict_sum"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_c1251dc4","line":707,"range":{"start_line":705,"start_character":51,"end_line":707,"end_character":47},"in_reply_to":"7ffa3b31_f7eecd86","updated":"2017-04-18 22:19:16.000000000","message":"Makes sense. You probably need a comment here about why this is done this way. This is some serious code :)","commit_id":"f9e6b115aa7d26350492a227cbec3ea2886e1a15"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"3516ec948d305c5a3f4f43e429e4d060bcbb03a5","unresolved":false,"context_lines":[{"line_number":710,"context_line":"    # When adding up dictionaries, only the keys with number type values can be"},{"line_number":711,"context_line":"    # added. Non-number type key value pairs should be ignored such as"},{"line_number":712,"context_line":"    # u\u0027name\u0027: u\u0027eth0\u0027."},{"line_number":713,"context_line":"    dict_sum \u003d {k: dict_sum.get(k, 0) + data.get(k, 0)"},{"line_number":714,"context_line":"                for k in set(data) | set(dict_sum) if"},{"line_number":715,"context_line":"                isinstance(data.get(k, 0), Number) and"},{"line_number":716,"context_line":"                isinstance(dict_sum.get(k, 0), Number)}"},{"line_number":717,"context_line":"    return dict_sum"}],"source_content_type":"text/x-python","patch_set":9,"id":"7ffa3b31_5f3304f7","line":716,"range":{"start_line":713,"start_character":15,"end_line":716,"end_character":55},"updated":"2017-04-19 21:50:42.000000000","message":"Seems like this could be simplified or written out in a more readable way.","commit_id":"22ac6a1e60b842f9ceb9697cfe07313846852935"}]}
