# rrds/apcups - electrical info from an APC UPS
# APC UPS info
source	snmp
step	30
data	onbattery=apcupsbasicbatterytimeonbattery GAUGE:1200:0:U
data	capacity=apcupsadvbatterycapacity GAUGE:1200:0:100
data	temperature=apcupsadvbatterytemperature GAUGE:1200:10:65
data	timeleft=apcupsadvbatteryruntimeremaining GAUGE:1200:0:U
data	load=apcupsadvoutputload GAUGE:1200:0:100
data	ocurrent=apcupsadvoutputcurrent GAUGE:1200:0:U
data	ovoltage=apcupsadvoutputvoltage GAUGE:1200:90:130
data	ofrequency=apcupsadvoutputfrequency GAUGE:1200:50:70
data	iphase=apcupsbasicinputphase GAUGE:1200:U:U
data	ivoltage=apcupsadvinputlinevoltage GAUGE:1200:90:130
data	ivoltagemax=apcupsadvinputmaxlinevoltage GAUGE:1200:60:170
data	ivoltagemin=apcupsadvinputminlinevoltage GAUGE:1200:60:170
data	ifrequency=apcupsadvinputfrequency GAUGE:1200:50:70
archives	day-avg week-avg month-avg 3month-avg year-avg
times	day yesterday week 3month year
alert	onbattery < 60 120 180
alert	timeleft > 15 10 5
alert	temperature < 60 65 70
oid APCUpsBasicBatteryTimeOnBattery
oid APCUpsAdvBatteryCapacity
oid APCUpsAdvBatteryTemperature
oid APCUpsAdvBatteryRunTimeRemaining
oid APCUpsAdvOutputLoad
oid APCUpsAdvOutputCurrent
oid APCUpsAdvOutputVoltage
oid APCUpsAdvOutputFrequency
oid APCUpsBasicInputPhase
oid APCUpsAdvInputLineVoltage
oid APCUpsAdvInputMaxLineVoltage
oid APCUpsAdvInputMinLineVoltage
oid APCUpsAdvInputFrequency

graph	capacity
	--title '##HOST## - Battery Capacity (##GRAPHTIME##)'
	--vertical-label '%'
	DEF:capacity=##DB##:capacity:AVERAGE
	DEF:load=##DB##:load:AVERAGE
	'LINE2:capacity###COLOR1##:battery capacity'
	'LINE2:load###COLOR2##:load'
	'GPRINT:capacity:MIN:minimum capacity=%.0lf%%'

graph	batterytime
	--title '##HOST## - Battery Times (##GRAPHTIME##)'
	--vertical-label 'min'
	DEF:onbattery=##DB##:onbattery:AVERAGE
	DEF:timeleft=##DB##:timeleft:AVERAGE
	CDEF:mintimeleft=timeleft,60,/
	CDEF:minonbattery=onbattery,60,/
	'LINE2:minonbattery###COLOR1##:on battery'
	'LINE2:mintimeleft###COLOR2##:time left'
	'GPRINT:mintimeleft:MIN:minimum %.0lf minutes left'

graph	voltage
	--title '##HOST## - Voltages (##GRAPHTIME##)'
	--vertical-label 'volts'
	DEF:ovoltage=##DB##:ovoltage:AVERAGE
	DEF:ivoltage=##DB##:ivoltage:AVERAGE
	DEF:ivoltagemax=##DB##:ivoltagemax:AVERAGE
	DEF:ivoltagemin=##DB##:ivoltagemin:AVERAGE
	'LINE1:ovoltage###COLOR1##:output'
	'LINE1:ivoltage###COLOR2##:input'
	'LINE1:ivoltagemax###COLOR3##:in max(5min)'
	'LINE1:ivoltagemin###COLOR4##:in min(5min)'

graph	temperature
	--title '##HOST## - Battery Temperature (##GRAPHTIME##)'
	--vertical-label 'degrees C'
	DEF:temperature=##DB##:temperature:AVERAGE
	'LINE2:temperature###COLOR1##'
	'GPRINT:temperature:MIN:min=%.0lf'
	'GPRINT:temperature:AVERAGE:avg=%.0lf'
	'GPRINT:temperature:MAX:max=%.0lf'

# I've never found a UPS that returned other than zero for this 
# and APC never answered my queries.
graph	current
	--title '##HOST## - Current (##GRAPHTIME##)'
	--vertical-label 'amps'
	DEF:ocurrent=##DB##:ocurrent:AVERAGE
	'LINE2:ocurrent###COLOR1##:output'
	'GPRINT:ocurrent:MIN:min=%.0lf'
	'GPRINT:ocurrent:AVERAGE:avg=%.0lf'
	'GPRINT:ocurrent:MAX:max=%.0lf'

# I've never seen this vary from 60.  You may.
graph	frequency
	--title '##HOST## - Frequency (##GRAPHTIME##)'
	--vertical-label 'Hz'
	DEF:ofrequency=##DB##:ofrequency:AVERAGE
	DEF:ifrequency=##DB##:ifrequency:AVERAGE
	'LINE2:ofrequency###COLOR1##:output'
	'LINE2:ifrequency###COLOR2##:input'

# I've never seen this vary from 1, which seems unlikely.
graph	phase
	--title '##HOST## - Phase (##GRAPHTIME##)'
	--vertical-label 'degrees'
	DEF:iphase=##DB##:iphase:AVERAGE
	'LINE2:iphase###COLOR1##'

