3 Replies Latest reply on Oct 5, 2011 8:21 AM by ChuckBrown

    NPM Custom Poller or Transform Rate Feature

    ebradford

      For additional info describing the need, please see: Alerting on errors as a percentage of traffic/packets

      Would it be possible to develop a {CustomPoller.Rate} field which stores the immediately previous {CustomPoller} value? If this were available to us, we could use the custom poller to compare deltas of values over time. Example, if you wanted to know the percentage of packets which are drops over the last minute, you would set-up a custom poller for each of HC out packets (UCast, Mcast, Bcast) and one for Out Discards. Then, you would calculate deltas for each, and the comparison would then be a simple addition and division. You could then alert on if the result surpassed a certain threshold. In order to that time lines match, the four pollers would have to poll at same intervals, such as every minute.

      CustomPollers:

      ifHCOutUcastPkts 1.3.6.1.2.1.31.1.1.1.11

      ifHCOutMcastPkts 1.3.6.1.2.1.31.1.1.1.12

      ifHCOutBcastPkts 1.3.6.1.2.1.31.1.1.1.13

      ifOutDiscards 1.3.6.1.2.1.2.1.19

      Transforms:

      DeltaBCastOut = ifHCOutBcastPkts - ifHCOutBcastPkts.Rate

      DeltaMCastOut = ifHCOutMcastPkts - ifHCOutMcastPkts.Rate

      DeltaUCastOut = ifHCOutUcastPkts - ifHCOutUcastPkts.Rate

      DeltaOutDiscards = ifOutDiscards - ifOutDiscards.Rate

      Final Transform:

      ifOutDropPercent = DeltaOutDiscards / (DeltaBCastOut + DeltaMCastOut + DeltaUCastOut)

      Alert if ifOutDropPercent >= 20%

      Of course, if two pollers are at different intervals for some reason, the poller could be normalized by creating a delta of a time ticker (such as 1.3.6.1.2.1.1.3 sysUpTime), and dividing by time. Another good thing about the .Rate field is that if one doesn't care about graphs, and only cares about current rate, then the administrator wouldn't have to select keep historical data -- allowing more frequest polls without wasting database space.