Menu

#5 Wrong threshold calculation for Cisco templates

open
nobody
None
5
2009-02-03
2009-02-03
Anonymous
No

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.

Discussion

  • Nobody/Anonymous

    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
    +

     
  • Nobody/Anonymous

    Be careful with the patch as it also changes from normal counters to highspeed counters.

     
  • Nobody/Anonymous

    The same applies for if_dsc

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.