The counter stored one entry per addTime call, so a client sending tiny (even empty) packets could grow it without limit while staying under the bytes-per-second limit, eventually OOMing the proxy. Merge data points within 1ms of the newest one so the entry count is bounded by the window size (~7000 for the default 7s window) rather than by packet rate.