Share via


System.NetworkManagement.NetworkAdapter.Utilization

Applies To: System Center 2012 - Operations Manager, System Center 2012 R2 Operations Manager, System Center 2012 SP1 - Operations Manager

The System.NetworkManagement.NetworkAdapter.Utilization data source module type provides System.Performance.Data type data regarding an SNMP node’s utilization. The current utilization of a port or interface is the ratio, of the total number of bits sent over some interval over the total number of bits that could have been sent in that same interval.

Usage

This module retrieves performance information regarding the utilization on the specified SNMP node. Not all devices provide the information necessary to use this module; you need to know the OIDs for the maximum speed, the number of inbound octets, and the number of outbound octets.

Type Definition

<DataSourceModuleType ID="System.NetworkManagement.NetworkAdapter.Utilization" Accessibility="Public" Batching="false">
  <Configuration>
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element maxOccurs="1" name="NoOfRetries" type="xsd:unsignedInt" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element maxOccurs="1" name="Timeout" type="xsd:unsignedInt" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="OIDMaxSpeed" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="OIDInOctets" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="OIDOutOctets" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="MaxSpeedFactor" type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="DefaultValue" type="xsd:double" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
  </Configuration>
  <OverrideableParameters>
    <OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
    <OverrideableParameter ID="NoOfRetries" Selector="$Config/NoOfRetries$" ParameterType="int" />
    <OverrideableParameter ID="Timeout" Selector="$Config/Timeout$" ParameterType="int" />
  </OverrideableParameters>
  <ModuleImplementation Isolation="Any">
    <Composite>
      <MemberModules>
        <DataSource ID="Computation" TypeID="System.NetworkManagement.ComputedPerfProvider.Division">
          <Interval>$Config/Interval$</Interval>
          <NoOfRetries>$Config/NoOfRetries$</NoOfRetries>
          <Timeout>$Config/Timeout$</Timeout>
          <SnmpVarBinds>
            <SnmpVarBind>
              <OID>$Config/OIDMaxSpeed$</OID>
              <Syntax>0</Syntax>
              <Value VariantType="8" />
            </SnmpVarBind>
            <SnmpVarBind>
              <OID>$Config/OIDInOctets$</OID>
              <Syntax>0</Syntax>
              <Value VariantType="8" />
            </SnmpVarBind>
            <SnmpVarBind>
              <OID>$Config/OIDOutOctets$</OID>
              <Syntax>0</Syntax>
              <Value VariantType="8" />
            </SnmpVarBind>
          </SnmpVarBinds>
          <Numerator>
            <Product>
              <NumericValue>
                <BranchValueExpression>
                  <Expression>
                    <SimpleExpression>
                      <ValueExpression>
                        <Value Type="String">$Target/Property[Type="NetworkLibrary!System.NetworkManagement.NetworkAdapter"]/DuplexMode$</Value>
                      </ValueExpression>
                      <Operator>Equal</Operator>
                      <ValueExpression>
                        <Value Type="String">FULLDUPLEX</Value>
                      </ValueExpression>
                    </SimpleExpression>
                  </Expression>
                  <TrueValueExpression>
                    <NumericValue>
                      <BranchValueExpression>
                        <Expression>
                          <SimpleExpression>
                            <ValueExpression>
                              <NumericValue>
                                <Delta DeltaComputationType="RatePerSecond">
                                  <NumericValue>
                                    <!--<Value Type="Double">$Data/SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value$</Value>-->
                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                  </NumericValue>
                                </Delta>
                              </NumericValue>
                            </ValueExpression>
                            <Operator>GreaterEqual</Operator>
                            <ValueExpression>
                              <NumericValue>
                                <Delta DeltaComputationType="RatePerSecond">
                                  <NumericValue>
                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                  </NumericValue>
                                </Delta>
                              </NumericValue>
                            </ValueExpression>
                          </SimpleExpression>
                        </Expression>
                        <TrueValueExpression>
                          <NumericValue>
                            <BranchValueExpression>
                              <Expression>
                                <SimpleExpression>
                                  <ValueExpression>
                                    <NumericValue>
                                      <Division>
                                        <NumericValue>
                                          <Delta DeltaComputationType="RatePerSecond">
                                            <NumericValue>
                                              <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                            </NumericValue>
                                          </Delta>
                                        </NumericValue>
                                        <NumericValue>
                                          <Product>
                                            <NumericValue>
                                              <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                            </NumericValue>
                                            <NumericValue>
                                              <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                            </NumericValue>
                                          </Product>
                                        </NumericValue>
                                      </Division>
                                    </NumericValue>
                                  </ValueExpression>
                                  <Operator>Greater</Operator>
                                  <ValueExpression>
                                    <NumericValue>
                                      <Value Type="Double">0.125</Value>
                                    </NumericValue>
                                  </ValueExpression>
                                </SimpleExpression>
                              </Expression>
                              <TrueValueExpression>
                                <NumericValue>
                                  <Product>
                                    <NumericValue>
                                      <Value Type="Double">0.125</Value>
                                    </NumericValue>
                                    <NumericValue>
                                      <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                    </NumericValue>
                                    <NumericValue>
                                      <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                    </NumericValue>
                                  </Product>
                                </NumericValue>
                              </TrueValueExpression>
                              <FalseValueExpression>
                                <NumericValue>
                                  <Delta DeltaComputationType="RatePerSecond">
                                    <NumericValue>
                                      <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                    </NumericValue>
                                  </Delta>
                                </NumericValue>
                              </FalseValueExpression>
                            </BranchValueExpression>
                          </NumericValue>
                        </TrueValueExpression>
                        <FalseValueExpression>
                          <NumericValue>
                            <BranchValueExpression>
                              <Expression>
                                <SimpleExpression>
                                  <ValueExpression>
                                    <NumericValue>
                                      <Division>
                                        <NumericValue>
                                          <Delta DeltaComputationType="RatePerSecond">
                                            <NumericValue>
                                              <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                            </NumericValue>
                                          </Delta>
                                        </NumericValue>
                                        <NumericValue>
                                          <Product>
                                            <NumericValue>
                                              <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                            </NumericValue>
                                            <NumericValue>
                                              <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                            </NumericValue>
                                          </Product>
                                        </NumericValue>
                                      </Division>
                                    </NumericValue>
                                  </ValueExpression>
                                  <Operator>Greater</Operator>
                                  <ValueExpression>
                                    <NumericValue>
                                      <Value Type="Double">0.125</Value>
                                    </NumericValue>
                                  </ValueExpression>
                                </SimpleExpression>
                              </Expression>
                              <TrueValueExpression>
                                <NumericValue>
                                  <Product>
                                    <NumericValue>
                                      <Value Type="Double">0.125</Value>
                                    </NumericValue>
                                    <NumericValue>
                                      <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                    </NumericValue>
                                    <NumericValue>
                                      <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                    </NumericValue>
                                  </Product>
                                </NumericValue>
                              </TrueValueExpression>
                              <FalseValueExpression>
                                <NumericValue>
                                  <Delta DeltaComputationType="RatePerSecond">
                                    <NumericValue>
                                      <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                    </NumericValue>
                                  </Delta>
                                </NumericValue>
                              </FalseValueExpression>
                            </BranchValueExpression>
                          </NumericValue>
                        </FalseValueExpression>
                      </BranchValueExpression>
                    </NumericValue>
                  </TrueValueExpression>
                  <FalseValueExpression>
                    <NumericValue>
                      <BranchValueExpression>
                        <Expression>
                          <SimpleExpression>
                            <ValueExpression>
                              <NumericValue>
                                <Division>
                                  <NumericValue>
                                    <Summation>
                                      <NumericValue>
                                        <Delta DeltaComputationType="RatePerSecond">
                                          <NumericValue>
                                            <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                          </NumericValue>
                                        </Delta>
                                      </NumericValue>
                                      <NumericValue>
                                        <Delta DeltaComputationType="RatePerSecond">
                                          <NumericValue>
                                            <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                          </NumericValue>
                                        </Delta>
                                      </NumericValue>
                                    </Summation>
                                  </NumericValue>
                                  <NumericValue>
                                    <Product>
                                      <NumericValue>
                                        <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                      </NumericValue>
                                      <NumericValue>
                                        <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                      </NumericValue>
                                    </Product>
                                  </NumericValue>
                                </Division>
                              </NumericValue>
                            </ValueExpression>
                            <Operator>Greater</Operator>
                            <ValueExpression>
                              <Value Type="Double">0.125</Value>
                            </ValueExpression>
                          </SimpleExpression>
                        </Expression>
                        <TrueValueExpression>
                          <NumericValue>
                            <BranchValueExpression>
                              <Expression>
                                <SimpleExpression>
                                  <ValueExpression>
                                    <NumericValue>
                                      <Delta DeltaComputationType="RatePerSecond">
                                        <NumericValue>
                                          <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                        </NumericValue>
                                      </Delta>
                                    </NumericValue>
                                  </ValueExpression>
                                  <Operator>GreaterEqual</Operator>
                                  <ValueExpression>
                                    <NumericValue>
                                      <Delta DeltaComputationType="RatePerSecond">
                                        <NumericValue>
                                          <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                        </NumericValue>
                                      </Delta>
                                    </NumericValue>
                                  </ValueExpression>
                                </SimpleExpression>
                              </Expression>
                              <TrueValueExpression>
                                <NumericValue>
                                  <BranchValueExpression>
                                    <Expression>
                                      <SimpleExpression>
                                        <ValueExpression>
                                          <NumericValue>
                                            <Division>
                                              <NumericValue>
                                                <Delta DeltaComputationType="RatePerSecond">
                                                  <NumericValue>
                                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                                  </NumericValue>
                                                </Delta>
                                              </NumericValue>
                                              <NumericValue>
                                                <Product>
                                                  <NumericValue>
                                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                                  </NumericValue>
                                                  <NumericValue>
                                                    <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                                  </NumericValue>
                                                </Product>
                                              </NumericValue>
                                            </Division>
                                          </NumericValue>
                                        </ValueExpression>
                                        <Operator>Greater</Operator>
                                        <ValueExpression>
                                          <NumericValue>
                                            <Value Type="Double">0.125</Value>
                                          </NumericValue>
                                        </ValueExpression>
                                      </SimpleExpression>
                                    </Expression>
                                    <TrueValueExpression>
                                      <NumericValue>
                                        <Product>
                                          <NumericValue>
                                            <Value Type="Double">0.125</Value>
                                          </NumericValue>
                                          <NumericValue>
                                            <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                          </NumericValue>
                                          <NumericValue>
                                            <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                          </NumericValue>
                                        </Product>
                                      </NumericValue>
                                    </TrueValueExpression>
                                    <FalseValueExpression>
                                      <NumericValue>
                                        <Delta DeltaComputationType="RatePerSecond">
                                          <NumericValue>
                                            <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                          </NumericValue>
                                        </Delta>
                                      </NumericValue>
                                    </FalseValueExpression>
                                  </BranchValueExpression>
                                </NumericValue>
                              </TrueValueExpression>
                              <FalseValueExpression>
                                <NumericValue>
                                  <BranchValueExpression>
                                    <Expression>
                                      <SimpleExpression>
                                        <ValueExpression>
                                          <NumericValue>
                                            <Division>
                                              <NumericValue>
                                                <Delta DeltaComputationType="RatePerSecond">
                                                  <NumericValue>
                                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                                  </NumericValue>
                                                </Delta>
                                              </NumericValue>
                                              <NumericValue>
                                                <Product>
                                                  <NumericValue>
                                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                                  </NumericValue>
                                                  <NumericValue>
                                                    <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                                  </NumericValue>
                                                </Product>
                                              </NumericValue>
                                            </Division>
                                          </NumericValue>
                                        </ValueExpression>
                                        <Operator>Greater</Operator>
                                        <ValueExpression>
                                          <NumericValue>
                                            <Value Type="Double">0.125</Value>
                                          </NumericValue>
                                        </ValueExpression>
                                      </SimpleExpression>
                                    </Expression>
                                    <TrueValueExpression>
                                      <NumericValue>
                                        <Product>
                                          <NumericValue>
                                            <Value Type="Double">0.125</Value>
                                          </NumericValue>
                                          <NumericValue>
                                            <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
                                          </NumericValue>
                                          <NumericValue>
                                            <Value Type="Double">$Config/MaxSpeedFactor$</Value>
                                          </NumericValue>
                                        </Product>
                                      </NumericValue>
                                    </TrueValueExpression>
                                    <FalseValueExpression>
                                      <NumericValue>
                                        <Delta DeltaComputationType="RatePerSecond">
                                          <NumericValue>
                                            <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                          </NumericValue>
                                        </Delta>
                                      </NumericValue>
                                    </FalseValueExpression>
                                  </BranchValueExpression>
                                </NumericValue>
                              </FalseValueExpression>
                            </BranchValueExpression>
                          </NumericValue>
                        </TrueValueExpression>
                        <FalseValueExpression>
                          <NumericValue>
                            <Summation>
                              <NumericValue>
                                <Delta DeltaComputationType="RatePerSecond">
                                  <NumericValue>
                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDInOctets$"]/Value</XPathQuery>
                                  </NumericValue>
                                </Delta>
                              </NumericValue>
                              <NumericValue>
                                <Delta DeltaComputationType="RatePerSecond">
                                  <NumericValue>
                                    <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDOutOctets$"]/Value</XPathQuery>
                                  </NumericValue>
                                </Delta>
                              </NumericValue>
                            </Summation>
                          </NumericValue>
                        </FalseValueExpression>
                      </BranchValueExpression>
                    </NumericValue>
                  </FalseValueExpression>
                </BranchValueExpression>
              </NumericValue>
              <NumericValue>
                <Value Type="Double">800.0</Value>
              </NumericValue>
            </Product>
          </Numerator>
          <Denominator>
            <Product>
              <NumericValue>
                <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/OIDMaxSpeed$"]/Value</XPathQuery>
              </NumericValue>
              <NumericValue>
                <Value>$Config/MaxSpeedFactor$</Value>
              </NumericValue>
            </Product>
          </Denominator>
          <DefaultValue>$Config/DefaultValue$</DefaultValue>
          <ObjectName>Interface</ObjectName>
          <CounterName>Utilization %</CounterName>
        </DataSource>
      </MemberModules>
      <Composition>
        <Node ID="Computation" />
      </Composition>
    </Composite>
  </ModuleImplementation>
  <OutputType>Performance!System.Performance.Data</OutputType>
