mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-21 18:41:03 +00:00
stopped containers have no disk space info and the plugin crashed. Now it only shows disk usage for running containers
52 lines
1.3 KiB
Python
Executable file
52 lines
1.3 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)
|
|
if info['disk']:
|
|
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)
|
|
if info['disk']:
|
|
for disk in info['disk']:
|
|
print(name+"-"+disk+".value "+str(info['disk'][disk]['usage']))
|