[btrfs_device_usage] fix division by zero when btrfs pool is unhealthy

During certain situations, a device in the btrfs pool can show a total
capacity of 0 bytes. This is aspecially true when replacing or removing a
failed disk.

This fix stops the plugin from crashing in that situation but just report
the devices percentage as unknown (U). That way other devices in the pool
stil can be monitored.
This commit is contained in:
HaseHarald 2021-12-11 23:16:50 +01:00 committed by Lars Kruse
parent fea81596eb
commit 16d38264aa
1 changed files with 8 additions and 3 deletions

View File

@ -155,9 +155,14 @@ def munin_values(fs):
for this_device in devices:
this_dev_info = fs.dev_info(this_device.devid)
usage = 100.0 * this_dev_info.bytes_used / this_dev_info.total_bytes
print("btrfs_percent_" + fsid + "_" + str(this_device.devid) +
".value " + str(round(usage, 2)))
if this_dev_info.total_bytes > 0:
usage = 100.0 * this_dev_info.bytes_used / this_dev_info.total_bytes
print("btrfs_percent_" + fsid + "_" + str(this_device.devid) +
".value " + str(round(usage, 2)))
else:
print("btrfs_percent_" + fsid + "_" + str(this_device.devid) +
".value U")
print("")