Self-Solve Knowledge Search

Minimize Maximize
Network Node Manager i (NNMi) Smart Plug In (SPI) Performance for Metrics: Calcu...
Title :
Network Node Manager i (NNMi) Smart Plug In (SPI) Performance for Metrics: Calculation of various Interface Metrics.
Document ID :
KM01096609
Product - Version:
network node manager ispi performance for metrics 9.10 ;
OS :
Updated :
Fri Nov 14 09:29:02 GMT 2014
Summary :
This document describes how various Interface Metrics are calculated (example Utilization In (avg), Utilization In (max), Utilization Out (avg) etc.).

The user wants to verify, or find out how Interface Metrics values (like "Utilization In (avg)", "Utilization In (max)", "Utilization Out (avg)" etc.) are calculated by the iSPI Performance for Metrics Software, using the raw data NNMi dumps (files named "InterfaceMetricsxxx.csv.gz") to the NNMi shared directory.

Solution

As a part of SNMP Performance Polling where NNMi and iSPI Performance for Metrics have been deployed, NNMi gathers counters for managed, performance-monitored interfaces, hosted on the nodes being monitored for Fault and Performance.
NNMi collects this data, and dumps them in the form of comma-separated-value (CSV) files (which may be compressed, or uncompressed) in the NNMi Shared Folder located on the NNMi server.
The NNMi Shared folder path is:

  • Windows: %NNMDataDir%shared\perfSpi\datafiles\
  • Linux: $NNMDataDir/shared/perfSpi/datafiles/

These CSV files containing the raw data gathered from devices, are named similar to "InterfaceMetrics_YYYYMMDDHHMMSSmsec.csv.gz", example "InterfaceMetrics_20140615220504850.csv.gz".
iSPI Metrics' Extract-Transform-Load (ETL) services pick up this data and process it on the iSPI Metrics Server.
 
Now, when it comes to the actual calculation of various metrics (example "Utilization In (avg)", "Utilization In (max)", "Utilization Out (avg)" etc.), a file named "dfltEtl.cfg" located on the iSPI Performance for Metrics Server at

  • %NPSDataDir%rconfig\Interface_Health\ (on Windows)
  • $NPSDataDir%rconfig/Interface_Health/ (on Linux)
    ...
    is used.


