)]}'
{"docs/Libvirt.md":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"5a144f72ee7b393229f3dc6af52a8a6a4ffcfa69","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"`ping_check` includes the entire command line (sans the IP address, which is automatically appended) used to perform a ping check against instances, with a keyword `NAMESPACE` automatically replaced with the appropriate network namespace for the VM being monitored.  Set to False (or omit altogether) to disable ping checks.  See [ping checks](#ping-checks) below for more detail on how ping checks are set up and how they work."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"`max_ping_cmds` specifies the number of ping command processes that will be run concurrently. This should be set to a value that allows the plugin to finish within the agent collection period even if there is a networking issue. For example, if the expected number of VMs per compute node is 40 and each VM will have one IP Adddress and using the default ping timeout of 1 seconds, if all all of the pings fail and `max_ping_cmds` is 1, then the plugin will take at least 40 seconds to do the ping checks. Increasing `max_ping_cmds` will allow the plugin to finish faster. The default value is 8."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"`alive_only` will suppress all per-VM metrics aside from `host_alive_status` and `vm.host_alive_status`, including all I/O, network, memory, ping, and CPU metrics.  [Aggregate Metrics](#aggregate-metrics), however, would still be enabled if `alive_only` is true.  By default, `alive_only` is false."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":6,"id":"dada55a8_6e452716","line":49,"range":{"start_line":49,"start_character":1,"end_line":49,"end_character":14},"updated":"2016-07-22 20:46:55.000000000","message":"Would \"max_ping_concurrency\" be a slightly more descriptive name.","commit_id":"33f7e5a4f53db5f49617dd697de66fe3b5daeee0"}],"monasca_agent/collector/checks_d/libvirt.py":[{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"f1bbe82ace962535bc1f92b1a3d389c090a88e71","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# (c) Copyright 2014-2016 Hewlett Packard Enterprise Development Company LP"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_7844c473","line":3,"range":{"start_line":3,"start_character":65,"end_line":3,"end_character":72},"updated":"2016-07-18 18:04:58.000000000","message":"Remove Company please","commit_id":"3489fd5fa621bdb0bf9fdccaa732a98affed6664"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f3bbfea308f9bf668cc4ffbe142bcdb2276bb9d7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# (c) Copyright 2014-2016 Hewlett Packard Enterprise Development Company LP"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_f66f2490","line":3,"range":{"start_line":3,"start_character":65,"end_line":3,"end_character":72},"in_reply_to":"dada55a8_7844c473","updated":"2016-07-18 18:40:22.000000000","message":"Done","commit_id":"3489fd5fa621bdb0bf9fdccaa732a98affed6664"},{"author":{"_account_id":18179,"name":"Kaiyan Sheng","email":"kaiyan.sheng@hpe.com","username":"kaiyan-sheng"},"change_message_id":"f1bbe82ace962535bc1f92b1a3d389c090a88e71","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                del self._running_ping_processes[ping_process]"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        if self._max_ping_processes_running() or len(self._waiting_ping_cmds) \u003d\u003d 0:"},{"line_number":597,"context_line":"            return"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        self.log.debug(\u0027%d waiting ping commands\u0027,"},{"line_number":600,"context_line":"                       len(self._waiting_ping_cmds))"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_9386bbb7","line":597,"range":{"start_line":597,"start_character":12,"end_line":597,"end_character":18},"updated":"2016-07-18 18:04:58.000000000","message":"do we need to log some message here?","commit_id":"3489fd5fa621bdb0bf9fdccaa732a98affed6664"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f3bbfea308f9bf668cc4ffbe142bcdb2276bb9d7","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                del self._running_ping_processes[ping_process]"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        if self._max_ping_processes_running() or len(self._waiting_ping_cmds) \u003d\u003d 0:"},{"line_number":597,"context_line":"            return"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        self.log.debug(\u0027%d waiting ping commands\u0027,"},{"line_number":600,"context_line":"                       len(self._waiting_ping_cmds))"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_76d85454","line":597,"range":{"start_line":597,"start_character":12,"end_line":597,"end_character":18},"in_reply_to":"dada55a8_9386bbb7","updated":"2016-07-18 18:40:22.000000000","message":"I don\u0027t think so. Do you have a suggestion of one?","commit_id":"3489fd5fa621bdb0bf9fdccaa732a98affed6664"},{"author":{"_account_id":14273,"name":"Joe Keen","email":"joe.keen@hpe.com","username":"jkeen"},"change_message_id":"afcb0e10fde9b8fe16577fe8b2addd604dfed371","unresolved":false,"context_lines":[{"line_number":630,"context_line":"           are already running, add the ping command to the waiting queue"},{"line_number":631,"context_line":"        \"\"\""},{"line_number":632,"context_line":"        if len(self._running_ping_processes) \u003e 0:"},{"line_number":633,"context_line":"            self._check_ping_processes()"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        tenant_id \u003d inst_data[\u0027tenant_id\u0027]"},{"line_number":636,"context_line":"        hostname \u003d inst_data[\u0027hostname\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_12bc7b04","line":633,"range":{"start_line":633,"start_character":17,"end_line":633,"end_character":38},"updated":"2016-07-18 22:19:55.000000000","message":"It would be more clear to me if this function either started a ping check or added it to the wait list and then let the _wait_for_ping_processes function process the wait list.\n\nI assume we\u0027re doing it this way so that we can process ping commands that finish as we run through the instance list.  Would it be worth doing a second loop through the instances after we\u0027ve completed the normal metric collection and do the ping checks then?  Or does the normal collection take long enough that it\u0027s worth processing the ping checks as we go along?","commit_id":"8f30d2508d649a6990d9f9999645db11adab3e60"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"595b541b22c05d87298644e6427c25ada8358a5a","unresolved":false,"context_lines":[{"line_number":630,"context_line":"           are already running, add the ping command to the waiting queue"},{"line_number":631,"context_line":"        \"\"\""},{"line_number":632,"context_line":"        if len(self._running_ping_processes) \u003e 0:"},{"line_number":633,"context_line":"            self._check_ping_processes()"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        tenant_id \u003d inst_data[\u0027tenant_id\u0027]"},{"line_number":636,"context_line":"        hostname \u003d inst_data[\u0027hostname\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_5acecab4","line":633,"range":{"start_line":633,"start_character":17,"end_line":633,"end_character":38},"in_reply_to":"dada55a8_12bc7b04","updated":"2016-07-20 00:54:15.000000000","message":"This plugin can make multiple calls to Nova and Neutron. The ping command could easily finish in that time if successful so I like it better just running them as  they come up for each VM.","commit_id":"8f30d2508d649a6990d9f9999645db11adab3e60"},{"author":{"_account_id":15027,"name":"Michael Hoppal","email":"michael.jam.hoppal@hpe.com","username":"michael-hoppal"},"change_message_id":"050df811db21455c429384e962189c858b7646e3","unresolved":false,"context_lines":[{"line_number":797,"context_line":"            self.gauge(agg_gauges[gauge], agg_values[gauge], dimensions\u003ddims_base)"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"        # Wait for all the ping processes to finish"},{"line_number":800,"context_line":"        self._wait_for_ping_processes()"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"    def _calculate_rate(self, current_value, cache_value, time_diff):"},{"line_number":803,"context_line":"        \"\"\"Calculate rate based on current, cache value and time_diff.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_9c26c7b8","line":800,"range":{"start_line":800,"start_character":13,"end_line":800,"end_character":37},"updated":"2016-07-18 19:21:16.000000000","message":"dont you only need to do this if vm_ping_check is enabled?","commit_id":"8f30d2508d649a6990d9f9999645db11adab3e60"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"595b541b22c05d87298644e6427c25ada8358a5a","unresolved":false,"context_lines":[{"line_number":797,"context_line":"            self.gauge(agg_gauges[gauge], agg_values[gauge], dimensions\u003ddims_base)"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"        # Wait for all the ping processes to finish"},{"line_number":800,"context_line":"        self._wait_for_ping_processes()"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"    def _calculate_rate(self, current_value, cache_value, time_diff):"},{"line_number":803,"context_line":"        \"\"\"Calculate rate based on current, cache value and time_diff.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_dded94f0","line":800,"range":{"start_line":800,"start_character":13,"end_line":800,"end_character":37},"in_reply_to":"dada55a8_9c26c7b8","updated":"2016-07-20 00:54:15.000000000","message":"Done","commit_id":"8f30d2508d649a6990d9f9999645db11adab3e60"}]}