</DataSourceModuleType>

Parameters

The System.NetworkManagement.NetworkAdapter.Utilization module supports the following configuration parameters:

Parameter Type Overrideable Description

Interval

Integer

True

Required parameter. Contains the interval, in seconds, at which the probe performs the SNMP operation.

NoOfRetries

Integer

True

Required parameter. The number of times that an SNMP GET operation will retry if it times out.

Timeout

Integer

True

Required parameter. The amount of time (in milliseconds) before an SNMP GET operation times out.

OIDMaxSpeed

String

False

Required parameter. The OID for the maximum speed on the SNMP node.

OIDInOctets

String

False

Required parameter. The OID for the number of input octets on the SNMP node.

OIDOutOctets

String

False

Required parameter. The OID for the number of output octets on the SNMP node.

MaxSpeedFactor

Integer

False

Required parameter. This parameter must be an integer that is used to determine the total number of bits the device is capable of transmitting per second. For example, if the OID of a device specifies an estimate of the bandwidth in a unit of 1,000,000’s of bits per second, a MaxSpeedFactor of 1000000 would be specified to determine the maximum number of bits per second the device can transmit. The 1000000 MaxSpeedFactor would be multiplied by the value of the OIDMaxSpeed to determine the overall maximum speed

DefaultValue

Integer

