This is an automated email from the ASF dual-hosted git repository. wusheng pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push: new f4a8f4aa99 Fix wrong timeBucket in topN group key. (#11792) f4a8f4aa99 is described below commit f4a8f4aa99d606d7d9360da62e94abb8ea94d1ee Author: weixiang1862 <652048...@qq.com> AuthorDate: Wed Jan 17 17:50:41 2024 +0800 Fix wrong timeBucket in topN group key. (#11792) --- .../analysis/data/LimitedSizeBufferedData.java | 3 ++- .../analysis/data/LimitedSizeBufferedDataTest.java | 31 ++++++++++++---------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedData.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedData.java index 8812dfe048..848433ddf6 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedData.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedData.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import org.apache.skywalking.oap.server.core.analysis.TimeBucket; import org.apache.skywalking.oap.server.core.analysis.topn.TopN; /** @@ -39,7 +40,7 @@ public class LimitedSizeBufferedData<STORAGE_DATA extends TopN> implements Buffe @Override public void accept(final STORAGE_DATA data) { - final String topGroupKey = data.getEntityId() + data.getTimeBucket(); + final String topGroupKey = data.getEntityId() + TimeBucket.getMinuteTimeBucket(data.getTimestamp()); LinkedList<STORAGE_DATA> storageDataList = this.data.get(topGroupKey); if (storageDataList == null) { storageDataList = new LinkedList<>(); diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedDataTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedDataTest.java index 676d27b4b4..0984aa72a0 100644 --- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedDataTest.java +++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/data/LimitedSizeBufferedDataTest.java @@ -27,24 +27,27 @@ public class LimitedSizeBufferedDataTest { @Test public void testPut() { LimitedSizeBufferedData<MockStorageData> collection = new LimitedSizeBufferedData<>(5); - collection.accept(new MockStorageData(1, 202401161130L)); - collection.accept(new MockStorageData(3, 202401161130L)); - collection.accept(new MockStorageData(5, 202401161130L)); - collection.accept(new MockStorageData(7, 202401161130L)); - collection.accept(new MockStorageData(9, 202401161130L)); + //2024-01-17 17:00:00 + collection.accept(new MockStorageData(1, 1705482000000L)); + collection.accept(new MockStorageData(3, 1705482000000L)); + collection.accept(new MockStorageData(5, 1705482000000L)); + collection.accept(new MockStorageData(7, 1705482000000L)); + collection.accept(new MockStorageData(9, 1705482000000L)); - MockStorageData income = new MockStorageData(4, 202401161130L); - MockStorageData incomeWithDifferentTimeBucket = new MockStorageData(4, 202401161131L); + //2024-01-17 17:00:00 + MockStorageData income = new MockStorageData(4, 1705482000000L); + //2024-01-17 17:01:00 + MockStorageData incomeWithDifferentTimeBucket = new MockStorageData(4, 1705482060000L); collection.accept(income); collection.accept(incomeWithDifferentTimeBucket); int[] expected = new int[] { - 4, 3, 4, 5, 7, - 9 + 9, + 4 }; int i = 0; for (MockStorageData data : collection.read()) { @@ -54,11 +57,11 @@ public class LimitedSizeBufferedDataTest { private class MockStorageData extends TopN { private long latency; - private long timeBucket; + private long timestamp; - public MockStorageData(long latency, long timeBucket) { + public MockStorageData(long latency, long timestamp) { this.latency = latency; - this.timeBucket = timeBucket; + this.timestamp = timestamp; } @Override @@ -83,8 +86,8 @@ public class LimitedSizeBufferedDataTest { } @Override - public long getTimeBucket() { - return this.timeBucket; + public long getTimestamp() { + return timestamp; } } }