System.NetworkManagement.LargestFreeBufferProvider

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

The System.NetworkManagement.LargestFreeBufferProvider data source module type provides System.Performance.Data type data regarding an SNMP node’s free memory.

Usage

This module 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. Not all devices provide the information necessary to use this module; you need to know the OIDs for the largest free buffer, the free memory, and the valid memory. In addition, you need to know the format in which the device returns the valid memory, so that you can validate that data with a regular expression.

Type Definition

<DataSourceModuleType ID="System.NetworkManagement.LargestFreeBufferProvider" Accessibility="Public" Batching="false">
  <Configuration>
    <IncludeSchemaTypes>
      <SchemaType>System!System.ParamListSchema</SchemaType>
    </IncludeSchemaTypes>
    <xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" maxOccurs="1" default="3" name="NoOfRetries" type="xsd:unsignedInt" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" maxOccurs="1" default="1500" name="Timeout" type="xsd:unsignedInt" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" maxOccurs="1" name="LargestFreeBufferOID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" maxOccurs="1" name="FreeMemoryOID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" maxOccurs="1" name="ValidMemoryOID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" maxOccurs="1" name="ValidMemoryRegEx" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="ObjectName" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="CounterName" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element name="OutputOnError" type="xsd:string" minOccurs="0" maxOccurs="1" default="false" 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="DS" TypeID="System.NetworkManagement.ComputedPerfProvider">
          <Interval>$Config/Interval$</Interval>
          <NoOfRetries>$Config/NoOfRetries$</NoOfRetries>
          <Timeout>$Config/Timeout$</Timeout>
          <SnmpVarBinds>
            <SnmpVarBind>
              <OID>$Config/LargestFreeBufferOID$</OID>
              <Syntax>0</Syntax>
              <Value VariantType="8" />
            </SnmpVarBind>
            <SnmpVarBind>
              <OID>$Config/FreeMemoryOID$</OID>
              <Syntax>0</Syntax>
              <Value VariantType="8" />
            </SnmpVarBind>
            <SnmpVarBind>
              <OID>$Config/ValidMemoryOID$</OID>
              <Syntax>0</Syntax>
              <Value VariantType="8" />
            </SnmpVarBind>
          </SnmpVarBinds>
          <ComputedPerformanceValue>
            <BranchValueExpression>
              <Expression>
                <And>
                  <Expression>
                    <RegExExpression>
                      <ValueExpression>
                        <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/ValidMemoryOID$"]/Value</XPathQuery>
                      </ValueExpression>
                      <Operator>MatchesRegularExpression</Operator>
                      <Pattern>$Config/ValidMemoryRegEx$</Pattern>
                    </RegExExpression>
                  </Expression>
                  <Expression>
                    <SimpleExpression>
                      <ValueExpression>
                        <NumericValue>
                          <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/LargestFreeBufferOID$"]/Value</XPathQuery>
                        </NumericValue>
                      </ValueExpression>
                      <Operator>Greater</Operator>
                      <ValueExpression>
                        <NumericValue>
                          <Value>0.0</Value>
                        </NumericValue>
                      </ValueExpression>
                    </SimpleExpression>
                  </Expression>
                  <Expression>
                    <SimpleExpression>
                      <ValueExpression>
                        <NumericValue>
                          <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/FreeMemoryOID$"]/Value</XPathQuery>
                        </NumericValue>
                      </ValueExpression>
                      <Operator>Greater</Operator>
                      <ValueExpression>
                        <NumericValue>
                          <Value>0.0</Value>
                        </NumericValue>
                      </ValueExpression>
                    </SimpleExpression>
                  </Expression>
                </And>
              </Expression>
              <TrueValueExpression>
                <NumericValue>
                  <Division>
                    <NumericValue>
                      <Product>
                        <NumericValue>
                          <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/LargestFreeBufferOID$"]/Value</XPathQuery>
                        </NumericValue>
                        <NumericValue>
                          <Value Type="Double">100.0</Value>
                        </NumericValue>
                      </Product>
                    </NumericValue>
                    <NumericValue>
                      <XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/FreeMemoryOID$"]/Value</XPathQuery>
                    </NumericValue>
                  </Division>
                </NumericValue>
              </TrueValueExpression>
              <FalseValueExpression>
                <NumericValue>
                  <Value Type="Double">100.0</Value>
                </NumericValue>
              </FalseValueExpression>
            </BranchValueExpression>
          </ComputedPerformanceValue>
          <ObjectName>$Config/ObjectName$</ObjectName>
          <CounterName>$Config/CounterName$</CounterName>
          <OutputOnError>$Config/OutputOnError$</OutputOnError>
        </DataSource>
      </MemberModules>
      <Composition>
        <Node ID="DS" />
      </Composition>
    </Composite>
  </ModuleImplementation>
  <OutputType>Performance!System.Performance.Data</OutputType>
</DataSourceModuleType>

Parameters

The System.NetworkManagement.LargestFreeBufferProvider 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. Defaults to 3.

Timeout

Integer

True

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

LargestFreeBufferOID

String

False

Required parameter. The OID for the largest free buffer on the SNMP node.

FreeMemoryOID

String

False

Required parameter. The OID for the free memory on the SNMP node.

ValidMemoryOID

String

False

Required parameter. The OID for the valid memory on the SNMP node.

ValidMemoryRegEx

String

False

Required parameter. A regular expression that determines whether the information returned from the node is valid for memory.

ObjectName

String

False

Required parameter. Specifies the performance object name.

CounterName

String

False

Required parameter. Specifies the name of the performance counter.

Composition

The System.NetworkManagement.LargestFreeBufferProvider 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

Provides performance data for a specified SNMP node, and performs specified calculations on that data before returning it.

Module Type Usage

System.NetworkManagement.MemoryPerfProvider

Retrieves information on the memory for a specified SNMP node.

External Module References

none

Sample

The following XML example shows how System.NetworkManagement.LargestFreeBufferProvider is used in a rule to determine the largest free buffer on a Cisco device. Note that the OIDs for the largest free buffer, free memory, and valid memory are already known, and a regular expression for validating the memory data is provided.

<Rule ID="System.NetworkManagement.Cisco.Memory.LargestFreeBufferPct" Enabled="true" Target="NetworkLibrary!System.NetworkManagement.Cisco_Performance_Memory" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
  <Category>PerformanceCollection</Category>
  <DataSources>
    <DataSource ID="DS" TypeID="System.NetworkManagement.LargestFreeBufferProvider">
      <Interval>300</Interval>
      <NoOfRetries>3</NoOfRetries>
      <Timeout>3500</Timeout>
      <LargestFreeBufferOID>.1.3.6.1.4.1.9.9.48.1.1.1.7.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$</LargestFreeBufferOID>
      <FreeMemoryOID>.1.3.6.1.4.1.9.9.48.1.1.1.6.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$</FreeMemoryOID>
      <ValidMemoryOID>.1.3.6.1.4.1.9.9.48.1.1.1.4.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$</ValidMemoryOID>
      <ValidMemoryRegEx>^1$</ValidMemoryRegEx>
      <ObjectName>Memory</ObjectName>
      <CounterName>Largest Free Buffer %</CounterName>
    </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