System.NetworkManagement.MemoryPerfProvider
Applies To: System Center 2012 - Operations Manager, System Center 2012 R2 Operations Manager, System Center 2012 SP1 - Operations Manager
The System.NetworkManagement.MemoryPerfProvider data source module type provides System.Performance.Data type data regarding an SNMP node’s memory performance.
Usage
This module retrieves performance information regarding the memory on the specified SNMP node. Not all devices provide the information necessary to use this module; you need to know the OIDs for the free memory, the total memory, and the valid memory. In addition, you need to know the valid memory value, so that you can validate the value returned.
Type Definition
<DataSourceModuleType ID="System.NetworkManagement.MemoryPerfProvider" Accessibility="Public" Batching="false">
<Configuration>
<IncludeSchemaTypes>
<SchemaType>System!System.ParamListSchema</SchemaType>
<SchemaType>System.ExpressionEvaluatorSchema</SchemaType>
<SchemaType>Snmp!System.SnmpVarBindsSchema</SchemaType>
</IncludeSchemaTypes>
<xsd:element minOccurs="1" maxOccurs="1" default="240" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" maxOccurs="1" default="3" name="NoOfRetries" type="xsd:unsignedInt" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" maxOccurs="1" default="1500" name="Timeout" type="xsd:unsignedInt" 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="UsedMemoryOID" 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="ValidMemoryValue" type="xsd:unsignedInt" 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" />
</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="SnmpDataSource" TypeID="System.NetworkManagement.Host.ExtendedSnmpQueryProvider">
<Interval>$Config/Interval$</Interval>
<NoOfRetries>$Config/NoOfRetries$</NoOfRetries>
<Timeout>$Config/Timeout$</Timeout>
<SnmpVarBinds>
<SnmpVarBind>
<OID>$Config/FreeMemoryOID$</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>$Config/UsedMemoryOID$</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>$Config/ValidMemoryOID$</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
</SnmpVarBinds>
<OutputOnError>false</OutputOnError>
</DataSource>
<ConditionDetection ID="MemoryValidityFilter" TypeID="System.NetworkManagement.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<NumericValue>
<XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/ValidMemoryOID$"]/Value</XPathQuery>
</NumericValue>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Double">$Config/ValidMemoryValue$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<SuppressionSettings>
<MatchCount>1</MatchCount>
<SampleCount>1</SampleCount>
</SuppressionSettings>
</ConditionDetection>
<ConditionDetection ID="ComputePerfValue" TypeID="System.NetworkManagement.Computation">
<NumericValue>
<BranchValueExpression>
<Expression>
<SimpleExpression>
<ValueExpression>
<Value Type="Double">0.0</Value>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<NumericValue>
<Summation>
<NumericValue>
<XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/FreeMemoryOID$"]/Value</XPathQuery>
</NumericValue>
<NumericValue>
<XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/UsedMemoryOID$"]/Value</XPathQuery>
</NumericValue>
</Summation>
</NumericValue>
</ValueExpression>
</SimpleExpression>
</Expression>
<TrueValueExpression>
<NumericValue>
<Value>0</Value>
</NumericValue>
</TrueValueExpression>
<FalseValueExpression>
<NumericValue>
<Division>
<NumericValue>
<Product>
<NumericValue>
<XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/FreeMemoryOID$"]/Value</XPathQuery>
</NumericValue>
<NumericValue>
<Value>100.0</Value>
</NumericValue>
</Product>
</NumericValue>
<NumericValue>
<Summation>
<NumericValue>
<XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/FreeMemoryOID$"]/Value</XPathQuery>
</NumericValue>
<NumericValue>
<XPathQuery Type="Double">SnmpVarBinds/SnmpVarBind[OID="$Config/UsedMemoryOID$"]/Value</XPathQuery>
</NumericValue>
</Summation>
</NumericValue>
</Division>
</NumericValue>
</FalseValueExpression>
</BranchValueExpression>
</NumericValue>
</ConditionDetection>
<ConditionDetection ID="Mapper" TypeID="Performance!System.Performance.DataGenericMapper">
<ObjectName>$Config/ObjectName$</ObjectName>
<CounterName>$Config/CounterName$</CounterName>
<InstanceName />
<Value>$Data/Value$</Value>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="Mapper">
<Node ID="ComputePerfValue">
<Node ID="MemoryValidityFilter">
<Node ID="SnmpDataSource" />
</Node>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>Performance!System.Performance.Data</OutputType>
</DataSourceModuleType>
Parameters
The System.NetworkManagement.MemoryPerfProvider 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. Defaults to 240. |
NoOfRetries |
Integer |
True |
Optional parameter. The number of times that an SNMP GET operation will retry if it times out. Defaults to 3. |
Timeout |
Integer |
True |
Optional parameter. The amount of time (in milliseconds) before an SNMP GET operation times out. Defaults to 1500. |
FreeMemoryOID |
String |
False |
Required parameter. The OID for the free memory on the SNMP node. |
UsedMemoryOID |
String |
False |
Required parameter. The OID for the used memory on the SNMP node. |
ValidMemoryOID |
String |
False |
Required parameter. The OID for the valid memory on the SNMP node. |
ValidMemoryValue |
Integer |
False |
Required parameter. A number 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.MemoryPerfProvider module is a composite module that contains the member modules described in the following table.
Workflow Run Order | Module Type | Usage |
---|---|---|
1 |
Retrieves data from the specified SNMP node, in this case the free and used memory amounts. |
|
2 |
Compares the value returned from the valid memory OID to the configured value. |
|
3 |
Calculates the amount of free memory in the device pool, expressed as a percentage. |
|
4 |
Maps the retrieved information to System.Performance.Data. |
Related Modules
Module Type | Usage |
---|---|
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.MemoryPerfProvider is used in a rule to retrieve the amount of free memory on a Cisco device. Note that the OIDs for the free memory, used memory, and valid memory are already known, and a value for validating the memory data is provided.
<Rule ID="System.NetworkManagement.Cisco.Memory.FreeMemoryPct" 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.MemoryPerfProvider">
<Interval>300</Interval>
<NoOfRetries>3</NoOfRetries>
<Timeout>3500</Timeout>
<FreeMemoryOID>.1.3.6.1.4.1.9.9.48.1.1.1.6.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$</FreeMemoryOID>
<UsedMemoryOID>.1.3.6.1.4.1.9.9.48.1.1.1.5.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$</UsedMemoryOID>
<ValidMemoryOID>.1.3.6.1.4.1.9.9.48.1.1.1.4.$Target/Property[Type="NetworkLibrary!System.NetworkManagement.LogicalDevice"]/Index$</ValidMemoryOID>
<ValidMemoryValue>1</ValidMemoryValue>
<ObjectName>Memory</ObjectName>
<CounterName>Free Memory %</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 |
|
Input Type |
None |
Output Type |
|
Implementation |
Composite |
Library |
System.NetworkManagement.Monitoring |