History | Log In     View a printable version of the current page.  
Hyperic HQ 3.2.5-EE Maintenance Release is Now Available
Issue Details (XML | Word | Printable)

Key: HHQ-1711
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Critical Critical
Assignee: Charles Lee
Reporter: Charles Lee
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Hyperic HQ

Backfiller is overly aggressive

Created: 28/Feb/08 06:04 PM   Updated: 24/Mar/08 08:55 AM
Component/s: Measurement
Affects Version/s: 3.2.0
Fix Version/s: 3.2.2

Verify By: Kashyap Parikh
Last comment: 28 weeks, 5 days ago
Resolution Date: 04/Mar/08 02:02 PM


 Description  « Hide
The backfiller is overly aggressive in evaluating platforms with missing availability metric data points. Here's the code snippet:

            // End is at least more than 1/2 interval away
            long end = TimingVoodoo.closestTime(
                current - dm.getInterval(), dm.getInterval());

This means that whenever the backfiller runs, it's potentially trying to fill in a time slot that is just over 30 seconds away for an availability that's collected every minute. However, it may take at least that long for the data to be inserted from the agent, causing a collision. We used to have a longer grace period, it should be restored.

 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Charles Lee - 04/Mar/08 02:02 PM
Dialed back to at least one interval grace period.

Kashyap Parikh - 24/Mar/08 08:55 AM
Verified in 3.2.2 #647. Used following query to find out any availability metric that was backfilled. Did not see any.

SELECT MAX(TIMESTAMP) as ts, D.MEASUREMENT_ID as mid FROM HQ_METRIC_DATA D, eam_measurement m , eam_measurement_templ t
where m.template_id=t.id and m.measurement_class='D' and enabled='true' and t.alias='Availability' and m.coll_interval=60000 and measurement_id = m.id and value=0
GROUP BY D.MEASUREMENT_ID HAVING max(timestamp) > (SELECT EXTRACT('epoch' FROM NOW())*1000 - 60000);