secondTick

fun secondTick(tickIntervalMs: Int)

Advances the smoothed rate and resets the per-tick counter. Should be called once per "second", with the real elapsed tickIntervalMs so the rate is normalised to bytes/second even when ticks drift.

Faithful to stat_channel::second_tick:

sample        = counter * 1000 / tickIntervalMs   (64-bit, truncated)
fiveSecAvg = fiveSecAvg * 4 / 5 + sample / 5 (truncated to int32)
counter = 0