False

Required parameter. This parameter must be an integer and is used to specify a number to use when a device does not specify a bandwidth. Specifying this number will avoid a crash caused by a “divide by zero” error when the device either does not specify a bandwidth or malfunctions and returns a zero for its maximum speed. Setting this parameter to 0 will result in a performance value of 0 if the current throughput of the device is either null or unknown.

Composition

The System.NetworkManagement.NetworkAdapter.Utilization module is a composite module that contains the member modules described in the following table.

Workflow Run Order Module Type Usage

1

System.NetworkManagement.ComputedPerfProvider.Division

Calculates the network utilization as a percentage.

Module Type Usage

System.NetworkManagement.LargestFreeBufferProvider

Retrieves information about the largest area of contiguous bytes from the memory pool that are currently unused, expressed as a percentage of the free memory in the memory pool.

External Module References

none

Sample

The following XML example shows how System.NetworkManagement.NetworkAdapter.Utilization is used in a rule to retrieve the network utilization on an SNMP node using ifMIB. Note that the OIDs for the maximum speed, input octets, and output octets are already known, and a max speed factor is provided.

<Rule ID="System.NetworkManagement.ifMIB.NetworkAdapter.CurrentUtilization" Enabled="false" Target="NetworkLibrary!System.NetworkManagement.ifMIB_Base_NetworkAdapter" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
  <Category>PerformanceCollection</Category>
  <DataSources>
    <DataSource ID="DS" TypeID="System.NetworkManagement.NetworkAdapter.Utilization">
      <Interval>300</Interval>
      <NoOfRetries>3</NoOfRetries>
      <Timeout>3500</Timeout>
      <OIDMaxSpeed>.1.3.6.1.2.1.31.1.1.1.15.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.NetworkAdapter"]/Index$</OIDMaxSpeed>
      <OIDInOctets>.1.3.6.1.2.1.31.1.1.1.6.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.NetworkAdapter"]/Index$</OIDInOctets>
      <OIDOutOctets>.1.3.6.1.2.1.31.1.1.1.10.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.NetworkAdapter"]/Index$</OIDOutOctets>
      <MaxSpeedFactor>1000000</MaxSpeedFactor>
      <DefaultValue>0.0</DefaultValue>
    </DataSource>
  </DataSources>
  <ConditionDetection ID="CollectionFilter" TypeID="System.NetworkManagement.ExpressionFilter">
    <Expression />
    <SuppressionSettings>
      <MatchCount>3</MatchCount>
      <SampleCount>3</SampleCount>
    </SuppressionSettings>
  </ConditionDetection>
  <WriteActions>
    <WriteAction ID="WriteToDB" TypeID="SystemCenter!Microsoft.SystemCenter.CollectPerformanceData" />
    <WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData" />
  </WriteActions>
</Rule>

Information

   

Module Type

DataSourceModuleType

Input Type

None

Output Type

System.Performance.Data

Implementation

Composite

Library

System.NetworkManagement.Monitoring