Uploaded image for project: 'OpenNMS'
  1. OpenNMS
  2. NMS-6788

Large values of snmpifspeed come out negative when used in resource-filter

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Fixed
    • 1.12.9, 1.13.4
    • 14.0.0
    • Data Collection - SNMP
    • Security Level: Default (Default Security Scheme)
    • Any system with 10Gbps interfaces represented in the snmpinterface table and thresholds configured with "snmpifspeed" as the attribute in a resource-filter

    Description

      Created from support ticket https://mynms.opennms.com/Ticket/Display.html?id=3217

      Sanitized details from that ticket:

              <threshold description="ifInErrors auf Backbone-Port" type="high"
                  ds-type="if" value="0.0001" rearm="0.0" trigger="1"
                  ds-label="ifName"
                  triggeredUEI="uei.example.org/threshold/BackboneIfInErrorsExceeded"
                  rearmedUEI="uei.example.org/threshold/BackboneIfInErrorsRearmed"
                  filterOperator="or" ds-name="ifInErrors">
                  <resource-filter field="snmpifspeed">^[1-9]+[0-9]{10,12}$</resource-filter>
              </threshold>
      

      Up to something less than 10 GBit/s it seems to be working using
      <resource-filter field="snmpifspeed">^[1-9]+[0-9]

      Unknown macro: {0,9}

      $</resource-filter>
      but maybe we miss some interfaces, see explanation below.

      We turned DEBUG level loging on for collectd. From collectd:

      fgrep "value of snmpifspeed is" collectd.log* | cut -d: -f6 | sed -e"s/ the value of snmpifspeed is //" | sort -u

      so we see "the value of snmpifspeed is":

      0. Pass filter? false
      1000000000. Pass filter? false
      1000000000. Pass filter? true
      100000000. Pass filter? false
      100000000. Pass filter? true
      10000000. Pass filter? false
      10000000. Pass filter? true
      -1294967296. Pass filter? false
      1345294336. Pass filter? false
      1345294336. Pass filter? true
      1410065408. Pass filter? false
      1410065408. Pass filter? true
      -1474836480. Pass filter? false
      1705032704. Pass filter? false
      1705032704. Pass filter? true
      2000000000. Pass filter? false
      2000000000. Pass filter? true
      23000. Pass filter? false
      23000. Pass filter? true
      -294967296. Pass filter? false
      -589934592. Pass filter? False

      But no negavite values appear in snmpinterface.snmpifspeed in the database.

      Attachments

        Activity

          People

            jeffg Jeff Gehlbach
            jeffg Jeff Gehlbach
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: