GitHub PushEvent at 2014-11-10 19:57:03
Repository: manageiq
Actor: blomquisg
Payload: {"shas":[["f7051e782164847cadb623a39bd28d2e1bf51537","f131bf03abf9995c2a0d18ad727a0a4241b4f24e@redhat.com","Fix openstack C&U collection with irregular intervals\n\nWhen OpenStack compute nodes are under heavy load, the ceilometer agent might\nfall behind in metrics collection.  This will show up as adding an extra 2 or 3\nseconds to the collection intervals.\n\nE.g., whereas the out-of-the-box configuration for Ceilometer is to process data\nevery 10min.  When compute nodes are under load, the agent may miss that mark by\n2 or 3 seconds, and end up processing data every 10:02 or 10:03.\n\nThis impact on the original metrics collection code was rather catastrophic.\nThe original collection logic attempted to bucket the intervals into 20\nsecond chunks (to adhere to internal reporting and rollup requirements).  But,\nwhen the collection intervals were not readily divisible by 20 seconds, the\ncollection logic would attempt to group that interval with the next interval and\naverage out the data points.\n\nThe problem with this approach is that if it cannot ever find a consecutive\ngrouping of intervals that is in totality divisible by 20 seconds, it fails to\nregister that *any* metrics were collected.\n\nThe new logic still attempts to break the intervals into 20 second buckets.\nHowever, it handles irregular intervals by carrying forward remainder values.\nFor instance, take the following timestamps, intervals and average metric values\nfor cpu utilization.\n\n10:00:00 - 10:10:01 601s,  5%\n10:10:01 - 10:20:04 603s, 25%\n10:20:04 - 10:30:06 602s, 10%\n10:30:06 - 10:40:06 600s, 30%\n\nIn this case the new logic will create 20 second buckets like the following\n(repeated values omitted for brevity):\n\n10:00:20  5%\n10:00:40  5%\n10:01:00  5%\n :\n :\n10:20:00  5%\n10:20:20 15%  # average of 5% and 25%\n10:20:40 25%\n10:21:00 25%\n :\n :\n10:30:00 25%\n10:30:20 17.5% # average of 25% and 10%\n10:30:40 10%\n10:31:00 10%\n\nAt the end of this process, a 6sec chunk will fall on the floor because the\noverall difference between 10:00:00 and 10:40:06 is 6 seconds.\n\nHowever, we have two restrictions:  1) we must have 20 second buckets, and 2)\nwe are not guaranteed to get collection intervals that are divisible by 20.\n\nhttps://bugzilla.redhat.com/show_bug.cgi?id=1148608","Greg Blomquist",true]],"size":1,"ref":"refs/heads/bz1148608-openstack-missing-cu-values","head":"f7051e782164847cadb623a39bd28d2e1bf51537"}