SCOM: Combining a System.SnmpProbe and System.Performance.DeltaValueCondition Modules to Calculate SNMP Counter Delta Values
October 14, 2009 Leave a comment
I have previously written about using the combination of an SnmpProbe and script probe in Operations Manager work flows to facilitate manipulation of numeric values. While this is currently the only way to perform numeric operations, there are some cases in which the only required manipulation of a numeric value is the calculation of a delta between two polls, such as calculating the number of interface collisions in an interval (from the ifTable) or calculating the number of interface resets in a polling cycle (from the Cisco locIfTable). In these cases, the SnmpProbe can be combined with a System.Performance.DeltaValueCondition condition detection module to calculate the delta value without having to engage a script probe.
The Performance.DeltaValueCondition module expects Performance Data as an input, so a System.Performance.DataGenericMapper must be used between the SnmpProbe and DeltavalueCondition modules to do the data conversion. The DataGenericMapper accepts two options: NumSamples and Absolute. The NumSample parameter sets the number of value samples to maintain in memory, and the value returned is the difference between the first and last samples in memory. The “Absolute” parameter, when true, causes the DeltaValueCondition module to return the delta as the raw difference between the samples, and when false, causes the module to return the percentage of change.
An example workflow can be represented in this diagram (the expression filter being used to validate the data returned from the SnmpProbe prior to continuing):
An example configuration of the DataGenericMapper in this workflow:
And an example configuration of the DeltaValueCondition module:
The output is in the System.PerformanceData format so the Value can be accessed with: /DataItem/Value in XPATH queries, or $Data/Value$ in value expressions.