Introduction

The QND.SNMP.GetTable.DS is a simple wrapper around QND.SNMP.GetTable.PT. It returns a Collection of property bags.

Module Configuration

<Configuration>
  <xsd:element minOccurs="0" maxOccurs="1" name="NoOfRetries" type="xsd:unsignedInt" default="3" />
  <xsd:element minOccurs="0" maxOccurs="1" name="Timeout" type="xsd:unsignedInt" default="500" />
  <xsd:element minOccurs="0" maxOccurs="1" name="Port" type="xsd:unsignedInt" default="161" />
  <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3UserName" type="xsd:string" />
  <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3AuthProtocol" type="xsd:string" />
  <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3AuthPassword" type="xsd:string" />
  <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3PrivProtocol" type="xsd:string" />
  <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3PrivPassword" type="xsd:string" />
  <xsd:element minOccurs="0" maxOccurs="1" name="SNMPv3ContextName" type="xsd:string" />
  <xsd:element name="IP" type="xsd:string" />
  <xsd:element name="CommunityString" type="xsd:string" />
  <xsd:element name="Version" type="xsd:string" />
  <xsd:element name="TableOID" type="xsd:string" />
  <xsd:element minOccurs="0" maxOccurs="1" name="TableIndex" type="xsd:string" default="1"/>
  <xsd:element minOccurs="0" maxOccurs="1" name="TraceLevel" type="xsd:unsignedInt" default="2"/>
  <xsd:element minOccurs="0" maxOccurs="1" name="ScriptTimeoutSeconds" type="xsd:unsignedInt" default="300"/>
  <xsd:element minOccurs="1" maxOccurs="1" name="IntervalSeconds" type="xsd:unsignedInt"/>
  <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
  <OverrideableParameter ID="NoOfRetries" ParameterType="int" Selector="$Config/NoOfRetries$"/>
  <OverrideableParameter ID="Timeout" ParameterType="int" Selector="$Config/Timeout$"/>
  <OverrideableParameter ID="TraceLevel" ParameterType="int" Selector="$Config/TraceLevel$"/>
  <OverrideableParameter ID="ScriptTimeoutSeconds" ParameterType="int" Selector="$Config/ScriptTimeoutSeconds$"/>
  <OverrideableParameter ID="IntervalSeconds" ParameterType="int" Selector="$Config/IntervalSeconds$"/>
  <OverrideableParameter ID="SyncTime" ParameterType="string" Selector="$Config/SyncTime$"/>
</OverrideableParameters>

The only added parameters are IntervalSeconds and SyncTime.

Sample

