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

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

book

calendar_today

#### 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