How does the DBO agent calculate for LOCKS
If a certain event is categorized as LOCK, is now at 1500000 on Sample #1(As we said, cumulative since db startup).
After a certain time (collection frequency) another sample is taken, Sample #2 - On this sample the number is now 1500010. The agent now knows that between these 2 samples another 10 seconds of the wait was happening.
So the agent does that for all events categorized as LOCK, sums up all the deltas for these events, we then get the time spent on LOCK resource between these 2 samples (Which is essentially the timeframe). We then compare this with the total wait time (All events, not only LOCK category events) on these 2 samples and we get a percentage of the LOCK category out of the total wait time - This is our lock percentage on which the alarm is raised. Of course we can then aggregated Samples 1# and #2 with 3# and 4# to increase the timeframe on which we calculate the lock wait contention.