summaryrefslogtreecommitdiffstats
path: root/charts.d/nut.chart.sh
diff options
context:
space:
mode:
Diffstat (limited to 'charts.d/nut.chart.sh')
-rw-r--r--[-rwxr-xr-x]charts.d/nut.chart.sh31
1 files changed, 30 insertions, 1 deletions
diff --git a/charts.d/nut.chart.sh b/charts.d/nut.chart.sh
index e0b1b4cf9..6137639f9 100755..100644
--- a/charts.d/nut.chart.sh
+++ b/charts.d/nut.chart.sh
@@ -2,7 +2,7 @@
# netdata
# real-time performance and health monitoring, done right!
-# (C) 2016 Costa Tsaousis <costa@tsaousis.gr>
+# (C) 2016-2017 Costa Tsaousis <costa@tsaousis.gr>
# GPL v3+
#
@@ -13,8 +13,13 @@ nut_ups=
# how frequently to collect UPS data
nut_update_every=2
+# how much time in seconds, to wait for nut to respond
nut_timeout=2
+# set this to 1, to enable another chart showing the number
+# of UPS clients connected to upsd
+nut_clients_chart=0
+
# the priority of nut related to other charts
nut_priority=90000
@@ -26,6 +31,12 @@ nut_get_all() {
nut_get() {
run -t $nut_timeout upsc "$1"
+
+ if [ "${nut_clients_chart}" -eq "1" ]
+ then
+ printf "ups.connected_clients: "
+ run -t $nut_timeout upsc -c "$1" | wc -l
+ fi
}
nut_check() {
@@ -97,6 +108,15 @@ DIMENSION load load absolute 1 100
CHART nut_$x.temp '' "UPS Temperature" "temperature" ups nut.temperature line $((nut_priority + 7)) $nut_update_every
DIMENSION temp temp absolute 1 100
EOF
+
+ if [ "${nut_clients_chart}" = "1" ]
+ then
+ cat <<EOF2
+CHART nut_$x.clients '' "UPS Connected Clients" "clients" ups nut.clients area $((nut_priority + 8)) $nut_update_every
+DIMENSION clients '' absolute 1 1
+EOF2
+ fi
+
done
return 0
@@ -131,6 +151,8 @@ BEGIN {
output_voltage = 0;
load = 0;
temp = 0;
+ client = 0;
+ do_clients = ${nut_clients_chart};
}
/^battery.charge: .*/ { battery_charge = \$2 * 100 };
/^battery.voltage: .*/ { battery_voltage = \$2 * 100 };
@@ -146,6 +168,7 @@ BEGIN {
/^output.voltage: .*/ { output_voltage = \$2 * 100 };
/^ups.load: .*/ { load = \$2 * 100 };
/^ups.temperature: .*/ { temp = \$2 * 100 };
+/^ups.connected_clients: .*/ { clients = \$2 };
END {
print \"BEGIN nut_$x.charge $1\";
print \"SET battery_charge = \" battery_charge;
@@ -184,6 +207,12 @@ END {
print \"BEGIN nut_$x.temp $1\";
print \"SET temp = \" temp;
print \"END\"
+
+ if(do_clients) {
+ print \"BEGIN nut_$x.clients $1\";
+ print \"SET clients = \" clients;
+ print \"END\"
+ }
}"
[ $? -ne 0 ] && unset nut_ids[$i] && error "failed to get values for '$i', disabling it."
done