How to ascertain the source of metrics and the equations for them in DX NetOps CA Performance Management (CAPM)
search cancel

How to ascertain the source of metrics and the equations for them in DX NetOps CA Performance Management (CAPM)

book

Article ID: 368119

calendar_today

Updated On:

Products

DX NetOps CA Performance Management - Usage and Administration

Issue/Introduction

The metrics in (CAPM) are obtained either directly from the values of related Object IDs (OIDs) from the device MIBs or alternately, are calculated based off these OIDs. How can the source OIDs be identified and the calculations verified?

Environment

DX NetOps CAPM all supported releases

Resolution

Using Percent Discards as an example, it is calculated from both OIDs and another value - CalculatedSpeedIn

The override speed, if set, will be the value for CalculatedSpeedIn.

If you look at the Metric (Percent Discards) and look at the Vendor Certification (VC), it comes from High Speed Interface:

 

The CalculatedSpeedIn is the speed of the Interface in bits/s. It can be obtained from the MIB data of the device when it is initially discovered or you can set it manually as per the following:

TechDocs : DX NetOps 23.3 : Override Speed In and Speed Out Values on Interfaces

The override speed, if set, will be the value for CalculatedSpeedIn.

So in the equation (summarised below):

Percent Discards = isdef(ifHCOutUcastPkts) ? (CalculatedSpeedIn >= 650000000 ? a : b) : c

  1. If CalculatedSpeedIn is greater than or equal to 650000000, then use value a. If not, then use value b.

  2. If ifHCOutUcastPkts has a valid value (i.e. positive integer obtained from the MIB data of the device), then Percent Discards will equal the value from step 1. If not, it will equal c.

 

Now, if you go to the DA command line and search for VC "High Speed Interface" under the certifications folder:

/opt/IMDataAggregator/data/certifications/CA_23.3.5.3/vendor_certs

You will see the following Vendor Certifications:

$ grep -i "High Speed Interface" *

im.ca.com-certifications-snmp-IfXTableMibWithoutIfTable.xml:    <Documentation>Supports interfaces based on the high speed interfaces table that do not support the low speed interface table.</Documentation>

im.ca.com-certifications-snmp-IfXTableMibWithoutIfTable.xml:    <DisplayName>High Speed Interface (Exclusive)</DisplayName>

im.ca.com-certifications-snmp-IfXTableMib.xml:    <Documentation>Supports interfaces based on the high speed interfaces table.</Documentation> 

im.ca.com-certifications-snmp-IfXTableMib.xml:    <DisplayName>High Speed Interface</DisplayName>

im.ca.com-certifications-snmp-IfXTablewithFortinetSpeedMib.xml:    <Documentation>Supports interfaces based on the high speed interfaces table and Fortinet Bandwidth.</Documentation> 

im.ca.com-certifications-snmp-JuniperIfXTableMib.xml:    <Documentation>Supports interfaces based on the high speed interfaces

im.ca.com-certifications-snmp-JuniperIfXTableMib.xml:    <DisplayName>Juniper High Speed Interface</DisplayName>

The one we are interested in is the generic one:

im.ca.com-certifications-snmp-IfXTableMib.xml

So, searching in this for CalculatedSpeedIn, we see:

