xrate() V1, no range adjust

The value is never adjusted, it is always the actual difference between last and first point (modulo counter resets).

Smooth counter, series start
Smooth counter, series end
Step counter, series start
Step counter, series end

xrate() V2, only adjust fully covered range

The value is only adjusted (multiplied by requested range, divided by actually sampled range) when the whole range is covered by data points (i.e. when the first point is before the start of the range and the last point is less than average point interval away from the end). If the first point is after the start of the interval or the last point is farther from the end than the average interval between points, then the unadjusted value is returned.

Smooth counter, series start
Smooth counter, series end
Step counter, series start
Step counter, series end

Simulated rolling restart

Using http://github.com/beorn7/rrsim.

Smooth counter (--qps=10)
Smooth counter (--qps=10), --jitter=1
Step counter (--qps=0.2)
Step counter (--qps=0.2), --jitter=1

xrate() V3, full adjust (like rate)

The value is always adjusted by the ratio of requested to sampled range. This is the same as (V2) when the whole range is covered; it interpolates the value at the start of the range if the series begins before the range but ends inside the range; and it extrapolates to the end of the range if the series begins inside the range but continues after the end (i.e. the last point is less than the average interval away from the end).

Smooth counter, series start
Smooth counter, series end
Step counter, series start
Step counter, series end