divijvaidya commented on code in PR #12045: URL: https://github.com/apache/kafka/pull/12045#discussion_r862915029
########## clients/src/main/java/org/apache/kafka/common/metrics/stats/SampledStat.java: ########## @@ -34,22 +34,38 @@ */ public abstract class SampledStat implements MeasurableStat { - private double initialValue; + private final double initialValue; private int current = 0; + protected List<Sample> samples; public SampledStat(double initialValue) { this.initialValue = initialValue; this.samples = new ArrayList<>(2); } + /** + * {@inheritDoc} + * + * On every record, do the following: + * 1. Check if the current window has expired + * 2. If yes, then advance the current pointer to new window. The start time of the new window is set to nearest + * possible starting point for the new window. The nearest starting point occurs at config.timeWindowMs intervals + * from the end time of last known window. + * 3. Update the recorded value for the current window + * 4. Increase the number of event count + */ @Override - public void record(MetricConfig config, double value, long timeMs) { - Sample sample = current(timeMs); - if (sample.isComplete(timeMs, config)) - sample = advance(config, timeMs); - update(sample, config, value, timeMs); - sample.eventCount += 1; + public void record(MetricConfig config, double value, long recordingTimeMs) { + Sample sample = current(recordingTimeMs); + if (sample.isComplete(recordingTimeMs, config)) { + final long previousWindowStartTime = sample.getLastWindowMs(); + sample = advance(config, recordingTimeMs); Review Comment: Modified the code to make it more readable. It is not exactly what you mentioned but should be more readable now. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org