diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md index 7369362497ae24a208be8ae989dc17a86970c61a..71eb70969b331becad805cd5597dabd7bee5bef8 100644 --- a/docs/en/changes/changes.md +++ b/docs/en/changes/changes.md @@ -63,6 +63,7 @@ * Fix the meter value are not correct when using `sumPerMinLabeld` or `sumHistogramPercentile` MAL function. * Fix cannot display attached events when using Zipkin Lens UI query traces. * Remove `time_bucket` for both Stream and Measure kinds in BanyanDB plugin. +* Merge `TIME_BUCKET` of `Metrics` and `Record` into `StorageData`. #### UI diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java index 8864b3663e929afd53b0ef662894564284d1f780..67adbfee34e836c209ae6dc22e7a869f8eba5e3f 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java @@ -41,8 +41,6 @@ import static org.apache.skywalking.oap.server.core.analysis.metrics.Metrics.ID; }) @SQLDatabase.Sharding(shardingAlgorithm = ShardingAlgorithm.TIME_RELATIVE_ID_SHARDING_ALGORITHM, tableShardingColumn = ID, dataSourceShardingColumn = ENTITY_ID) public abstract class Metrics extends StreamData implements StorageData { - - public static final String TIME_BUCKET = "time_bucket"; public static final String ENTITY_ID = "entity_id"; public static final String ID = "id"; @@ -55,7 +53,8 @@ public abstract class Metrics extends StreamData implements StorageData { private long timeBucket; /** - * Time in the cache, only work when MetricsPersistentWorker#enableDatabaseSession == true. + * The last update timestamp of the cache. + * The `update` means it is combined with the new metrics. This update doesn't mean the database level update ultimately. */ @Getter private long lastUpdateTimestamp = 0L; diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/record/Record.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/record/Record.java index 38afa7ed5d861bf2b2db5aa97e06493c9fe79c71..23c25a42b87907528022a9ae274394cb83575cd6 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/record/Record.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/record/Record.java @@ -29,9 +29,6 @@ import org.apache.skywalking.oap.server.core.storage.annotation.Column; * original log data or task records. These data needs to persistent without further analysis. */ public abstract class Record implements StorageData { - - public static final String TIME_BUCKET = "time_bucket"; - /** * Time attribute, all storage data is time sensitive, as same as {@link Metrics} */ diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/remote/data/StreamData.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/remote/data/StreamData.java index 3c1c902de67c9ab55bc201743e43e088bb7da9d7..2ef893007182fb9637cb150fa2d7c2217e0462ff 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/remote/data/StreamData.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/remote/data/StreamData.java @@ -21,6 +21,10 @@ package org.apache.skywalking.oap.server.core.remote.data; import org.apache.skywalking.oap.server.core.remote.Deserializable; import org.apache.skywalking.oap.server.core.remote.Serializable; +/** + * StreamData indicates all implementations supporting {@link Serializable}, {@link Deserializable} and remote hashcode + * to do L1 and L2 aggregation cross OAP nodes. + */ public abstract class StreamData implements Serializable, Deserializable { public abstract int remoteHashCode(); } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageData.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageData.java index f3f4810c087490edbd5d1ef3c728dc44e1b85cb6..c48ad1215dc3ea561547b427012cd43f7ff05a9e 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageData.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageData.java @@ -22,6 +22,8 @@ package org.apache.skywalking.oap.server.core.storage; * Any persistent entity should be an implementation of this interface. */ public interface StorageData { + String TIME_BUCKET = "time_bucket"; + /** * @return the unique id used in any storage option. */