1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-21 02:33:18 +00:00
Munin-Contrib/plugins/libvirt/munin-libvirtpy
Alois 367a4b3727
munin-libvirtpy now in python3 (#1258)
* works on debian bullseye
* flake8 compatiblity ckecked
* print errors to file=sys.stderr
2021-11-17 14:32:32 +01:00

75 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python3
"""
=encoding utf8
=head1 NAME
munin-libvirtpy - KVM Domain CPU Utilization
=head1 CONFIGURATION
Parsed environment variables:
python-libvirt is required
=head1 LICENSE
GPLv3
SPDX-License-Identifier: GPL-3.0-only
=head1 AUTHORS
Julien Rottenberg
Steven Wagner
=head1 MAGIC MARKERS
#%# capabilities=autoconf
#%# family=contrib
=cut
"""
import libvirt
import sys
conn = libvirt.openReadOnly("qemu:///system")
if conn is None:
print('Failed to open connection to the hypervisor')
sys.exit(1)
try:
(model, memory, cpus, mhz, nodes, socket, cores, threads) = conn.getInfo()
except BaseException as error:
print('getInfo failed: {}'.format(error), file=sys.stderr)
sys.exit(1)
ids = conn.listDomainsID()
if ids is None or len(ids) == 0:
print('No running domains found.', file=sys.stderr)
sys.exit(1)
if len(sys.argv) == 2:
if sys.argv[1] == "config":
print("graph_title KVM Domain CPU Utilization")
print("graph_vlabel CPU use in seconds")
print("graph_args --base 1000")
print("graph_category virtualization")
for id in ids:
dom = conn.lookupByID(id)
nodeName = dom.name()
print("%s.type COUNTER" % (nodeName))
print("%s.label %s" % (nodeName, nodeName))
sys.exit(0)
for id in ids:
dom = conn.lookupByID(id)
state, maxMem, memory, numVirtCpu, cpuTime = dom.info()
nodeName = dom.name()
print("%s.value %d" % (nodeName, cpuTime/float(1000000)))