Illustrative example:-
NNMi calculates and populates the values of "ifInUtilizationPct" and "ifOutUtilizationPct" in the "InterfaceMetrics_YYYYMMDDHHMMSSmsec.csv" files that it creates. This is how the counters within the CSV files are used in calculating average, and maximum, for "Utilization", "Utilization In", "Utilization Out" metrics:-

  1. Open the "dfltEtl.cfg" file on the iSPI Performance for Metrics Server using a text editor.
  2. This file contains all formulae which form the basis of calculation of all Interface Health Metrics. Identically named formulae-files are present for all extension packs like "Component_Health", "Interface_Traffic" etc.
  3. Search for the line "Utilization In = ({{ifInUtilizationPct}} eq "")?"": {{ifInUtilizationPct}}/100".
    This is a ternary expression which means:-
    Is ifInUtilizationPct equal to NULL? If yes, then Utilization In = NULL, OR ELSE Utilization In = ifInUtilizationPct/100.

    Similarly, we have "Utilization Out = ({{ifOutUtilizationPct}} eq "")?"": {{ifOutUtilizationPct}}/100".
    Meaning:-
    Is ifOutUtilizationPct equal to NULL? If yes, then Utilization Out = NULL, OR ELSE Utilization Out = ifOutUtilizationPct /100.

    Finally, "Utilization = ( ({{ifInUtilizationPct}} || {{ifOutUtilizationPct}}) eq "" )?"": (( {{ifInUtilizationPct}} > {{ifOutUtilizationPct}} ) ? {{ifInUtilizationPct}} : {{ifOutUtilizationPct}}) / 100"
    This means:-
    Check if either ifInUtilizationPct OR ifOutUtilizationPct EQUAL NULL
                                                    If yes, then Utilization = NULL
     
                                                    If not, then
                                                                    Check if ifInUtilizationPct is GREATER THAN ifOutUtilizationPct
                                                                    If yes, then
                                                                                    Utilization = ifInUtilizationPct/100                             //same as Utilization In
                                                                    If not, then
                                                                                    Utilization = ifOutUtilizationPct/100                          //same as Utilization Out
  4. Consider that 3 samples were taken, for an interface named "Fa0/1", in three 5-minute polls:-
    [In this example, assumed (dummy) values of "ifInUtilizationPct" and "ifOutUtilizationPct" have been taken for the sake of simplicity]
     
    At time 10:00                 Utilization In(sample 1) = ifInUtilizationPct/100 = 10,                 Utilization Out(sample 1) = ifOutUtilizationPct/100 = 2
    At time 10:05                 Utilization In(sample 2) = ifInUtilizationPct/100 = 12,                 Utilization Out(sample 1) = ifOutUtilizationPct/100 =10
    At time 10:10                 Utilization In(sample 3) = ifInUtilizationPct/100 = 22,                 Utilization Out(sample 3)
    = ifOutUtilizationPct/100 =21
     
    None of the above values are null, therefore:-
    Utilization(sample 1) = 10                       (bigger value of Utilization In and Utilization Out)
    Utilization(sample 2) = 12                      
    (bigger value of Utilization In and Utilization Out)
    Utilization(sample 3) = 22                       (bigger value of Utilization In and Utilization Out)
     
    Further:
     
    Utilization In (avg) = (Utilization In value in samples 1 + 2 + 3) / (number of samples) = (10+12+22)/3 = 14.66
    Utilization In (max) = (highest values among collected samples for time period T) = highest among (10,12,22) = 22.00
     
    Utilization Out (avg) = (Utilization Out value in samples 1 + 2 + 3) / (number of samples) = (2+10+21)/3 = 11
    Utilization Out (max) = (highest values among collected samples for time period T) = highest among (2,10,21) = 21.00
     
    Utilization (avg) = (Utilization values calculated for samples 1 + 2 + 3)/ (number of samples) = (10+12+22)/3 = 14.66
  5. Similarly, formulae for other metrics such as "Throughput In (bps)", "Throughput Out (bps)" etc. are also present in the file, and each includes easy-to-decode english language comments for user interpretation.

Additional Info:-
Please read the public visible document from Cisco (this method/knowledge is not Cisco Proprietary, but RFC/IEEE standard), on how bandwidth is calculated for interfaces:-
http://www.cisco.com/image/gif/paws/8141/calculate_bandwidth_snmp.pdf

Useful iSPI Performance for Metrics Troubleshooting links:-

Troubleshooting NNM iSPI Performance for Metrics issues
Troubleshooting NNM iSPI Performance for Metrics issues from the NNMi perspective
Troubleshooting NNM iSPI Performance for Metrics issues from the Network Performance Server perspective
Troubleshooting NNMi - NPS data sharing issues
 NNMi in Application Failover and NPS file sharing mechanism 
Interface metrics are missing for some interfaces but available for some others on same node
What does the performance spi enablement script perform and when can it be run
 Files that are being backed up by backup.ovpl when option -c, -d or -f is specified
SCD type1 versus SCD type2 topology group tracking methods
NNMi 9.10 Baseline Metrics
 NPS + iSPI Performance Baselines and Forecasts
Performance Reports showing no data for node groups configured in NNM.
Performance Reports showing no data for some nodes
Utilization, Error Rate or Discard Rate shown as unavailable for an interface
Dumping the StatePoller Collections to troubleshoot a device specific Fault or Performance monitoring issue
Dumping all the CustomPoller collections performed on a particular node into a file 
Node Components specific columns are missing in the Performance reports
StatePoller Fault and Performance Monitoring Policies
NNMi 9.11 StatePoller Fault and Performance Monitoring Policies
How to shrink the Sybase IQ DB by truncating unused DB space