I am of the opinion that the threshold calculation for
if_err and if_dsc tests is not sensible.
An error/packet ratio would be better as it is very unlikely to
have a high error/bit ratio. E.g. 10 packets (500 bytes each) have
to be transmitted and all of them fail. We would have an error load of
.0250 which is far away from the threshold despite 100% loss.
Index: if_err/thresholds
--- if_err/thresholds (revision 30)
+++ if_err/thresholds (working copy)
@@ -1,7 +1,7 @@
# Create thresholds for all the error rate counters
# oid name : color : limit : Error message
-ifInErrPct : yellow : 5 : {ifName}{ifAliasBox} - High input error rate ({ifInErrPct}%)
-ifInErrPct : red : 10 : {ifName}{ifAliasBox} - Very high input error rate ({ifInErrPct}%)
-ifOutErrPct : yellow : 5 : {ifName}{ifAliasBox} - High output error rate ({ifOutErrPct}%)
-ifOutErrPct : red : 10 : {ifName}{ifAliasBox} - Very high output error rate ({ifOutErrPct}%)
+ifInErrPct : yellow : 3 : {ifName}{ifAliasBox} - High input error rate ({ifInErrPct}%)
+ifInErrPct : red : 5 : {ifName}{ifAliasBox} - Very high input error rate ({ifInErrPct}%)
+ifOutErrPct : yellow : 3 : {ifName}{ifAliasBox} - High output error rate ({ifOutErrPct}%)
+ifOutErrPct : red : 5 : {ifName}{ifAliasBox} - Very high output error rate ({ifOutErrPct}%)
Index: if_err/message
===================================================================
--- if_err/message (revision 30)
+++ if_err/message (working copy)
@@ -1,11 +1,6 @@
<b>Errors:</b>
Input errors: yellow={ifInErrPct.thresh:yellow}%, red={ifInErrPct.thresh:red}%
Output errors: yellow={ifOutErrPct.thresh:yellow}%, red={ifOutErrPct.thresh:red}%
-
TABLE:rrd(DS:ds0:ifInErrors:COUNTER; DS:ds1:ifOutErrors:COUNTER)
-Ifc name|Errors in|Error rate in|Error load in|Errors out|Error rate out|Error load out
-{ifName}{ifAliasBox}|{ifInErrors}|{ifInEps}|{ifInErrPct.color}{ifInErrPct}%{ifInErrPct.errors}|{ifOutErrors}|{ifOutEps}|{ifOutErrPct.color}{ifOutErrPct}%{ifOutErrPct.errors}
-
-Note:
-Error rates are per second, averaged over a 60 second interval.
-Load percentages are based on error/bit ratio.
+Ifc name|Packets/s (in/out)|Errors (in/out)|Errors/s (in/out)|Error load in|Error load out
+{ifName}{ifAliasBox}|{ifHCInPps}/{ifHCOutPps}|{ifInErrors}/{ifOutErrors}|{ifInEps}/{ifOutEps}|{ifInErrPct.color}{ifInErrPct}%{ifInErrPct.errors}|{ifOutErrPct.color}{ifOutErrPct}%{ifOutErrPct.errors}
Index: if_err/oids
===================================================================
--- if_err/oids (revision 30)
+++ if_err/oids (working copy)
@@ -1,7 +1,12 @@
ifName : .1.3.6.1.2.1.31.1.1.1.1 : branch
ifAlias : .1.3.6.1.2.1.31.1.1.1.18 : branch
-ifSpeed : .1.3.6.1.2.1.2.2.1.5 : branch
-ifInOctets : .1.3.6.1.2.1.2.2.1.10 : branch
+
+ifHCInUcastPkts : .1.3.6.1.2.1.31.1.1.1.7 : branch
+ifHCInMulticastPkts : .1.3.6.1.2.1.31.1.1.1.8 : branch
+ifHCInBroadcastPkts : .1.3.6.1.2.1.31.1.1.1.9 : branch
ifInErrors : .1.3.6.1.2.1.2.2.1.14 : branch
-ifOutOctets : .1.3.6.1.2.1.2.2.1.16 : branch
+
+ifHCOutUcastPkts : .1.3.6.1.2.1.31.1.1.1.11 : branch
+ifHCOutMulticastPkts : .1.3.6.1.2.1.31.1.1.1.12 : branch
+ifHCOutBroadcastPkts : .1.3.6.1.2.1.31.1.1.1.13 : branch
ifOutErrors : .1.3.6.1.2.1.2.2.1.20 : branch
Index: if_err/transforms
===================================================================
--- if_err/transforms (revision 30)
+++ if_err/transforms (working copy)
@@ -1,15 +1,17 @@
-# Get bit speed delta (so we dont have to provide custom delta limit)
-ifInOps : DELTA : {ifInOctets}
-ifOutOps : DELTA : {ifOutOctets}
-# Convert our octets delta into bits per second
-ifInBps : MATH : {ifInOps} x 8
-ifOutBps : MATH : {ifOutOps} x 8
+# Create an alias in a bracketed box, or nothing if alias is blank
+ifAliasBox : REGSUB : {ifAlias} /(\S+.*)/ [$1]/
+
+# Calculating packets per second
+ifHCInPkts : MATH : {ifHCInUcastPkts} + {ifHCInMulticastPkts} + {ifHCInBroadcastPkts}
+ifHCOutPkts : MATH : {ifHCOutUcastPkts} + {ifHCOutMulticastPkts} + {ifHCOutBroadcastPkts}
+ifHCInPps : DELTA : {ifHCInPkts}
+ifHCOutPps : DELTA : {ifHCOutPkts}
+
# Do delta transform on all error counters
ifInEps : DELTA : {ifInErrors}
ifOutEps : DELTA : {ifOutErrors}
-# Perform error to traffic percentage calculations
-ifInErrPct : MATH : ({ifInEps} / {ifInBps}) x 100
-ifOutErrPct : MATH : ({ifOutEps} / {ifOutBps}) x 100
-# Create an alias in a bracketed box, or nothing if alias is blank
-ifAliasBox : REGSUB : {ifAlias} /(\S+.*)/ [$1]/
+# Perform error to packets percentage calculations
+ifInErrPct : MATH : ({ifInEps} / {ifHCInPps}) x 100
+ifOutErrPct : MATH : ({ifOutEps} / {ifHCOutPps}) x 100
+
Be careful with the patch as it also changes from normal counters to highspeed counters.
The same applies for if_dsc