$ grep -i CalculatedSpeedIn im.ca.com-certifications-snmp-IfXTableMib.xml

          <Variable name="CalculatedSpeedIn">isdef(SpeedInOverride) ? SpeedInOverride : RawIfSpeed</Variable>

        <Expression destAttr="Utilization">CalculatedUtilization=(CalculatedSpeedIn&gt; 20000000 &amp;&amp; isdef(CalculatedIfHCInOctets))

                                                  (CalculatedSpeedIn*_rspDuration))*100):snmpProtectedDiv(((CalculatedIfHCInOctets+CalculatedIfHCOutOctets)*8),

                                                  (CalculatedSpeedIn*_rspDuration))*100):snmpProtectedDiv(((CalculatedIfHCInOctets+CalculatedIfHCOutOctets)*8),

                                                  (CalculatedSpeedIn*_rspDuration))*100)

                                                  (CalculatedSpeedIn*_rspDuration))*100:(snmpProtectedDiv(((CalculatedIfInOctets+CalculatedIfOutOctets)*8),(CalculatedSpeedIn*_rspDuration)))*100)

                                                                                 :(snmpProtectedDiv(((CalculatedIfInOctets+CalculatedIfOutOctets)*8),(CalculatedSpeedIn*_rspDuration)))*100);

        <Expression destAttr="UtilizationIn">CalculatedUtilizationIn=(CalculatedSpeedIn &gt; 20000000 &amp;&amp; isdef(CalculatedIfHCInOctets))

                                                   ? snmpProtectedDiv((CalculatedIfHCInOctets*8),(CalculatedSpeedIn*_rspDuration))*100

                                                   : snmpProtectedDiv((CalculatedIfInOctets*8),(CalculatedSpeedIn*_rspDuration))*100;

                                        ?  (CalculatedSpeedIn &gt;= 650000000 

        ?  ( CalculatedSpeedIn &gt;= 650000000 

        <Expression destAttr="NonunicastIn">(CalculatedSpeedIn &gt;= 650000000 &amp;&amp; isdef(ifHCInMulticastPkts))

        <Expression destAttr="Nonunicast">(CalculatedSpeedIn &gt;= 650000000 &amp;&amp; isdef(ifHCInMulticastPkts))  

                                            ? (CalculatedSpeedIn &gt;= 650000000 

                                               ? (CalculatedSpeedIn &gt;= 650000000  

                                          ? (CalculatedSpeedIn &gt;= 650000000

                                            ? ( CalculatedSpeedIn &gt;= 650000000

        <Expression destAttr="Unicast">(CalculatedSpeedIn &gt;= 650000000 &amp;&amp; isdef (ifHCInUcastPkts))

        <Expression destAttr="UnicastIn">(CalculatedSpeedIn &gt;= 650000000 &amp;&amp; isdef (ifHCInUcastPkts)) 

        <Expression destAttr="UnicastPerSecond">(CalculatedSpeedIn &gt;= 650000000 &amp;&amp; isdef (ifHCInUcastPkts))

        <Expression destAttr="UnicastInPerSecond">(CalculatedSpeedIn &gt;= 650000000 &amp;&amp; isdef (ifHCInUcastPkts)) 

        <Expression destAttr="FrameSizeIn">snmpProtectedDiv((CalculatedSpeedIn &gt; 20000000 &amp;&amp; isdef (CalculatedIfHCInOctets) )

        ? ( CalculatedSpeedIn &gt;= 650000000 

        <Expression destAttr="FrameSize">snmpProtectedDiv((CalculatedSpeedIn &gt; 20000000 &amp;&amp; isdef (CalculatedIfHCInOctets))

         ?( CalculatedSpeedIn &gt;= 650000000 

        <Expression destAttr="Bits">(CalculatedSpeedIn &gt; 20000000 &amp;&amp; isdef (CalculatedIfHCInOctets)) 

<Expression destAttr="BitsPerSecond">(CalculatedSpeedIn &gt; 20000000 &amp;&amp; isdef (CalculatedIfHCInOctets)) 

<Expression destAttr="BitsPerSecondIn"><![CDATA[(CalculatedSpeedIn > 20000000 && isdef(ifHCInOctets) && ifHCInOctets > 0)?  snmpProtectedDiv((ifHCInOctets*8),_rspDuration) : (ifInOctets <= maxOctets20Mbps ?  snmpProtectedDiv( (ifInOctets*8) ,_rspDuration) : null)]]></Expression>

        <Expression destAttr="BitsIn">(CalculatedSpeedIn &gt; 20000000 &amp;&amp; isdef(ifHCInOctets) &amp;&amp; ifHCInOctets &gt; 0) 

The first line returned defines the variable:

<Variable name="CalculatedSpeedIn">isdef(SpeedInOverride) ? SpeedInOverride : RawIfSpeed</Variable>

The equation looks for the SpeedInOverride. If it is set, it will be used. If not, then it will use the RawIfSpeed

The RawIfSpeed will come from the MIB OID - ifHighSpeed : 1.3.6.1.2.1.31.1.1.1.15