consumer_bound info item.
Experiment with the idea of "consumer utilisation". Still far too lumpy.
Maintain an exponential moving average of the utilisation.
CU for "Consumer Utilisation" not CB for "Consumer Bound".
Missed one + cosmetic.
Store timestamps as integers.
Simplify: less state, less records, more pattern matching.
Cosmetic / unused variables.
Simplify and remove magic numbers from the i/2 bit by treating time since last change of state as another timeslice. Also return a float between 0 and 1, not a string between "0" and "100".
Update doc
Don't return consumer utilisation when idle or there are no consumers; no number can be particularly meaningful.
MErge bug25882