aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Miccini <luca.miccini@redhat.com>2015-03-13 12:43:08 +0100
committerBryn M. Reeves <bmr@redhat.com>2015-06-30 17:53:34 +0100
commit581b05584410e48be998c98efe25ab9783641d1b (patch)
tree02f7f707d93ca7042b8caf1d41f1fffff7e22f89
parente768bf71c96317bc64b643ab9262cb88f1d9058c (diff)
downloadsos-581b05584410e48be998c98efe25ab9783641d1b.tar.gz
[vhostmd] add new plugin
Add a plugin for the Virtual Host Metrics Daemon (vhostmd) to collect VM performance metrics from the system. Fixes #527. Signed-off-by: Luca Miccini <luca.miccini@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r--sos/plugins/vhostmd.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/sos/plugins/vhostmd.py b/sos/plugins/vhostmd.py
new file mode 100644
index 00000000..67119454
--- /dev/null
+++ b/sos/plugins/vhostmd.py
@@ -0,0 +1,52 @@
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+from sos.plugins import Plugin, RedHatPlugin
+
+
+class vhostmd(Plugin, RedHatPlugin):
+ """vhostmd virtualization metrics collection
+ """
+
+ plugin_name = 'vhostmd'
+ profiles = ['sap']
+
+ packages = ['virt-what']
+
+ def setup(self):
+ vw = self.get_command_output("virt-what")['output'].splitlines()
+
+ if not vw:
+ return
+
+ if "vmware" in vw or "kvm" in vw or "xen" in vw:
+ # if vm-dump-metrics is installed use it
+ if self.is_installed("vm-dump-metrics"):
+ self.add_cmd_output("vm-dump-metrics",
+ suggest_filename="virt_metrics")
+ else:
+ # otherwise use the raw vhostmd disk presented (256k size)
+ d = self.get_command_output("lsblk -d")
+ for disk in d['output'].splitlines():
+ if "256K" in disk:
+ dev = disk.split()[0]
+ check = self.get_command_output(
+ "dd if=/dev/%s bs=25 count=1" % dev)
+ if 'metric' in check['output']:
+ self.add_cmd_output("dd if=/dev/%s bs=256k count=1"
+ % dev,
+ suggest_filename="virt_\
+ metrics")
+
+# vim: et ts=4 sw=4