<UnitMonitorType ID="Progel.LibraEsva.DiskFreeSpace.MT" Accessibility="Internal">
  <MonitorTypeStates>
    <MonitorTypeState ID="AboveThreshold" NoDetection="false" />
    <MonitorTypeState ID="UnderThreshold" NoDetection="false" />
  </MonitorTypeStates>
  <Configuration>
    <xsd:element minOccurs="1" name="IntervalSeconds" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" name="SyncTime" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" maxOccurs="1" name="Timeout " type="xsd:unsignedInt" default="500" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" maxOccurs="1" name="Port" type="xsd:unsignedInt" default="161" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element name="IP" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element name="CommunityString" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" maxOccurs="1" name="Version" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="LogicalDeviceIndex" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="Threshold" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="1" name="NumberOfSamples" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" name="TraceLevel" type="xsd:integer" default="2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
    <xsd:element minOccurs="0" name="ProbeTimeoutSeconds" type="xsd:integer" default="300" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
  </Configuration>
  <OverrideableParameters>
    <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
    <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
    <OverrideableParameter ID="Timeout" Selector="$Config/IntervalSeconds$" ParameterType="int" />
    <OverrideableParameter ID="Threshold" Selector="$Config/Threshold$" ParameterType="int" />
    <OverrideableParameter ID="NumberOfSamples" Selector="$Config/NumberOfSamples$" ParameterType="int" />
    <OverrideableParameter ID="TraceLevel" Selector="$Config/TraceLevel$" ParameterType="int" />
    <OverrideableParameter ID="ProbeTimeoutSeconds" Selector="$Config/ProbeTimeoutSeconds$" ParameterType="int" />
  </OverrideableParameters>
  <MonitorImplementation>
    <MemberModules>
      <DataSource ID="DS" TypeID="QSNMP!QND.SNMP.GetTable.DS">
        <NoOfRetries>3</NoOfRetries>
        <Timeout>$Config/Timeout$</Timeout>
        <Port>$Config/Port$</Port>
        <SNMPv3UserName>$RunAs[Name="Network!System.NetworkManagement.SnmpV3.MonitoringAccount"]/UserName$</SNMPv3UserName>
        <SNMPv3AuthProtocol>$RunAs[Name="Network!System.NetworkManagement.SnmpV3.MonitoringAccount"]/AuthenticationProtocol$</SNMPv3AuthProtocol>
        <SNMPv3AuthPassword>$RunAs[Name="Network!System.NetworkManagement.SnmpV3.MonitoringAccount"]/AuthenticationKey$</SNMPv3AuthPassword>
        <SNMPv3PrivProtocol>$RunAs[Name="Network!System.NetworkManagement.SnmpV3.MonitoringAccount"]/PrivacyProtocol$</SNMPv3PrivProtocol>
        <SNMPv3PrivPassword>$RunAs[Name="Network!System.NetworkManagement.SnmpV3.MonitoringAccount"]/PrivacyKey$</SNMPv3PrivPassword>
        <SNMPv3ContextName>$RunAs[Name="Network!System.NetworkManagement.SnmpV3.MonitoringAccount"]/ContextName$</SNMPv3ContextName>
        <IP>$Config/IP$</IP>
        <CommunityString>$Config/CommunityString$</CommunityString>
        <Version>$Config/Version$</Version>
        <TableOID>.1.3.6.1.2.1.25.2.3.1</TableOID>
        <TableIndex>1</TableIndex>
        <TraceLevel>$Config/TraceLevel$</TraceLevel>
        <ScriptTimeoutSeconds>$Config/ProbeTimeoutSeconds$</ScriptTimeoutSeconds>
        <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
        <SyncTime>$Config/SyncTime$</SyncTime>
      </DataSource>
      <ConditionDetection ID="FilterIndex" TypeID="System!System.ExpressionFilter">
        <Expression>
          <SimpleExpression>
            <ValueExpression>
              <XPathQuery Type="String">Property[@Name='Index']</XPathQuery>
            </ValueExpression>
            <Operator>Equal</Operator>
            <ValueExpression>
              <Value>$Config/LogicalDeviceIndex$</Value>
            </ValueExpression>
          </SimpleExpression>
        </Expression>
      </ConditionDetection>
      <ConditionDetection ID="Compute" TypeID="NetworkMonitor!System.NetworkManagement.Computation">
        <NumericValue>
          <Product>
            <NumericValue>
              <Division>
                <NumericValue>
                  <Subtraction>
                    <NumericValue>
                      <XPathQuery Type="Double">Property[@Name='.1.3.6.1.2.1.25.2.3.1.5']</XPathQuery>
                    </NumericValue>
                    <NumericValue>
                      <XPathQuery Type="Double">Property[@Name='.1.3.6.1.2.1.25.2.3.1.6']</XPathQuery>
                    </NumericValue>
                  </Subtraction>
                </NumericValue>
                <NumericValue>
                  <XPathQuery Type="Double">Property[@Name='.1.3.6.1.2.1.25.2.3.1.5']</XPathQuery>
                </NumericValue>
              </Division>
            </NumericValue>
            <NumericValue>
              <Value Type="Double">100.0</Value>
            </NumericValue>
          </Product>
        </NumericValue>
      </ConditionDetection>
      <ConditionDetection ID="AboveThresholdCD" TypeID="NetworkMonitor!System.NetworkManagement.ExpressionFilter">
        <Expression>
          <SimpleExpression>
            <ValueExpression>
              <XPathQuery Type="Double">Value</XPathQuery>
            </ValueExpression>
            <Operator>GreaterEqual</Operator>
            <ValueExpression>
              <Value Type="Integer">$Config/Threshold$</Value>
            </ValueExpression>
          </SimpleExpression>
        </Expression>
        <SuppressionSettings>
          <MatchCount>$Config/NumberOfSamples$</MatchCount>
          <SampleCount>$Config/NumberOfSamples$</SampleCount>
        </SuppressionSettings>
      </ConditionDetection>
      <ConditionDetection ID="UnderThresholdCD" TypeID="NetworkMonitor!System.NetworkManagement.ExpressionFilter">
        <Expression>
          <SimpleExpression>
            <ValueExpression>
              <XPathQuery Type="Double">Value</XPathQuery>
            </ValueExpression>
            <Operator>Less</Operator>
            <ValueExpression>
              <Value Type="Integer">$Config/Threshold$</Value>
            </ValueExpression>
          </SimpleExpression>
        </Expression>
        <SuppressionSettings>
          <MatchCount>$Config/NumberOfSamples$</MatchCount>
          <SampleCount>$Config/NumberOfSamples$</SampleCount>
        </SuppressionSettings>
      </ConditionDetection>
    </MemberModules>
    <RegularDetections>
      <RegularDetection MonitorTypeStateID="AboveThreshold">
        <Node ID="AboveThresholdCD">
          <Node ID="Compute">
            <Node ID="FilterIndex">
              <Node ID="DS" />
            </Node>
          </Node>
        </Node>
      </RegularDetection>
      <RegularDetection MonitorTypeStateID="UnderThreshold">
        <Node ID="UnderThresholdCD">
          <Node ID="Compute">
            <Node ID="FilterIndex">
              <Node ID="DS" />
            </Node>
          </Node>
        </Node>
      </RegularDetection>
    </RegularDetections>
  </MonitorImplementation>
</UnitMonitorType>

Last edited Jun 25, 2014 at 3:03 PM by brandubh, version 2