diff --git a/zabbix-agent-scripts/get_storage_metrics.py b/zabbix-agent-scripts/get_storage_metrics.py index f886530..dc8ffa8 100644 --- a/zabbix-agent-scripts/get_storage_metrics.py +++ b/zabbix-agent-scripts/get_storage_metrics.py @@ -21,24 +21,48 @@ import json -datadir = subprocess.check_output(["occ", "config:system:get", "datadirectory"]).strip(b"\n").decode() +import io -total_size = subprocess.check_output(["du","-b", "-d0", datadir]).split(b"\t")[0].decode() +import pandas as pd -total_size_gb = int(total_size)/1024./1024./1024. -total_size_dict = { "total_size_gb": total_size_gb } +datadir = subprocess.check_output( + ["occ", "config:system:get", "datadirectory"] + ).strip(b"\n").decode() +total_size = subprocess.check_output( + ["du","-b", "-d0", datadir] + ).split(b"\t")[0].decode() + +gb_conversion_factor = 1./(1024.*1024.*1024.) + +datadirectory_total_size_gb = int(total_size)*gb_conversion_factor + +df_command_output = subprocess.check_output( + ["df", "-B1", "--output=size,avail,pcent", "/mnt/nc-data"] + ).strip(b"\n").decode() + +df = pd.read_csv( + io.StringIO(df_command_output), + sep="\s+", + names=["total","avail","pused"], + skiprows=1 + ) + +partition_total_capacity_gb = (df.total.values[0])*gb_conversion_factor + +partition_available_capacity_gb = (df.avail.values[0])*gb_conversion_factor + +partition_used_capacity_percent = int(df.pused.values[0].strip('%')) + +storage_metrics = { + "datadirectory_total_size_gb": datadirectory_total_size_gb, + "partition_total_capacity_gb": partition_total_capacity_gb, + "partition_available_capacity_gb": partition_available_capacity_gb, + "partition_used_capacity_percent": partition_used_capacity_percent + } with open("/var/lib/zabbix/output/storage_metrics.json","w") as fl: - json.dump(total_size_dict,fl) - - - - - - - - + json.dump(storage_metrics,fl)