diff options
author | Chris Akritidis <43294513+cakrit@users.noreply.github.com> | 2018-12-20 12:19:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-20 12:19:31 +0100 |
commit | 83e4b721fe11d3dfb938730e54a24c5edf385e6a (patch) | |
tree | 07d86e14de86717a5d3e3554a62aeeaf6d1dc7f1 /collectors/charts.d.plugin | |
parent | 2511353db1afb01b2b3de17b9eba02576528e3fc (diff) |
Apcupsd add check for UPS online (#5037)
##### Summary
fixes #3927
##### Component Name
external BASH collector module apcupsd.
##### Additional Information
Add chart for online flag with 0/1. Only send that metric when the reported UPS stats are invalid.
Diffstat (limited to 'collectors/charts.d.plugin')
-rw-r--r-- | collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh | 102 |
1 files changed, 56 insertions, 46 deletions
diff --git a/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh b/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh index 744d396cd8..b4b92cdc5f 100644 --- a/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh +++ b/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh @@ -97,6 +97,9 @@ DIMENSION temp temp absolute 1 100 CHART apcupsd_${host}.time '' "UPS Time Remaining for ${host} on ${src}" "Minutes" ups apcupsd.time area $((apcupsd_priority + 2)) $apcupsd_update_every DIMENSION time time absolute 1 100 +CHART apcupsd_${host}.online '' "UPS ONLINE flag for ${host} on ${src}" "boolean" ups apcupsd.online line $((apcupsd_priority + 8)) $apcupsd_update_every +DIMENSION online online absolute 0 1 + EOF done return 0 @@ -122,60 +125,67 @@ BEGIN { input_voltage_min = 0; input_voltage_max = 0; input_frequency = 0; - output_voltage = 0; + output_voltage = 0; output_voltage_nominal = 0; load = 0; temp = 0; time = 0; } -/^BCHARGE.*/ { battery_charge = \$3 * 100 }; -/^BATTV.*/ { battery_voltage = \$3 * 100 }; -/^NOMBATTV.*/ { battery_voltage_nominal = \$3 * 100 }; -/^LINEV.*/ { input_voltage = \$3 * 100 }; -/^MINLINEV.*/ { input_voltage_min = \$3 * 100 }; -/^MAXLINEV.*/ { input_voltage_max = \$3 * 100 }; -/^LINEFREQ.*/ { input_frequency = \$3 * 100 }; -/^OUTPUTV.*/ { output_voltage = \$3 * 100 }; -/^NOMOUTV.*/ { output_voltage_nominal = \$3 * 100 }; -/^LOADPCT.*/ { load = \$3 * 100 }; -/^ITEMP.*/ { temp = \$3 * 100 }; -/^TIMELEFT.*/ { time = \$3 * 100 }; +/^BCHARGE.*/ { battery_charge = \$3 * 100 }; +/^BATTV.*/ { battery_voltage = \$3 * 100 }; +/^NOMBATTV.*/ { battery_voltage_nominal = \$3 * 100 }; +/^LINEV.*/ { input_voltage = \$3 * 100 }; +/^MINLINEV.*/ { input_voltage_min = \$3 * 100 }; +/^MAXLINEV.*/ { input_voltage_max = \$3 * 100 }; +/^LINEFREQ.*/ { input_frequency = \$3 * 100 }; +/^OUTPUTV.*/ { output_voltage = \$3 * 100 }; +/^NOMOUTV.*/ { output_voltage_nominal = \$3 * 100 }; +/^LOADPCT.*/ { load = \$3 * 100 }; +/^ITEMP.*/ { temp = \$3 * 100 }; +/^TIMELEFT.*/ { time = \$3 * 100 }; +/^STATUS.*/ { online=(\$3 == \"ONLINE\")?1:0 }; END { - print \"BEGIN apcupsd_${host}.charge $1\"; - print \"SET battery_charge = \" battery_charge; - print \"END\" - - print \"BEGIN apcupsd_${host}.battery_voltage $1\"; - print \"SET battery_voltage = \" battery_voltage; - print \"SET battery_voltage_nominal = \" battery_voltage_nominal; - print \"END\" - - print \"BEGIN apcupsd_${host}.input_voltage $1\"; - print \"SET input_voltage = \" input_voltage; - print \"SET input_voltage_min = \" input_voltage_min; - print \"SET input_voltage_max = \" input_voltage_max; - print \"END\" - - print \"BEGIN apcupsd_${host}.input_frequency $1\"; - print \"SET input_frequency = \" input_frequency; + print \"BEGIN apcupsd_${host}.online $1\"; + print \"SET online = \" online; print \"END\" - print \"BEGIN apcupsd_${host}.output_voltage $1\"; - print \"SET output_voltage = \" output_voltage; - print \"SET output_voltage_nominal = \" output_voltage_nominal; - print \"END\" - - print \"BEGIN apcupsd_${host}.load $1\"; - print \"SET load = \" load; - print \"END\" - - print \"BEGIN apcupsd_${host}.temp $1\"; - print \"SET temp = \" temp; - print \"END\" - - print \"BEGIN apcupsd_${host}.time $1\"; - print \"SET time = \" time; - print \"END\" + if (online == 1) { + print \"BEGIN apcupsd_${host}.charge $1\"; + print \"SET battery_charge = \" battery_charge; + print \"END\" + + print \"BEGIN apcupsd_${host}.battery_voltage $1\"; + print \"SET battery_voltage = \" battery_voltage; + print \"SET battery_voltage_nominal = \" battery_voltage_nominal; + print \"END\" + + print \"BEGIN apcupsd_${host}.input_voltage $1\"; + print \"SET input_voltage = \" input_voltage; + print \"SET input_voltage_min = \" input_voltage_min; + print \"SET input_voltage_max = \" input_voltage_max; + print \"END\" + + print \"BEGIN apcupsd_${host}.input_frequency $1\"; + print \"SET input_frequency = \" input_frequency; + print \"END\" + + print \"BEGIN apcupsd_${host}.output_voltage $1\"; + print \"SET output_voltage = \" output_voltage; + print \"SET output_voltage_nominal = \" output_voltage_nominal; + print \"END\" + + print \"BEGIN apcupsd_${host}.load $1\"; + print \"SET load = \" load; + print \"END\" + + print \"BEGIN apcupsd_${host}.temp $1\"; + print \"SET temp = \" temp; + print \"END\" + + print \"BEGIN apcupsd_${host}.time $1\"; + print \"SET time = \" time; + print \"END\" + } }" # shellcheck disable=SC2181 if [ $? -ne 0 ]; then |