2
0
mirror of https://github.com/munin-monitoring/contrib.git synced 2018-11-08 00:59:34 +01:00
contrib-munin/plugins/lxd/lxd_disk
Felix Engelmann 3a48fa4eab added explaining comment for extra if
If no LXD disk information is present, the field is None instead of an
empty list. Iterating over it directly would fail.
2016-10-17 09:57:02 +02:00

57 lines
1.6 KiB
Python
Executable File

#!/usr/bin/python3
import sys
errors=[]
HAS_LIB=True
try:
from pylxd import api
except:
HAS_LIB=False
errors.append("no pylxd module")
c=None
HAS_ACCESS=True
try:
c=api.API()
c.container_list()
except:
HAS_ACCESS=False
errors.append("no socket access")
if len(sys.argv) == 2 and sys.argv[1]=="autoconf":
if HAS_LIB and HAS_ACCESS:
print("yes")
else:
print("no ("+" and ".join(errors)+")")
sys.exit(0)
if not (HAS_LIB and HAS_ACCESS):
# pylxd not installed or lxd socket not accessible
sys.exit(1)
if len(sys.argv) == 2 and sys.argv[1]=="config":
print("graph_title LXD container disk usage")
print("graph_args --base 1000 --lower-limit 0")
print("graph_vlabel Bytes")
print("graph_category lxd")
print("graph_info This shows the disk usage of storage in containers. Make sure to install pylxd in python3.")
for name in c.container_list():
info = c.container_info(name)
# first check if disk information list is available or None
if info['disk']:
# if no disk information is present, this would fail to iteration None
for disk in info['disk']:
print(name+"-"+disk+".label "+name)
print(name+"-"+disk+".draw LINE2")
sys.exit(0)
for name in c.container_list():
info = c.container_info(name)
# first check if disk information list is available or None
if info['disk']:
# if no disk information is present, this would fail to iteration None
for disk in info['disk']:
print(name+"-"+disk+".value "+str(info['disk'][disk]['usage']))