Operations Manager 2007: Optimized Performance Data Collection collects samples even when the current and last sampled values are the same
Issue:
The Rule "Memory Available Megabytes 2008" from the Windows server 2008 Operating System (monitoring) management pack collects data for the Performance object: memory and performance Counter "Available Mbytes" every five minutes.
It uses Optimization with tolerance value set to 10 and Maximum Sample separation value set to 12.
The issue that we have with this rule is that it collects and writes the Sample data into DW from the server even when the Sample value did not change between the last sampled and the current sampled value.
From the output:
Server1 Memory Available MBytes 234 8/6/10 17:08
Server1 Memory Available MBytes 234 8/6/10 17:03
There are many such instances in the output where two consecutive samples have the same value but still they are written to the DW.
Solution:
Anytime the rule / datasource submits data to the DB, it posts both the last posted value as well as the new value.
Example: If the maximum sample separation is 12, the tolerance is 5, and the frequency is 60s. let us take this case where the raw data collected reads like this: 10, 11,11, 11,11, 11,11, 11,11, 11,11, 11,11.
All the 11s will be omitted because of the tolerance being 5. The last 11 is submitted because it is time for a periodic sample. Additionally, another data value is posted with value 10 with time 60s before the last 11, so that the UI will show a flat line at 10 for the whole period, followed by step increase to 11.
In short, the behavior is expected. The reason for the additional values is to enable the UI to draw a step graph rather than join 10 (at time 0) to 11 (12 samples later) using a straight line. This could be misleading if the value changed from 11 on 11th sample to 10000 on the 12th sample, because we would then draw a straight line from 10 to 10000, which would cause the user to think that the increase was gradual and that the data for the intermediate points in time was higher than the actual value (which is 11).