You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2022/12/15 07:39:12 UTC
[skywalking] branch master updated: Refactor `StorageData#id` to the new StorageID object from a String type. (#10157)
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 9a7bdc8eae Refactor `StorageData#id` to the new StorageID object from a String type. (#10157)
9a7bdc8eae is described below
commit 9a7bdc8eaec716b5cd4610ab48df8a3d5e40f773
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Thu Dec 15 15:39:06 2022 +0800
Refactor `StorageData#id` to the new StorageID object from a String type. (#10157)
* Refactor kernel id0()/id() methods to return StorageID object, rather than a built string.
---
docs/en/changes/changes.md | 1 +
.../analyzer/dsl/registry/ProcessRegistry.java | 2 +-
.../provider/kafka/log/KafkaLogExporter.java | 2 +-
.../server/exporter/provider/grpc/MockMetrics.java | 5 +-
.../main/resources/code-templates/metrics/id.ftl | 9 +-
.../core/alarm/provider/RunningRuleTest.java | 7 +-
.../oap/server/core/alarm/AlarmRecord.java | 11 +-
.../analysis/data/LimitedSizeBufferedData.java | 5 +-
.../core/analysis/data/MergableBufferedData.java | 5 +-
.../manual/cache/TopNCacheReadCommand.java | 5 +-
.../manual/cache/TopNCacheWriteCommand.java | 5 +-
.../manual/database/TopNDatabaseStatement.java | 5 +-
.../analysis/manual/endpoint/EndpointTraffic.java | 14 +-
.../analysis/manual/instance/InstanceTraffic.java | 9 +-
.../analysis/manual/log/AbstractLogRecord.java | 3 +-
.../server/core/analysis/manual/log/LogRecord.java | 5 +-
.../manual/networkalias/NetworkAddressAlias.java | 6 +-
.../analysis/manual/process/ProcessTraffic.java | 15 +-
.../manual/process/ServiceLabelRecord.java | 17 ++-
.../EndpointRelationServerSideMetrics.java | 10 +-
.../ServiceInstanceRelationClientSideMetrics.java | 7 +-
.../ServiceInstanceRelationServerSideMetrics.java | 8 +-
.../process/ProcessRelationClientSideMetrics.java | 8 +-
.../process/ProcessRelationServerSideMetrics.java | 7 +-
.../service/ServiceRelationClientSideMetrics.java | 7 +-
.../service/ServiceRelationServerSideMetrics.java | 8 +-
.../manual/searchtag/TagAutocompleteData.java | 9 +-
.../analysis/manual/segment/SegmentRecord.java | 5 +-
.../analysis/manual/service/ServiceTraffic.java | 13 +-
.../manual/spanattach/SpanAttachedEventRecord.java | 10 +-
.../manual/trace/SampledSlowTraceRecord.java | 9 +-
.../manual/trace/SampledStatus4xxTraceRecord.java | 9 +-
.../manual/trace/SampledStatus5xxTraceRecord.java | 9 +-
.../analysis/meter/function/HistogramFunction.java | 8 +-
.../meter/function/PercentileFunction.java | 8 +-
.../analysis/meter/function/avg/AvgFunction.java | 8 +-
.../meter/function/avg/AvgHistogramFunction.java | 8 +-
.../avg/AvgHistogramPercentileFunction.java | 8 +-
.../meter/function/avg/AvgLabeledFunction.java | 8 +-
.../meter/function/latest/LatestFunction.java | 8 +-
.../analysis/meter/function/sum/SumFunction.java | 8 +-
.../sum/SumHistogramPercentileFunction.java | 19 +--
.../function/sumpermin/SumPerMinFunction.java | 11 +-
.../sumpermin/SumPerMinLabeledFunction.java | 11 +-
.../oap/server/core/analysis/metrics/Event.java | 16 +-
.../oap/server/core/analysis/metrics/Metrics.java | 7 +-
.../analysis/worker/MetricsAggregateWorker.java | 3 -
.../manual/errorlog/BrowserErrorLogRecord.java | 5 +-
.../core/management/ui/template/UITemplate.java | 5 +-
.../profiling/ebpf/EBPFProfilingQueryService.java | 27 ++--
.../ebpf/storage/EBPFProfilingDataRecord.java | 20 ++-
.../ebpf/storage/EBPFProfilingScheduleRecord.java | 13 +-
.../ebpf/storage/EBPFProfilingTaskRecord.java | 27 ++--
.../core/profiling/trace/ProfileTaskLogRecord.java | 10 +-
.../trace/ProfileTaskMutationService.java | 2 +-
.../core/profiling/trace/ProfileTaskRecord.java | 5 +-
.../trace/ProfileThreadSnapshotRecord.java | 9 +-
.../server/core/query/ProcessTopologyBuilder.java | 24 ++-
.../oap/server/core/storage/StorageData.java | 2 +-
.../oap/server/core/storage/StorageID.java | 169 +++++++++++++++++++++
.../core/zipkin/ZipkinServiceRelationTraffic.java | 8 +-
.../core/zipkin/ZipkinServiceSpanTraffic.java | 7 +-
.../server/core/zipkin/ZipkinServiceTraffic.java | 5 +-
.../oap/server/core/zipkin/ZipkinSpanRecord.java | 5 +-
.../analysis/data/LimitedSizeBufferedDataTest.java | 5 +-
.../core/analysis/metrics/ApdexMetricsTest.java | 3 +-
.../core/analysis/metrics/CountMetricsTest.java | 3 +-
.../core/analysis/metrics/HeatMapMetricsTest.java | 3 +-
.../core/analysis/metrics/LongAvgMetricsTest.java | 3 +-
.../core/analysis/metrics/MaxLongMetricsTest.java | 3 +-
.../server/core/analysis/metrics/MetricsTest.java | 3 +-
.../core/analysis/metrics/MinLongMetricsTest.java | 3 +-
.../core/analysis/metrics/PercentMetricsTest.java | 3 +-
.../analysis/metrics/PercentileMetricsTest.java | 3 +-
.../metrics/expression/NumberMatchTest.java | 2 +-
.../server/core/storage/PersistenceTimerTest.java | 4 +-
.../oap/server/core/storage/StorageIDTest.java} | 33 +++-
.../datacarrier/consumer/BulkConsumePool.java | 2 +-
.../consumer/MultipleChannelsConsumer.java | 2 +-
.../plugin/banyandb/BanyanDBNoneStreamDAO.java | 2 +-
.../banyandb/BanyanDBUITemplateManagementDAO.java | 10 +-
.../banyandb/measure/BanyanDBMetricsDAO.java | 6 +-
.../plugin/banyandb/stream/BanyanDBRecordDAO.java | 2 +-
.../plugin/elasticsearch/base/ManagementEsDAO.java | 2 +-
.../plugin/elasticsearch/base/MetricsEsDAO.java | 8 +-
.../plugin/elasticsearch/base/NoneStreamEsDAO.java | 2 +-
.../plugin/elasticsearch/base/RecordEsDAO.java | 2 +-
.../elasticsearch/query/MetadataQueryEsDAO.java | 6 +-
.../query/UITemplateManagementEsDAO.java | 10 +-
.../plugin/jdbc/common/dao/JDBCManagementDAO.java | 2 +-
.../plugin/jdbc/common/dao/JDBCMetricsDAO.java | 2 +-
.../plugin/jdbc/common/dao/JDBCSQLExecutor.java | 6 +-
.../jdbc/shardingsphere/ServiceCpmMetrics.java | 8 +-
93 files changed, 591 insertions(+), 276 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 015e71e9ac..d7175d0e53 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -40,6 +40,7 @@
* Add global-specific settings used to override global configurations (e.g `segmentIntervalDays`, `blockIntervalHours`) in BanyanDB.
* Use TTL-driven interval settings for the `measure-default` group in BanyanDB.
* Fix wrong group of non time-relative metadata in BanyanDB.
+* Refactor `StorageData#id` to the new StorageID object from a String type.
#### UI
diff --git a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/registry/ProcessRegistry.java b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/registry/ProcessRegistry.java
index 992e17621b..b552f147e0 100644
--- a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/registry/ProcessRegistry.java
+++ b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/registry/ProcessRegistry.java
@@ -79,6 +79,6 @@ public class ProcessRegistry {
traffic.setTimeBucket(timeBucket);
traffic.setLastPingTimestamp(timeBucket);
MetricsStreamProcessor.getInstance().in(traffic);
- return traffic.id();
+ return traffic.id().build();
}
}
\ No newline at end of file
diff --git a/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/kafka/log/KafkaLogExporter.java b/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/kafka/log/KafkaLogExporter.java
index 095a364ee7..bc54fd7360 100644
--- a/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/kafka/log/KafkaLogExporter.java
+++ b/oap-server/exporter/src/main/java/org/apache/skywalking/oap/server/exporter/provider/kafka/log/KafkaLogExporter.java
@@ -101,7 +101,7 @@ public class KafkaLogExporter extends KafkaExportProducer implements LogExportSe
LogData logData = transLogData(logRecord);
ProducerRecord<String, Bytes> record = new ProducerRecord<>(
setting.getKafkaTopicLog(),
- logRecord.id(),
+ logRecord.id().build(),
Bytes.wrap(logData.toByteArray())
);
super.getProducer().send(record, (metadata, ex) -> {
diff --git a/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java b/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java
index 6a5580207c..8cf52dccaf 100644
--- a/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java
+++ b/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java
@@ -20,12 +20,13 @@ package org.apache.skywalking.oap.server.exporter.provider.grpc;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
public class MockMetrics extends Metrics {
@Override
- protected String id0() {
- return "mock-metrics";
+ protected StorageID id0() {
+ return new StorageID().append("", "mock-metrics");
}
@Override
diff --git a/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl b/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl
index b9933d3009..55cb3c87a7 100644
--- a/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl
+++ b/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl
@@ -1,10 +1,9 @@
-protected String id0() {
-StringBuilder splitJointId = new StringBuilder(String.valueOf(getTimeBucket()));
+protected org.apache.skywalking.oap.server.core.storage.StorageID id0() {
+org.apache.skywalking.oap.server.core.storage.StorageID id = new org.apache.skywalking.oap.server.core.storage.StorageID().append(TIME_BUCKET, getTimeBucket());
<#list fieldsFromSource as sourceField>
<#if sourceField.isID()>
- splitJointId.append(org.apache.skywalking.oap.server.core.Const.ID_CONNECTOR)
- .append(${sourceField.fieldName});
+ id.append("${sourceField.columnName}", ${sourceField.fieldName});
</#if>
</#list>
-return splitJointId.toString();
+return id;
}
diff --git a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java b/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java
index 28027222a1..ed678430fe 100644
--- a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java
+++ b/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java
@@ -37,6 +37,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.metrics.MultiIntValuesHolder;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.joda.time.LocalDateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
@@ -429,7 +430,7 @@ public class RunningRuleTest {
private int value;
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
@@ -486,7 +487,7 @@ public class RunningRuleTest {
}
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
@@ -538,7 +539,7 @@ public class RunningRuleTest {
private DataTable value;
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmRecord.java
index 11ca78bc6b..39739813eb 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmRecord.java
@@ -21,13 +21,13 @@ package org.apache.skywalking.oap.server.core.alarm;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.manual.searchtag.Tag;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -35,6 +35,7 @@ import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
+
import static org.apache.skywalking.oap.server.core.analysis.record.Record.TIME_BUCKET;
import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.ALARM;
@@ -59,8 +60,12 @@ public class AlarmRecord extends Record {
public static final String TAGS_RAW_DATA = "tags_raw_data";
@Override
- public String id() {
- return getTimeBucket() + Const.ID_CONNECTOR + ruleName + Const.ID_CONNECTOR + id0 + Const.ID_CONNECTOR + id1;
+ public StorageID id() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(RULE_NAME, ruleName)
+ .append(ID0, id0)
+ .append(ID1, id1);
}
@Column(columnName = SCOPE)
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 448c54b847..b8581474a4 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
@@ -24,13 +24,14 @@ import java.util.LinkedList;
import java.util.List;
import org.apache.skywalking.oap.server.core.storage.ComparableStorageData;
import org.apache.skywalking.oap.server.core.storage.StorageData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
/**
* LimitedSizeBufferedData is a thread no safe implementation of {@link BufferedData}. It collects limited records of
* each {@link StorageData#id()}.
*/
public class LimitedSizeBufferedData<STORAGE_DATA extends ComparableStorageData & StorageData> implements BufferedData<STORAGE_DATA> {
- private final HashMap<String, LinkedList<STORAGE_DATA>> data;
+ private final HashMap<StorageID, LinkedList<STORAGE_DATA>> data;
private final int limitedSize;
public LimitedSizeBufferedData(int limitedSize) {
@@ -40,7 +41,7 @@ public class LimitedSizeBufferedData<STORAGE_DATA extends ComparableStorageData
@Override
public void accept(final STORAGE_DATA data) {
- final String id = data.id();
+ final StorageID id = data.id();
LinkedList<STORAGE_DATA> storageDataList = this.data.get(id);
if (storageDataList == null) {
storageDataList = new LinkedList<>();
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/MergableBufferedData.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/MergableBufferedData.java
index 9413137a54..c75a46b53d 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/MergableBufferedData.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/data/MergableBufferedData.java
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
/**
* MergableBufferedData is a thread no safe implementation of {@link BufferedData}. {@link Metrics} in this cache would
@@ -31,7 +32,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
* Concurrency {@link #accept(Metrics)}s and {@link #read()} while {@link #accept(Metrics)} are both not recommended.
*/
public class MergableBufferedData<METRICS extends Metrics> implements BufferedData<METRICS> {
- private Map<String, METRICS> buffer;
+ private Map<StorageID, METRICS> buffer;
public MergableBufferedData() {
buffer = new HashMap<>();
@@ -46,7 +47,7 @@ public class MergableBufferedData<METRICS extends Metrics> implements BufferedDa
*/
@Override
public void accept(final METRICS data) {
- final String id = data.id();
+ final StorageID id = data.id();
final METRICS existed = buffer.get(id);
if (existed == null) {
buffer.put(id, data);
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheReadCommand.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheReadCommand.java
index c3e60ec131..fd8e17f09a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheReadCommand.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheReadCommand.java
@@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.topn.TopN;
import org.apache.skywalking.oap.server.core.analysis.worker.TopNStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -47,8 +48,8 @@ public class TopNCacheReadCommand extends TopN {
private String command;
@Override
- public String id() {
- return id;
+ public StorageID id() {
+ return new StorageID().appendMutant(null, id);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheWriteCommand.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheWriteCommand.java
index 1a7b9759c5..7adc17c946 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheWriteCommand.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/cache/TopNCacheWriteCommand.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.topn.TopN;
import org.apache.skywalking.oap.server.core.analysis.worker.TopNStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -48,8 +49,8 @@ public class TopNCacheWriteCommand extends TopN {
private String command;
@Override
- public String id() {
- return id;
+ public StorageID id() {
+ return new StorageID().appendMutant(null, id);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/database/TopNDatabaseStatement.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/database/TopNDatabaseStatement.java
index 28cc05b0a7..97f28e0a18 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/database/TopNDatabaseStatement.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/database/TopNDatabaseStatement.java
@@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.topn.TopN;
import org.apache.skywalking.oap.server.core.analysis.worker.TopNStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -47,8 +48,8 @@ public class TopNDatabaseStatement extends TopN {
private String statement;
@Override
- public String id() {
- return id;
+ public StorageID id() {
+ return new StorageID().appendMutant(null, id);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
index 1c2ce98977..a520cb7d14 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
@@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -65,11 +66,18 @@ public class EndpointTraffic extends Metrics {
private String name = Const.EMPTY_STRING;
@Override
- protected String id0() {
+ protected StorageID id0() {
// Downgrade the time bucket to day level only.
// supportDownSampling == false for this entity.
- return IDManager.EndpointID.buildId(
- this.getServiceId(), this.getName());
+ return new StorageID()
+ .appendMutant(
+ new String[] {
+ SERVICE_ID,
+ NAME
+ },
+ IDManager.EndpointID.buildId(
+ this.getServiceId(), this.getName())
+ );
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java
index 374cf62a26..d69af09e5e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java
@@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -131,8 +132,12 @@ public class InstanceTraffic extends Metrics {
}
@Override
- protected String id0() {
- return IDManager.ServiceInstanceID.buildId(serviceId, name);
+ protected StorageID id0() {
+ return new StorageID()
+ .appendMutant(new String[] {
+ SERVICE_ID,
+ NAME
+ }, IDManager.ServiceInstanceID.buildId(serviceId, name));
}
public static class Builder implements StorageBuilder<InstanceTraffic> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java
index 119e3226bc..aaf5e3a978 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/AbstractLogRecord.java
@@ -26,6 +26,7 @@ import org.apache.skywalking.oap.server.core.analysis.manual.searchtag.Tag;
import org.apache.skywalking.oap.server.core.analysis.record.LongText;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.query.type.ContentType;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -106,7 +107,7 @@ public abstract class AbstractLogRecord extends Record {
private List<String> tagsInString;
@Override
- public String id() {
+ public StorageID id() {
throw new UnexpectedException("AbstractLogRecord doesn't provide id()");
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/LogRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/LogRecord.java
index 352e012cd6..c5d30ba3b9 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/LogRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/log/LogRecord.java
@@ -23,6 +23,7 @@ import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -50,8 +51,8 @@ public class LogRecord extends AbstractLogRecord {
private String uniqueId;
@Override
- public String id() {
- return uniqueId;
+ public StorageID id() {
+ return new StorageID().append(UNIQUE_ID, uniqueId);
}
public static class Builder extends AbstractLogRecord.Builder<LogRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java
index 934026b9eb..1c3323945c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java
@@ -29,6 +29,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -87,8 +88,9 @@ public class NetworkAddressAlias extends Metrics {
}
@Override
- protected String id0() {
- return IDManager.NetworkAddressAliasDefine.buildId(address);
+ protected StorageID id0() {
+ return new StorageID().appendMutant(
+ new String[] {ADDRESS}, IDManager.NetworkAddressAliasDefine.buildId(address));
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ProcessTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ProcessTraffic.java
index 4728b6d760..98e14a4336 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ProcessTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ProcessTraffic.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.core.analysis.manual.process;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
+import java.util.Map;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@@ -32,6 +33,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -39,8 +41,6 @@ import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
import org.apache.skywalking.oap.server.library.util.StringUtil;
-import java.util.Map;
-
import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.PROCESS;
@Stream(name = ProcessTraffic.INDEX_NAME, scopeId = PROCESS,
@@ -183,11 +183,14 @@ public class ProcessTraffic extends Metrics {
}
@Override
- protected String id0() {
- if (processId != null) {
- return processId;
+ protected StorageID id0() {
+ if (processId == null) {
+ processId = IDManager.ProcessID.buildId(instanceId, name);
}
- return IDManager.ProcessID.buildId(instanceId, name);
+ return new StorageID().appendMutant(new String[] {
+ INSTANCE_ID,
+ NAME
+ }, processId);
}
public static class Builder implements StorageBuilder<ProcessTraffic> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ServiceLabelRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ServiceLabelRecord.java
index e84dc6534b..b3d398f273 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ServiceLabelRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/process/ServiceLabelRecord.java
@@ -20,22 +20,20 @@ package org.apache.skywalking.oap.server.core.analysis.manual.process;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
+import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
-import java.nio.charset.StandardCharsets;
-import java.util.Base64;
-
import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.SERVICE_LABEL;
/**
@@ -47,7 +45,7 @@ import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.SE
@Getter
@Stream(name = ServiceLabelRecord.INDEX_NAME, scopeId = SERVICE_LABEL,
builder = ServiceLabelRecord.Builder.class, processor = MetricsStreamProcessor.class)
-@MetricsExtension(supportDownSampling = false, supportUpdate = false)
+@MetricsExtension(supportDownSampling = false, supportUpdate = false, timeRelativeID = false)
@EqualsAndHashCode(of = {
"serviceId",
"label"
@@ -59,8 +57,10 @@ public class ServiceLabelRecord extends Metrics {
public static final String SERVICE_ID = "service_id";
public static final String LABEL = "label";
+ @BanyanDB.SeriesID(index = 0)
@Column(columnName = SERVICE_ID)
private String serviceId;
+ @BanyanDB.SeriesID(index = 1)
@Column(columnName = LABEL, length = 50)
private String label;
@@ -84,9 +84,10 @@ public class ServiceLabelRecord extends Metrics {
}
@Override
- protected String id0() {
- return this.serviceId + Const.ID_CONNECTOR + new String(Base64.getEncoder()
- .encode(label.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);
+ protected StorageID id0() {
+ return new StorageID()
+ .append(SERVICE_ID, serviceId)
+ .append(LABEL, label);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java
index 6437a71d97..78198382be 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.oap.server.core.analysis.manual.relation.endpoint;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
@@ -29,6 +28,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -72,10 +72,10 @@ public class EndpointRelationServerSideMetrics extends Metrics {
private String entityId;
@Override
- protected String id0() {
- String splitJointId = String.valueOf(getTimeBucket());
- splitJointId += Const.ID_CONNECTOR + entityId;
- return splitJointId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java
index a3290b4e3a..0684bfd37f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java
@@ -21,13 +21,13 @@ package org.apache.skywalking.oap.server.core.analysis.manual.relation.instance;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -78,8 +78,9 @@ public class ServiceInstanceRelationClientSideMetrics extends Metrics {
private String entityId;
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID().append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, entityId);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java
index d62527f59b..fb01c0bcaa 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java
@@ -21,13 +21,13 @@ package org.apache.skywalking.oap.server.core.analysis.manual.relation.instance;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -80,8 +80,10 @@ public class ServiceInstanceRelationServerSideMetrics extends Metrics {
private String entityId;
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java
index 109305aabd..8d25c4d49e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.oap.server.core.analysis.manual.relation.process;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
@@ -29,6 +28,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -73,8 +73,10 @@ public class ProcessRelationClientSideMetrics extends Metrics {
private int componentId;
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java
index 78849f4d33..0db42a0a6c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.oap.server.core.analysis.manual.relation.process;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
@@ -29,6 +28,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -72,8 +72,9 @@ public class ProcessRelationServerSideMetrics extends Metrics {
private int componentId;
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID().append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, entityId);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java
index d559aece29..7f1ffa402a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java
@@ -21,13 +21,13 @@ package org.apache.skywalking.oap.server.core.analysis.manual.relation.service;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -68,8 +68,9 @@ public class ServiceRelationClientSideMetrics extends Metrics {
private String entityId;
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID().append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, entityId);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java
index f767d331f2..d519cd31a1 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.oap.server.core.analysis.manual.relation.service;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
@@ -29,6 +28,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -72,8 +72,10 @@ public class ServiceRelationServerSideMetrics extends Metrics {
private String entityId;
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/searchtag/TagAutocompleteData.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/searchtag/TagAutocompleteData.java
index 703697cee3..7474fd24d8 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/searchtag/TagAutocompleteData.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/searchtag/TagAutocompleteData.java
@@ -28,6 +28,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -87,8 +88,12 @@ public class TagAutocompleteData extends Metrics {
}
@Override
- protected String id0() {
- return toTimeBucketInDay() + "-" + tagType + "-" + tagKey + "=" + tagValue;
+ protected StorageID id0() {
+ return new StorageID()
+ .appendMutant(new String[] {TIME_BUCKET}, toTimeBucketInDay())
+ .append(TAG_TYPE, tagType)
+ .append(TAG_KEY, tagKey)
+ .append(TAG_VALUE, tagValue);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java
index 9da77919ea..b5ceed2cd1 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java
@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -106,8 +107,8 @@ public class SegmentRecord extends Record {
private List<String> tags;
@Override
- public String id() {
- return segmentId;
+ public StorageID id() {
+ return new StorageID().append(SEGMENT_ID, segmentId);
}
public static class Builder implements StorageBuilder<SegmentRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java
index 7a342b6df6..3aaca1e99d 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java
@@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -98,12 +99,18 @@ public class ServiceTraffic extends Metrics {
* @return Base64 encode(serviceName) + "." + layer.value
*/
@Override
- protected String id0() {
+ protected StorageID id0() {
+ String id;
if (layer != null) {
- return encode(name) + Const.POINT + layer.value();
+ id = encode(name) + Const.POINT + layer.value();
} else {
- return encode(name) + Const.POINT + Layer.UNDEFINED.value();
+ id = encode(name) + Const.POINT + Layer.UNDEFINED.value();
}
+ return new StorageID().appendMutant(new String[] {
+ NAME,
+ LAYER
+ }, id);
+
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/spanattach/SpanAttachedEventRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/spanattach/SpanAttachedEventRecord.java
index 3e5bcf1046..b7d989ea09 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/spanattach/SpanAttachedEventRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/spanattach/SpanAttachedEventRecord.java
@@ -20,11 +20,11 @@ package org.apache.skywalking.oap.server.core.analysis.manual.spanattach;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -81,8 +81,12 @@ public class SpanAttachedEventRecord extends Record {
private long timestamp;
@Override
- public String id() {
- return traceSegmentId + Const.ID_CONNECTOR + startTimeSecond + Const.ID_CONNECTOR + startTimeNanos + Const.ID_CONNECTOR + event;
+ public StorageID id() {
+ return new StorageID()
+ .append(TRACE_SEGMENT_ID, traceSegmentId)
+ .append(START_TIME_SECOND, startTimeSecond)
+ .append(START_TIME_NANOS, startTimeNanos)
+ .append(EVENT, event);
}
public static class Builder implements StorageBuilder<SpanAttachedEventRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledSlowTraceRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledSlowTraceRecord.java
index 77a53567aa..b3fc1527b8 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledSlowTraceRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledSlowTraceRecord.java
@@ -20,12 +20,12 @@ package org.apache.skywalking.oap.server.core.analysis.manual.trace;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.topn.TopN;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -67,8 +67,11 @@ public class SampledSlowTraceRecord extends Record {
private long timestamp;
@Override
- public String id() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId + Const.ID_CONNECTOR + traceId;
+ public StorageID id() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, entityId)
+ .append(TRACE_ID, traceId);
}
public static class Builder implements StorageBuilder<SampledSlowTraceRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus4xxTraceRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus4xxTraceRecord.java
index 45c88bd1c3..33ab12fd5d 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus4xxTraceRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus4xxTraceRecord.java
@@ -20,12 +20,12 @@ package org.apache.skywalking.oap.server.core.analysis.manual.trace;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.topn.TopN;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -68,8 +68,11 @@ public class SampledStatus4xxTraceRecord extends Record {
private long timestamp;
@Override
- public String id() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId + Const.ID_CONNECTOR + traceId;
+ public StorageID id() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, entityId)
+ .append(TRACE_ID, traceId);
}
public static class Builder implements StorageBuilder<SampledStatus4xxTraceRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus5xxTraceRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus5xxTraceRecord.java
index eeaca14251..5c8c0213ed 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus5xxTraceRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/trace/SampledStatus5xxTraceRecord.java
@@ -20,12 +20,12 @@ package org.apache.skywalking.oap.server.core.analysis.manual.trace;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.topn.TopN;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -68,8 +68,11 @@ public class SampledStatus5xxTraceRecord extends Record {
private long timestamp;
@Override
- public String id() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId + Const.ID_CONNECTOR + traceId;
+ public StorageID id() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, entityId)
+ .append(TRACE_ID, traceId);
}
public static class Builder implements StorageBuilder<SampledStatus5xxTraceRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
index da8864bf07..6f01b1e628 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
@@ -23,7 +23,6 @@ import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
import org.apache.skywalking.oap.server.core.analysis.meter.MeterEntity;
@@ -31,6 +30,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.DataTable;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.query.type.Bucket;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -141,8 +141,10 @@ public abstract class HistogramFunction extends Meter implements AcceptableValue
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
index 4f6ce676fe..c8961eac1b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
@@ -26,7 +26,6 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
import org.apache.skywalking.oap.server.core.analysis.meter.MeterEntity;
@@ -37,6 +36,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.MultiIntValuesHold
import org.apache.skywalking.oap.server.core.analysis.metrics.PercentileMetrics;
import org.apache.skywalking.oap.server.core.query.type.Bucket;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -251,8 +251,10 @@ public abstract class PercentileFunction extends Meter implements AcceptableValu
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
index 9d6351c2d8..f01ff10ac2 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
@@ -22,7 +22,6 @@ import java.util.Objects;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
@@ -36,6 +35,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -151,8 +151,10 @@ public abstract class AvgFunction extends Meter implements AcceptableValue<Long>
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
index 76bcf523ee..46289e676d 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
@@ -23,7 +23,6 @@ import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
import org.apache.skywalking.oap.server.core.analysis.meter.MeterEntity;
@@ -34,6 +33,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.DataTable;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.query.type.Bucket;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -172,8 +172,10 @@ public abstract class AvgHistogramFunction extends Meter implements AcceptableVa
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
index 055a11b1d1..186e047b02 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
@@ -30,7 +30,6 @@ import java.util.stream.IntStream;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
import org.apache.skywalking.oap.server.core.analysis.meter.MeterEntity;
@@ -43,6 +42,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.metrics.MultiIntValuesHolder;
import org.apache.skywalking.oap.server.core.query.type.Bucket;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -325,8 +325,10 @@ public abstract class AvgHistogramPercentileFunction extends Meter implements Ac
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
index 89f94d66a8..9e78a41da8 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
@@ -23,7 +23,6 @@ import java.util.Set;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
@@ -34,6 +33,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.DataTable;
import org.apache.skywalking.oap.server.core.analysis.metrics.LabeledValueHolder;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -157,8 +157,10 @@ public abstract class AvgLabeledFunction extends Meter implements AcceptableValu
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
index 8ebe8ed4f9..800320048c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
@@ -22,7 +22,6 @@ import java.util.Objects;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
@@ -35,6 +34,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -136,8 +136,10 @@ public abstract class LatestFunction extends Meter implements AcceptableValue<Lo
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
index be861d371f..43c3012ab1 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
@@ -22,7 +22,6 @@ import java.util.Objects;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
@@ -35,6 +34,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -126,8 +126,10 @@ public abstract class SumFunction extends Meter implements AcceptableValue<Long>
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + getEntityId();
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java
index fc99621d79..c50a8723ac 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumHistogramPercentileFunction.java
@@ -21,10 +21,14 @@ package org.apache.skywalking.oap.server.core.analysis.meter.function.sum;
import com.google.common.base.Strings;
import io.vavr.Tuple;
import io.vavr.Tuple2;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collector;
+import java.util.stream.IntStream;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
import org.apache.skywalking.oap.server.core.analysis.meter.MeterEntity;
@@ -37,6 +41,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.metrics.MultiIntValuesHolder;
import org.apache.skywalking.oap.server.core.query.type.Bucket;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.ElasticSearch;
@@ -44,12 +49,6 @@ import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collector;
-import java.util.stream.IntStream;
-
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.mapping;
@@ -290,8 +289,10 @@ public abstract class SumHistogramPercentileFunction extends Meter implements Ac
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
index 918837ed77..3e53c18c73 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinFunction.java
@@ -18,10 +18,10 @@
package org.apache.skywalking.oap.server.core.analysis.meter.function.sumpermin;
+import java.util.Objects;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
@@ -34,14 +34,13 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entranc
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.query.sql.Function;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
-import java.util.Objects;
-
@ToString
@MeterFunction(functionName = "sumPerMin")
public abstract class SumPerMinFunction extends Meter implements AcceptableValue<Long>, LongValueHolder {
@@ -133,8 +132,10 @@ public abstract class SumPerMinFunction extends Meter implements AcceptableValue
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + getEntityId();
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
index 338f9107c0..0dbae94e73 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sumpermin/SumPerMinLabeledFunction.java
@@ -18,9 +18,9 @@
package org.apache.skywalking.oap.server.core.analysis.meter.function.sumpermin;
+import java.util.Objects;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.UnexpectedException;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.meter.Meter;
@@ -33,14 +33,13 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.Entrance;
import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.SourceFrom;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
-import java.util.Objects;
-
@MeterFunction(functionName = "sumPerMinLabeled")
public abstract class SumPerMinLabeledFunction extends Meter implements AcceptableValue<DataTable>, LabeledValueHolder {
@@ -124,8 +123,10 @@ public abstract class SumPerMinLabeledFunction extends Meter implements Acceptab
}
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + getEntityId();
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, getEntityId());
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Event.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Event.java
index 40c799d697..cc14d37545 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Event.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Event.java
@@ -18,9 +18,10 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
-import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.EVENT;
-import static org.apache.skywalking.oap.server.library.util.StringUtil.isNotBlank;
import com.google.common.base.Strings;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
import org.apache.skywalking.oap.server.core.analysis.Layer;
import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
import org.apache.skywalking.oap.server.core.analysis.Stream;
@@ -29,14 +30,15 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
+
+import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.EVENT;
+import static org.apache.skywalking.oap.server.library.util.StringUtil.isNotBlank;
@Getter
@Setter
@@ -77,8 +79,8 @@ public class Event extends Metrics {
private static final int PARAMETER_MAX_LENGTH = 2000;
@Override
- protected String id0() {
- return getUuid();
+ protected StorageID id0() {
+ return new StorageID().append(UUID, getUuid());
}
@Column(columnName = UUID)
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 fb9412405c..8864b3663e 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
@@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.core.remote.data.StreamData;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
import org.apache.skywalking.oap.server.core.storage.StorageData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -149,15 +150,15 @@ public abstract class Metrics extends StreamData implements StorageData {
return TimeBucket.isDayBucket(timeBucket);
}
- private volatile String id;
+ private volatile StorageID id;
@Override
- public String id() {
+ public StorageID id() {
if (id == null) {
id = id0();
}
return id;
}
- protected abstract String id0();
+ protected abstract StorageID id0();
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsAggregateWorker.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsAggregateWorker.java
index 61576fc9cf..698341144f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsAggregateWorker.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsAggregateWorker.java
@@ -118,9 +118,6 @@ public class MetricsAggregateWorker extends AbstractWorker<Metrics> {
if (currentTime - lastSendTime > l1FlushPeriod) {
mergeDataCache.read().forEach(
data -> {
- if (log.isDebugEnabled()) {
- log.debug(data.toString());
- }
nextWorker.in(data);
}
);
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/browser/manual/errorlog/BrowserErrorLogRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/browser/manual/errorlog/BrowserErrorLogRecord.java
index 73aec272cc..e26034dd90 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/browser/manual/errorlog/BrowserErrorLogRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/browser/manual/errorlog/BrowserErrorLogRecord.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -50,8 +51,8 @@ public class BrowserErrorLogRecord extends Record {
public static final String DATA_BINARY = "data_binary";
@Override
- public String id() {
- return uniqueId;
+ public StorageID id() {
+ return new StorageID().append(UNIQUE_ID, uniqueId);
}
@Setter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplate.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplate.java
index a1bc7b08ef..7ecde5db8f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplate.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplate.java
@@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.management.ManagementData;
import org.apache.skywalking.oap.server.core.analysis.worker.ManagementStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Storage;
@@ -59,8 +60,8 @@ public class UITemplate extends ManagementData {
private int disabled;
@Override
- public String id() {
- return templateId;
+ public StorageID id() {
+ return new StorageID().append(TEMPLATE_ID, templateId);
}
public static class Builder implements StorageBuilder<UITemplate> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/EBPFProfilingQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/EBPFProfilingQueryService.java
index 3c74857395..46d80e3c79 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/EBPFProfilingQueryService.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/EBPFProfilingQueryService.java
@@ -19,6 +19,16 @@
package org.apache.skywalking.oap.server.core.profiling.ebpf;
import com.google.gson.Gson;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.oap.server.core.CoreModuleConfig;
@@ -53,17 +63,6 @@ import org.apache.skywalking.oap.server.library.module.Service;
import org.apache.skywalking.oap.server.library.util.CollectionUtils;
import org.apache.skywalking.oap.server.library.util.StringUtil;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
@Slf4j
@RequiredArgsConstructor
public class EBPFProfilingQueryService implements Service {
@@ -204,8 +203,8 @@ public class EBPFProfilingQueryService implements Service {
final List<Metrics> processes = getProcessMetricsDAO().multiGet(processModel, processMetrics);
final Map<String, Process> processMap = processes.stream()
- .map(t -> (ProcessTraffic) t)
- .collect(Collectors.toMap(Metrics::id, this::convertProcess));
+ .map(t -> (ProcessTraffic) t)
+ .collect(Collectors.toMap(m -> m.id().build(), this::convertProcess));
schedules.forEach(p -> p.setProcess(processMap.get(p.getProcessId())));
}
return schedules;
@@ -219,7 +218,7 @@ public class EBPFProfilingQueryService implements Service {
private Process convertProcess(ProcessTraffic traffic) {
final Process process = new Process();
- process.setId(traffic.id());
+ process.setId(traffic.id().build());
process.setName(traffic.getName());
final String serviceId = traffic.getServiceId();
process.setServiceId(serviceId);
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingDataRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingDataRecord.java
index 4bbe858610..919c168dea 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingDataRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingDataRecord.java
@@ -24,6 +24,7 @@ import lombok.Data;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -64,12 +65,19 @@ public class EBPFProfilingDataRecord extends Record {
private long uploadTime;
@Override
- public String id() {
- return Hashing.sha256().newHasher()
- .putString(scheduleId, Charsets.UTF_8)
- .putString(stackIdList, Charsets.UTF_8)
- .putLong(uploadTime)
- .hash().toString();
+ public StorageID id() {
+ return new StorageID().appendMutant(
+ new String[] {
+ SCHEDULE_ID,
+ STACK_ID_LIST,
+ UPLOAD_TIME
+ },
+ Hashing.sha256().newHasher()
+ .putString(scheduleId, Charsets.UTF_8)
+ .putString(stackIdList, Charsets.UTF_8)
+ .putLong(uploadTime)
+ .hash().toString()
+ );
}
public static class Builder implements StorageBuilder<EBPFProfilingDataRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingScheduleRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingScheduleRecord.java
index 39a2efd6c0..2c086d488e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingScheduleRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingScheduleRecord.java
@@ -27,6 +27,7 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -43,12 +44,12 @@ import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.EB
@Setter
@Getter
@Stream(name = EBPFProfilingScheduleRecord.INDEX_NAME, scopeId = EBPF_PROFILING_SCHEDULE,
- builder = EBPFProfilingScheduleRecord.Builder.class, processor = MetricsStreamProcessor.class)
+ builder = EBPFProfilingScheduleRecord.Builder.class, processor = MetricsStreamProcessor.class)
@MetricsExtension(supportDownSampling = false, supportUpdate = true)
@EqualsAndHashCode(of = {
- "taskId",
- "processId",
- "startTime",
+ "taskId",
+ "processId",
+ "startTime",
})
@SQLDatabase.Sharding(shardingAlgorithm = ShardingAlgorithm.NO_SHARDING)
public class EBPFProfilingScheduleRecord extends Metrics {
@@ -95,8 +96,8 @@ public class EBPFProfilingScheduleRecord extends Metrics {
}
@Override
- protected String id0() {
- return scheduleId;
+ protected StorageID id0() {
+ return new StorageID().append(EBPF_PROFILING_SCHEDULE_ID, scheduleId);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingTaskRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingTaskRecord.java
index 1e34112d33..de7ce305b7 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingTaskRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/ebpf/storage/EBPFProfilingTaskRecord.java
@@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.config.NoneStream;
import org.apache.skywalking.oap.server.core.analysis.worker.NoneStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -39,7 +40,7 @@ import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.EB
@Data
@ScopeDeclaration(id = EBPF_PROFILING_TASK, name = "EBPFProfilingTask")
@Stream(name = EBPFProfilingTaskRecord.INDEX_NAME, scopeId = EBPF_PROFILING_TASK,
- builder = EBPFProfilingTaskRecord.Builder.class, processor = NoneStreamProcessor.class)
+ builder = EBPFProfilingTaskRecord.Builder.class, processor = NoneStreamProcessor.class)
@BanyanDB.TimestampColumn(EBPFProfilingTaskRecord.CREATE_TIME)
public class EBPFProfilingTaskRecord extends NoneStream {
public static final String INDEX_NAME = "ebpf_profiling_task";
@@ -83,11 +84,17 @@ public class EBPFProfilingTaskRecord extends NoneStream {
private String extensionConfigJson;
@Override
- public String id() {
- return Hashing.sha256().newHasher()
- .putString(logicalId, Charsets.UTF_8)
- .putLong(createTime)
- .hash().toString();
+ public StorageID id() {
+ return new StorageID().appendMutant(
+ new String[] {
+ LOGICAL_ID,
+ CREATE_TIME
+ },
+ Hashing.sha256().newHasher()
+ .putString(logicalId, Charsets.UTF_8)
+ .putLong(createTime)
+ .hash().toString()
+ );
}
/**
@@ -95,10 +102,10 @@ public class EBPFProfilingTaskRecord extends NoneStream {
*/
public void generateLogicalId() {
this.logicalId = Hashing.sha256().newHasher()
- .putString(serviceId, Charsets.UTF_8)
- .putString(processLabelsJson, Charsets.UTF_8)
- .putLong(startTime)
- .hash().toString();
+ .putString(serviceId, Charsets.UTF_8)
+ .putString(processLabelsJson, Charsets.UTF_8)
+ .putLong(startTime)
+ .hash().toString();
}
public static class Builder implements StorageBuilder<EBPFProfilingTaskRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskLogRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskLogRecord.java
index 8102067a79..e27a42284c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskLogRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskLogRecord.java
@@ -20,11 +20,11 @@ package org.apache.skywalking.oap.server.core.profiling.trace;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -65,8 +65,12 @@ public class ProfileTaskLogRecord extends Record {
private long timestamp;
@Override
- public String id() {
- return getTaskId() + Const.ID_CONNECTOR + getInstanceId() + Const.ID_CONNECTOR + getOperationType() + Const.ID_CONNECTOR + getOperationTime();
+ public StorageID id() {
+ return new StorageID()
+ .append(TASK_ID, getTaskId())
+ .append(INSTANCE_ID, getInstanceId())
+ .append(OPERATION_TYPE, getOperationType())
+ .append(OPERATION_TIME, getOperationTime());
}
public static class Builder implements StorageBuilder<ProfileTaskLogRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskMutationService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskMutationService.java
index 535a7d757f..1e095a5cb4 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskMutationService.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskMutationService.java
@@ -97,7 +97,7 @@ public class ProfileTaskMutationService implements Service {
task.setTimeBucket(TimeBucket.getMinuteTimeBucket(taskStartTime));
NoneStreamProcessor.getInstance().in(task);
- return ProfileTaskCreationResult.builder().id(task.id()).build();
+ return ProfileTaskCreationResult.builder().id(task.id().build()).build();
}
private String checkDataSuccess(final String serviceId,
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskRecord.java
index 729b41f538..2fd77c6a90 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileTaskRecord.java
@@ -24,6 +24,7 @@ import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.config.NoneStream;
import org.apache.skywalking.oap.server.core.analysis.worker.NoneStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -54,8 +55,8 @@ public class ProfileTaskRecord extends NoneStream {
public static final String MAX_SAMPLING_COUNT = "max_sampling_count";
@Override
- public String id() {
- return taskId;
+ public StorageID id() {
+ return new StorageID().append(TASK_ID, taskId);
}
@Column(columnName = SERVICE_ID)
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileThreadSnapshotRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileThreadSnapshotRecord.java
index da239b72ec..a1c0818c5a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileThreadSnapshotRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/profiling/trace/ProfileThreadSnapshotRecord.java
@@ -20,11 +20,11 @@ package org.apache.skywalking.oap.server.core.profiling.trace;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.ScopeDeclaration;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -67,8 +67,11 @@ public class ProfileThreadSnapshotRecord extends Record {
private byte[] stackBinary;
@Override
- public String id() {
- return getTaskId() + Const.ID_CONNECTOR + getSegmentId() + Const.ID_CONNECTOR + getSequence() + Const.ID_CONNECTOR;
+ public StorageID id() {
+ return new StorageID()
+ .append(TASK_ID, getTaskId())
+ .append(SEGMENT_ID, getSegmentId())
+ .append(SEQUENCE, getSequence());
}
public static class Builder implements StorageBuilder<ProfileThreadSnapshotRecord> {
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/ProcessTopologyBuilder.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/ProcessTopologyBuilder.java
index f6874c4df3..cb57a5c01a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/ProcessTopologyBuilder.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/ProcessTopologyBuilder.java
@@ -18,12 +18,20 @@
package org.apache.skywalking.oap.server.core.query;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.analysis.IDManager;
import org.apache.skywalking.oap.server.core.analysis.manual.process.ProcessDetectType;
import org.apache.skywalking.oap.server.core.analysis.manual.process.ProcessTraffic;
-import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.config.IComponentLibraryCatalogService;
import org.apache.skywalking.oap.server.core.query.type.Call;
import org.apache.skywalking.oap.server.core.query.type.ProcessNode;
@@ -36,16 +44,6 @@ import org.apache.skywalking.oap.server.core.storage.model.Model;
import org.apache.skywalking.oap.server.core.storage.model.StorageModels;
import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
@Slf4j
public class ProcessTopologyBuilder {
private final IComponentLibraryCatalogService componentLibraryCatalogService;
@@ -88,7 +86,7 @@ public class ProcessTopologyBuilder {
return p;
}).collect(Collectors.toList())).stream()
.map(t -> (ProcessTraffic) t)
- .collect(Collectors.toMap(Metrics::id, this::buildNode));
+ .collect(Collectors.toMap(m -> m.id().build(), this::buildNode));
for (Call.CallDetail clientCall : clientCalls) {
if (!callMap.containsKey(clientCall.getId())) {
@@ -128,7 +126,7 @@ public class ProcessTopologyBuilder {
private ProcessNode buildNode(ProcessTraffic traffic) {
ProcessNode processNode = new ProcessNode();
- processNode.setId(traffic.id());
+ processNode.setId(traffic.id().build());
processNode.setServiceId(traffic.getServiceId());
processNode.setServiceName(IDManager.ServiceID.analysisId(traffic.getServiceId()).getName());
processNode.setServiceInstanceId(traffic.getInstanceId());
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 f8224835d1..f3f4810c08 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
@@ -25,5 +25,5 @@ public interface StorageData {
/**
* @return the unique id used in any storage option.
*/
- String id();
+ StorageID id();
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageID.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageID.java
new file mode 100644
index 0000000000..e6d8d26309
--- /dev/null
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageID.java
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.oap.server.core.storage;
+
+import com.google.common.base.Joiner;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import org.apache.skywalking.oap.server.core.Const;
+import org.apache.skywalking.oap.server.library.util.StringUtil;
+
+/**
+ * StorageID represents an identification for the metric or the record.
+ * Typically, an ID is composited by two parts
+ * 1. Time bucket based on downsampling.
+ * 2. The encoded entity ID, such as Service ID.
+ *
+ * In the SQL database and ElasticSearch, the string ID is preferred.
+ * In the BanyanDB, time series and entity ID(series ID) would be treated separately.
+ *
+ * @since 9.4.0 StorageID replaced the `string id()` method in the StorageData. An object-oriented ID provides a more
+ * friendly interface for various database implementation.
+ */
+@EqualsAndHashCode(of = {
+ "fragments"
+})
+public class StorageID {
+ private final List<Fragment> fragments;
+ /**
+ * Once the storage ID was {@link #build()} or {@link #read()},
+ * this object would switch to the sealed status, no more append is allowed.
+ */
+ private boolean sealed = false;
+ /**
+ * The string ID would only be built once.
+ */
+ private String builtID;
+
+ public StorageID() {
+ fragments = new ArrayList<>(2);
+ }
+
+ public StorageID append(String name, String value) {
+ if (StringUtil.isBlank(name)) {
+ throw new IllegalArgumentException("The name of storage ID should not be null or empty.");
+ }
+ if (sealed) {
+ throw new IllegalStateException("The storage ID is sealed. Can't append a new fragment, name=" + name);
+ }
+ fragments.add(new Fragment(new String[] {name}, String.class, false, value));
+ return this;
+ }
+
+ public StorageID append(String name, long value) {
+ if (StringUtil.isBlank(name)) {
+ throw new IllegalArgumentException("The name of storage ID should not be null or empty.");
+ }
+ if (sealed) {
+ throw new IllegalStateException("The storage ID is sealed. Can't append a new fragment, name=" + name);
+ }
+ fragments.add(new Fragment(new String[] {name}, Long.class, false, value));
+ return this;
+ }
+
+ public StorageID append(String name, int value) {
+ if (StringUtil.isBlank(name)) {
+ throw new IllegalArgumentException("The name of storage ID should not be null or empty.");
+ }
+ if (sealed) {
+ throw new IllegalStateException("The storage ID is sealed. Can't append a new fragment, name=" + name);
+ }
+ fragments.add(new Fragment(new String[] {name}, Integer.class, false, value));
+ return this;
+ }
+
+ public StorageID appendMutant(String[] source, long value) {
+ if (sealed) {
+ throw new IllegalStateException("The storage ID is sealed. Can't append a new fragment, source=" + Arrays.toString(source));
+ }
+ fragments.add(new Fragment(source, Long.class, true, value));
+ return this;
+ }
+
+ public StorageID appendMutant(final String[] source, final String value) {
+ if (sealed) {
+ throw new IllegalStateException("The storage ID is sealed. Can't append a new fragment, source=" + Arrays.toString(source));
+ }
+ fragments.add(new Fragment(source, String.class, true, value));
+ return this;
+ }
+
+ /**
+ * @return the string ID concatenating the values of {@link #fragments} by the underline(_).
+ */
+ public String build() {
+ sealed = true;
+ if (builtID == null) {
+ builtID = Joiner.on(Const.ID_CONNECTOR).join(fragments);
+ }
+ return builtID;
+ }
+
+ /**
+ * @return a read-only list to avoid unexpected change for metric ID.
+ */
+ public List<Fragment> read() {
+ sealed = true;
+ return Collections.unmodifiableList(fragments);
+ }
+
+ @RequiredArgsConstructor
+ @Getter
+ @EqualsAndHashCode(of = {
+ "name",
+ "value"
+ }, doNotUseGetters = true)
+ public static class Fragment {
+ /**
+ * The column name of the value, or the original column names of the mutate value.
+ *
+ * The names could be
+ * 1. Always one column if this is not {@link #mutate} and from a certain persistent column.
+ * 2. Be null if {@link #mutate} is true and no relative column, such as the original value is not in
+ * the persistence.
+ * 3. One or multi-values if the value is built through a symmetrical or asymmetrical encoding algorithm.
+ */
+ private final String[] name;
+ /**
+ * Represent the class type of the {@link #value}.
+ */
+ private final Class<?> type;
+ /**
+ * If true, the field was from {@link #name}, and value is changed by internal rules.
+ * Such as time bucket downsampling, use a day-level time-bucket to build the ID for a minute dimension metric.
+ */
+ private final boolean mutate;
+ private final Object value;
+
+ public Optional<String[]> getName() {
+ return Optional.ofNullable(name);
+ }
+
+ @Override
+ public String toString() {
+ return value.toString();
+ }
+ }
+}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceRelationTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceRelationTraffic.java
index 6f8cd850ea..93f267ce04 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceRelationTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceRelationTraffic.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.oap.server.core.zipkin;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
@@ -29,6 +28,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -59,8 +59,10 @@ public class ZipkinServiceRelationTraffic extends Metrics {
private String remoteServiceName;
@Override
- protected String id0() {
- return serviceName + Const.ID_CONNECTOR + remoteServiceName;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(SERVICE_NAME, serviceName)
+ .append(REMOTE_SERVICE_NAME, remoteServiceName);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceSpanTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceSpanTraffic.java
index d74d3ab1c3..6fd873e310 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceSpanTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceSpanTraffic.java
@@ -29,6 +29,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -60,8 +61,10 @@ public class ZipkinServiceSpanTraffic extends Metrics {
private String spanName = Const.EMPTY_STRING;
@Override
- protected String id0() {
- return serviceName + Const.ID_CONNECTOR + spanName;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(SERVICE_NAME, serviceName)
+ .append(SPAN_NAME, spanName);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceTraffic.java
index a227e08a21..098790919b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinServiceTraffic.java
@@ -29,6 +29,7 @@ import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProces
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
import org.apache.skywalking.oap.server.core.storage.type.Convert2Entity;
@@ -53,8 +54,8 @@ public class ZipkinServiceTraffic extends Metrics {
private String serviceName = Const.EMPTY_STRING;
@Override
- protected String id0() {
- return serviceName;
+ protected StorageID id0() {
+ return new StorageID().append(SERVICE_NAME, serviceName);
}
@Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinSpanRecord.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinSpanRecord.java
index 875b8f21dd..959476867f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinSpanRecord.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinSpanRecord.java
@@ -31,6 +31,7 @@ import org.apache.skywalking.oap.server.core.analysis.record.Record;
import org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
import org.apache.skywalking.oap.server.core.storage.ShardingAlgorithm;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
import org.apache.skywalking.oap.server.core.storage.annotation.SQLDatabase;
@@ -167,8 +168,8 @@ public class ZipkinSpanRecord extends Record {
private List<String> query;
@Override
- public String id() {
- return traceId + Const.LINE + spanId;
+ public StorageID id() {
+ return new StorageID().append(TRACE_ID, traceId).append(SPAN_ID, spanId);
}
public static class Builder implements StorageBuilder<ZipkinSpanRecord> {
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 9a6e217b70..e5445bd902 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
@@ -20,6 +20,7 @@ package org.apache.skywalking.oap.server.core.analysis.data;
import java.util.Objects;
import org.apache.skywalking.oap.server.core.storage.ComparableStorageData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -63,8 +64,8 @@ public class LimitedSizeBufferedDataTest {
}
@Override
- public String id() {
- return "id";
+ public StorageID id() {
+ return new StorageID().append("ID", "id");
}
@Override
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java
index 446ee67aad..0fb369eafb 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Before;
import org.junit.Test;
@@ -104,7 +105,7 @@ public class ApdexMetricsTest {
public class ApdexMetricsImpl extends ApdexMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java
index 0809ebcede..47837b3533 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -56,7 +57,7 @@ public class CountMetricsTest {
public class CountMetricsImpl extends CountMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java
index 713b4fac89..bd58c111a2 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -88,7 +89,7 @@ public class HeatMapMetricsTest {
public class HistogramMetricsMocker extends HistogramMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java
index 4867dc5378..1efe2a7c19 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -52,7 +53,7 @@ public class LongAvgMetricsTest {
public class LongAvgMetricsImpl extends LongAvgMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java
index f3dcd24186..0d11626c04 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -54,7 +55,7 @@ public class MaxLongMetricsTest {
public class MaxLongMetricsImpl extends MaxLongMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java
index 351441e41f..ec7c141ea0 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -73,7 +74,7 @@ public class MetricsTest {
public class MetricsMocker extends Metrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java
index b02dca055d..eb4dbfed1e 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -59,7 +60,7 @@ public class MinLongMetricsTest {
public class MinLongMetricsImpl extends MinLongMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java
index 51a2dbc655..5f7024a627 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.analysis.metrics.expression.StringMatch;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -67,7 +68,7 @@ public class PercentMetricsTest {
public class PercentMetricsImpl extends PercentMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java
index 512cc9964c..56b95222c4 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java
@@ -19,6 +19,7 @@
package org.apache.skywalking.oap.server.core.analysis.metrics;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.junit.Assert;
import org.junit.Test;
@@ -118,7 +119,7 @@ public class PercentileMetricsTest {
public class PercentileMetricsMocker extends PercentileMetrics {
@Override
- protected String id0() {
+ protected StorageID id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/NumberMatchTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/NumberMatchTest.java
index 2048f4451f..ea6c6edf85 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/NumberMatchTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/NumberMatchTest.java
@@ -19,8 +19,8 @@ package org.apache.skywalking.oap.server.core.analysis.metrics.expression;
import org.junit.Test;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
public class NumberMatchTest {
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimerTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimerTest.java
index f10f78c863..1ba232e102 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimerTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimerTest.java
@@ -116,8 +116,8 @@ public class PersistenceTimerTest {
private final String id;
@Override
- public String id() {
- return id;
+ public StorageID id() {
+ return new StorageID().append("ID", id);
}
}
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/test/java/org/apache/skywalking/oap/server/core/storage/StorageIDTest.java
similarity index 51%
copy from oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageData.java
copy to oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/StorageIDTest.java
index f8224835d1..bcee774ccd 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageData.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/storage/StorageIDTest.java
@@ -18,12 +18,29 @@
package org.apache.skywalking.oap.server.core.storage;
-/**
- * Any persistent entity should be an implementation of this interface.
- */
-public interface StorageData {
- /**
- * @return the unique id used in any storage option.
- */
- String id();
+import org.junit.Assert;
+import org.junit.Test;
+
+public class StorageIDTest {
+ @Test
+ public void testRawBuild() {
+ StorageID id = new StorageID();
+ id.append("time_bucket", 202212141438L) //2022-12-14 14:38
+ .append("entity_id", "encoded-service-name");
+
+ Assert.assertEquals("202212141438_encoded-service-name", id.build());
+ }
+
+ @Test
+ public void testEqual() {
+ StorageID id = new StorageID();
+ id.append("time_bucket", 202212141438L) //2022-12-14 14:38
+ .append("entity_id", "encoded-service-name");
+
+ StorageID id2 = new StorageID();
+ id2.append("time_bucket", 202212141438L) //2022-12-14 14:38
+ .append("entity_id", "encoded-service-name");
+
+ Assert.assertEquals(true, id.equals(id2));
+ }
}
diff --git a/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/BulkConsumePool.java b/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/BulkConsumePool.java
index b881d50531..9d5bb0f615 100644
--- a/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/BulkConsumePool.java
+++ b/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/BulkConsumePool.java
@@ -36,7 +36,7 @@ public class BulkConsumePool implements ConsumerPool {
public BulkConsumePool(String name, int size, long consumeCycle) {
size = EnvUtil.getInt(name + "_THREAD", size);
- allConsumers = new ArrayList<MultipleChannelsConsumer>(size);
+ allConsumers = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
MultipleChannelsConsumer multipleChannelsConsumer = new MultipleChannelsConsumer("DataCarrier." + name + ".BulkConsumePool." + i + ".Thread", consumeCycle);
multipleChannelsConsumer.setDaemon(true);
diff --git a/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/MultipleChannelsConsumer.java b/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/MultipleChannelsConsumer.java
index db60f0d098..69e2732f20 100644
--- a/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/MultipleChannelsConsumer.java
+++ b/oap-server/server-library/library-datacarrier-queue/src/main/java/org/apache/skywalking/oap/server/library/datacarrier/consumer/MultipleChannelsConsumer.java
@@ -95,7 +95,7 @@ public class MultipleChannelsConsumer extends Thread {
public void addNewTarget(Channels channels, IConsumer consumer) {
Group group = new Group(channels, consumer);
// Recreate the new list to avoid change list while the list is used in consuming.
- ArrayList<Group> newList = new ArrayList<Group>();
+ ArrayList<Group> newList = new ArrayList<>();
for (Group target : consumeTargets) {
newList.add(target);
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBNoneStreamDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBNoneStreamDAO.java
index 46edb436ab..25f698a8fe 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBNoneStreamDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBNoneStreamDAO.java
@@ -47,7 +47,7 @@ public class BanyanDBNoneStreamDAO extends AbstractDAO<BanyanDBStorageClient> im
StreamWrite streamWrite = new StreamWrite(
schema.getMetadata().getGroup(), // group name
schema.getMetadata().name(), // stream-name
- noneStream.id() // identity
+ noneStream.id().build() // identity
); // set timestamp inside `BanyanDBConverter.StreamToStorage`
Convert2Storage<StreamWrite> convert2Storage = new BanyanDBConverter.StreamToStorage(schema, streamWrite);
storageBuilder.entity2Storage(noneStream, convert2Storage);
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java
index d616ed032e..bbbb4b183f 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java
@@ -101,11 +101,11 @@ public class BanyanDBUITemplateManagementDAO extends AbstractBanyanDBDAO impleme
this.getClient().define(applyStatus(uiTemplate));
return TemplateChangeStatus.builder()
.status(true)
- .id(uiTemplate.id())
+ .id(uiTemplate.id().build())
.build();
} catch (IOException ioEx) {
log.error("fail to disable the template", ioEx);
- return TemplateChangeStatus.builder().status(false).id(uiTemplate.id()).message("Can't disable the template")
+ return TemplateChangeStatus.builder().status(false).id(uiTemplate.id().build()).message("Can't disable the template")
.build();
}
}
@@ -133,7 +133,7 @@ public class BanyanDBUITemplateManagementDAO extends AbstractBanyanDBDAO impleme
}
public Property applyAll(UITemplate uiTemplate) {
- return Property.create(GROUP, UITemplate.INDEX_NAME, uiTemplate.id())
+ return Property.create(GROUP, UITemplate.INDEX_NAME, uiTemplate.id().build())
.addTag(TagAndValue.newStringTag(UITemplate.CONFIGURATION, uiTemplate.getConfiguration()))
.addTag(TagAndValue.newLongTag(UITemplate.DISABLED, uiTemplate.getDisabled()))
.addTag(TagAndValue.newLongTag(UITemplate.UPDATE_TIME, uiTemplate.getUpdateTime()))
@@ -147,7 +147,7 @@ public class BanyanDBUITemplateManagementDAO extends AbstractBanyanDBDAO impleme
* @return new property (patch) to be applied
*/
public Property applyStatus(UITemplate uiTemplate) {
- return Property.create(GROUP, UITemplate.INDEX_NAME, uiTemplate.id())
+ return Property.create(GROUP, UITemplate.INDEX_NAME, uiTemplate.id().build())
.addTag(TagAndValue.newLongTag(UITemplate.DISABLED, uiTemplate.getDisabled()))
.addTag(TagAndValue.newLongTag(UITemplate.UPDATE_TIME, uiTemplate.getUpdateTime()))
.build();
@@ -160,7 +160,7 @@ public class BanyanDBUITemplateManagementDAO extends AbstractBanyanDBDAO impleme
* @return new property (patch) to be applied
*/
public Property applyConfiguration(UITemplate uiTemplate) {
- return Property.create(GROUP, UITemplate.INDEX_NAME, uiTemplate.id())
+ return Property.create(GROUP, UITemplate.INDEX_NAME, uiTemplate.id().build())
.addTag(TagAndValue.newStringTag(UITemplate.CONFIGURATION, uiTemplate.getConfiguration()))
.addTag(TagAndValue.newLongTag(UITemplate.UPDATE_TIME, uiTemplate.getUpdateTime()))
.build();
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsDAO.java
index dbef1af363..758098eb63 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsDAO.java
@@ -62,7 +62,7 @@ public class BanyanDBMetricsDAO extends AbstractBanyanDBDAO implements IMetricsD
@Override
protected void apply(MeasureQuery query) {
for (final Metrics missCachedMetric : metrics) {
- query.or(id(missCachedMetric.id()));
+ query.or(id(missCachedMetric.id().build()));
}
}
});
@@ -89,7 +89,7 @@ public class BanyanDBMetricsDAO extends AbstractBanyanDBDAO implements IMetricsD
TimeBucket.getTimestamp(metrics.getTimeBucket(), model.getDownsampling())); // timestamp
final BanyanDBConverter.MeasureToStorage toStorage = new BanyanDBConverter.MeasureToStorage(schema, measureWrite);
storageBuilder.entity2Storage(metrics, toStorage);
- toStorage.acceptID(metrics.id());
+ toStorage.acceptID(metrics.id().build());
return new BanyanDBMeasureInsertRequest(toStorage.obtain(), callback);
}
@@ -105,7 +105,7 @@ public class BanyanDBMetricsDAO extends AbstractBanyanDBDAO implements IMetricsD
TimeBucket.getTimestamp(metrics.getTimeBucket(), model.getDownsampling())); // timestamp
final BanyanDBConverter.MeasureToStorage toStorage = new BanyanDBConverter.MeasureToStorage(schema, measureWrite);
storageBuilder.entity2Storage(metrics, toStorage);
- toStorage.acceptID(metrics.id());
+ toStorage.acceptID(metrics.id().build());
return new BanyanDBMeasureUpdateRequest(toStorage.obtain());
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBRecordDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBRecordDAO.java
index ed04f7e1bf..74e2d48cc9 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBRecordDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBRecordDAO.java
@@ -44,7 +44,7 @@ public class BanyanDBRecordDAO implements IRecordDAO {
StreamWrite streamWrite = new StreamWrite(
schema.getMetadata().getGroup(), // group name
model.getName(), // index-name
- record.id() // identity
+ record.id().build() // identity
); // set timestamp inside `BanyanDBConverter.StreamToStorage`
Convert2Storage<StreamWrite> convert2Storage = new BanyanDBConverter.StreamToStorage(schema, streamWrite);
storageBuilder.entity2Storage(record, convert2Storage);
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/ManagementEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/ManagementEsDAO.java
index 9693c90c9b..f0d0a10387 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/ManagementEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/ManagementEsDAO.java
@@ -38,7 +38,7 @@ public class ManagementEsDAO extends EsDAO implements IManagementDAO {
@Override
public void insert(Model model, ManagementData managementData) throws IOException {
String tableName = IndexController.INSTANCE.getTableName(model);
- String docId = IndexController.INSTANCE.generateDocId(model, managementData.id());
+ String docId = IndexController.INSTANCE.generateDocId(model, managementData.id().build());
final boolean exist = getClient().existDoc(tableName, docId);
if (exist) {
return;
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java
index 12319dae1a..75027a6fd5 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/MetricsEsDAO.java
@@ -65,7 +65,7 @@ public class MetricsEsDAO extends EsDAO implements IMetricsDAO {
Map<String, List<String>> indexIdsGroup = new HashMap<>();
groupIndices.forEach((tableName, metricList) -> {
List<String> ids = metricList.stream()
- .map(item -> IndexController.INSTANCE.generateDocId(model, item.id()))
+ .map(item -> IndexController.INSTANCE.generateDocId(model, item.id().build()))
.collect(Collectors.toList());
indexIdsGroup.put(tableName, ids);
});
@@ -85,7 +85,7 @@ public class MetricsEsDAO extends EsDAO implements IMetricsDAO {
});
groupIndices.forEach((tableName, metricList) -> {
List<String> ids = metricList.stream()
- .map(item -> IndexController.INSTANCE.generateDocId(model, item.id()))
+ .map(item -> IndexController.INSTANCE.generateDocId(model, item.id().build()))
.collect(Collectors.toList());
final SearchResponse response = getClient().searchIDs(tableName, ids);
response.getHits().getHits().forEach(hit -> {
@@ -103,7 +103,7 @@ public class MetricsEsDAO extends EsDAO implements IMetricsDAO {
storageBuilder.entity2Storage(metrics, toStorage);
Map<String, Object> builder = IndexController.INSTANCE.appendTableColumn(model, toStorage.obtain());
String modelName = TimeSeriesUtils.writeIndexName(model, metrics.getTimeBucket());
- String id = IndexController.INSTANCE.generateDocId(model, metrics.id());
+ String id = IndexController.INSTANCE.generateDocId(model, metrics.id().build());
return new MetricIndexRequestWrapper(getClient().prepareInsert(modelName, id, builder), callback);
}
@@ -114,7 +114,7 @@ public class MetricsEsDAO extends EsDAO implements IMetricsDAO {
Map<String, Object> builder =
IndexController.INSTANCE.appendTableColumn(model, toStorage.obtain());
String modelName = TimeSeriesUtils.writeIndexName(model, metrics.getTimeBucket());
- String id = IndexController.INSTANCE.generateDocId(model, metrics.id());
+ String id = IndexController.INSTANCE.generateDocId(model, metrics.id().build());
return new MetricIndexUpdateWrapper(getClient().prepareUpdate(modelName, id, builder), callback);
}
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/NoneStreamEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/NoneStreamEsDAO.java
index 811923cbbb..7ec21a0ccb 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/NoneStreamEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/NoneStreamEsDAO.java
@@ -45,7 +45,7 @@ public class NoneStreamEsDAO extends EsDAO implements INoneStreamDAO {
Map<String, Object> builder =
IndexController.INSTANCE.appendTableColumn(model, toStorage.obtain());
String modelName = TimeSeriesUtils.writeIndexName(model, noneStream.getTimeBucket());
- String id = IndexController.INSTANCE.generateDocId(model, noneStream.id());
+ String id = IndexController.INSTANCE.generateDocId(model, noneStream.id().build());
getClient().forceInsert(modelName, id, builder);
}
}
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java
index 264007a024..21ffbb675e 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/RecordEsDAO.java
@@ -42,7 +42,7 @@ public class RecordEsDAO extends EsDAO implements IRecordDAO {
storageBuilder.entity2Storage(record, toStorage);
Map<String, Object> builder = IndexController.INSTANCE.appendTableColumn(model, toStorage.obtain());
String modelName = TimeSeriesUtils.writeIndexName(model, record.getTimeBucket());
- String id = IndexController.INSTANCE.generateDocId(model, record.id());
+ String id = IndexController.INSTANCE.generateDocId(model, record.id().build());
return getClient().prepareInsert(modelName, id, builder);
}
}
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
index cbce35e41a..a0462d45fb 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java
@@ -228,7 +228,7 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
new EndpointTraffic.Builder().storage2Entity(new ElasticSearchConverter.ToEntity(EndpointTraffic.INDEX_NAME, sourceAsMap));
Endpoint endpoint = new Endpoint();
- endpoint.setId(endpointTraffic.id());
+ endpoint.setId(endpointTraffic.id().build());
endpoint.setName(endpointTraffic.getName());
endpoints.add(endpoint);
}
@@ -388,7 +388,7 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
new InstanceTraffic.Builder().storage2Entity(new ElasticSearchConverter.ToEntity(InstanceTraffic.INDEX_NAME, sourceAsMap));
ServiceInstance serviceInstance = new ServiceInstance();
- serviceInstance.setId(instanceTraffic.id());
+ serviceInstance.setId(instanceTraffic.id().build());
serviceInstance.setName(instanceTraffic.getName());
serviceInstance.setInstanceUUID(serviceInstance.getId());
@@ -420,7 +420,7 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
new ProcessTraffic.Builder().storage2Entity(new ElasticSearchConverter.ToEntity(ProcessTraffic.INDEX_NAME, sourceAsMap));
Process process = new Process();
- process.setId(processTraffic.id());
+ process.setId(processTraffic.id().build());
process.setName(processTraffic.getName());
final String serviceId = processTraffic.getServiceId();
process.setServiceId(serviceId);
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/UITemplateManagementEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/UITemplateManagementEsDAO.java
index 14146e8df5..a0719597b1 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/UITemplateManagementEsDAO.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/UITemplateManagementEsDAO.java
@@ -105,7 +105,7 @@ public class UITemplateManagementEsDAO extends EsDAO implements UITemplateManage
final UITemplate.Builder builder = new UITemplate.Builder();
final UITemplate uiTemplate = setting.toEntity();
- final boolean exist = getClient().existDoc(UITemplate.INDEX_NAME, uiTemplate.id());
+ final boolean exist = getClient().existDoc(UITemplate.INDEX_NAME, uiTemplate.id().build());
if (exist) {
return TemplateChangeStatus.builder().status(false).id(setting.getId()).message("Template exists")
.build();
@@ -113,7 +113,7 @@ public class UITemplateManagementEsDAO extends EsDAO implements UITemplateManage
final ElasticSearchConverter.ToStorage toStorage = new ElasticSearchConverter.ToStorage(UITemplate.INDEX_NAME);
builder.entity2Storage(uiTemplate, toStorage);
- getClient().forceInsert(UITemplate.INDEX_NAME, uiTemplate.id(), toStorage.obtain());
+ getClient().forceInsert(UITemplate.INDEX_NAME, uiTemplate.id().build(), toStorage.obtain());
return TemplateChangeStatus.builder().status(true).id(uiTemplate.getTemplateId()).build();
} catch (Exception e) {
log.error(e.getMessage(), e);
@@ -128,7 +128,7 @@ public class UITemplateManagementEsDAO extends EsDAO implements UITemplateManage
final UITemplate.Builder builder = new UITemplate.Builder();
final UITemplate uiTemplate = setting.toEntity();
- final boolean exist = getClient().existDoc(UITemplate.INDEX_NAME, uiTemplate.id());
+ final boolean exist = getClient().existDoc(UITemplate.INDEX_NAME, uiTemplate.id().build());
if (!exist) {
return TemplateChangeStatus.builder().status(false).id(setting.getId())
.message("Can't find the template").build();
@@ -136,7 +136,7 @@ public class UITemplateManagementEsDAO extends EsDAO implements UITemplateManage
final ElasticSearchConverter.ToStorage toStorage = new ElasticSearchConverter.ToStorage(UITemplate.INDEX_NAME);
builder.entity2Storage(uiTemplate, toStorage);
- getClient().forceUpdate(UITemplate.INDEX_NAME, uiTemplate.id(), toStorage.obtain());
+ getClient().forceUpdate(UITemplate.INDEX_NAME, uiTemplate.id().build(), toStorage.obtain());
return TemplateChangeStatus.builder().status(true).id(setting.getId()).build();
} catch (Exception e) {
log.error(e.getMessage(), e);
@@ -156,7 +156,7 @@ public class UITemplateManagementEsDAO extends EsDAO implements UITemplateManage
final ElasticSearchConverter.ToStorage toStorage = new ElasticSearchConverter.ToStorage(UITemplate.INDEX_NAME);
builder.entity2Storage(uiTemplate, toStorage);
- getClient().forceUpdate(UITemplate.INDEX_NAME, uiTemplate.id(), toStorage.obtain());
+ getClient().forceUpdate(UITemplate.INDEX_NAME, uiTemplate.id().build(), toStorage.obtain());
return TemplateChangeStatus.builder().status(true).id(id).build();
} else {
return TemplateChangeStatus.builder().status(false).id(id).message("Can't find the template")
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCManagementDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCManagementDAO.java
index 2aea8f6ef3..1a335a6d61 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCManagementDAO.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCManagementDAO.java
@@ -42,7 +42,7 @@ public class JDBCManagementDAO extends JDBCSQLExecutor implements IManagementDAO
@Override
public void insert(Model model, ManagementData storageData) throws IOException {
try (Connection connection = jdbcClient.getConnection()) {
- final StorageData data = getByID(jdbcClient, model.getName(), storageData.id(), storageBuilder);
+ final StorageData data = getByID(jdbcClient, model.getName(), storageData.id().build(), storageBuilder);
if (data != null) {
return;
}
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCMetricsDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCMetricsDAO.java
index 5170362df7..082bf2d913 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCMetricsDAO.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCMetricsDAO.java
@@ -40,7 +40,7 @@ public class JDBCMetricsDAO extends JDBCSQLExecutor implements IMetricsDAO {
@Override
public List<Metrics> multiGet(Model model, List<Metrics> metrics) throws IOException {
- String[] ids = metrics.stream().map(Metrics::id).collect(Collectors.toList()).toArray(new String[] {});
+ String[] ids = metrics.stream().map(m -> m.id().build()).collect(Collectors.toList()).toArray(new String[] {});
List<StorageData> storageDataList = getByIDs(jdbcClient, model.getName(), ids, storageBuilder);
List<Metrics> result = new ArrayList<>(storageDataList.size());
for (StorageData storageData : storageDataList) {
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCSQLExecutor.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCSQLExecutor.java
index c15f4768ae..6db79f18b2 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCSQLExecutor.java
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/common/dao/JDBCSQLExecutor.java
@@ -154,7 +154,7 @@ public class JDBCSQLExecutor {
SQLBuilder sqlBuilder = new SQLBuilder("INSERT INTO " + tableName + " VALUES");
List<Object> param = new ArrayList<>();
sqlBuilder.append("(?,");
- param.add(metrics.id());
+ param.add(metrics.id().build());
for (int i = 0; i < columns.size(); i++) {
ModelColumn column = columns.get(i);
sqlBuilder.append("?");
@@ -185,7 +185,7 @@ public class JDBCSQLExecutor {
SQLBuilder sqlBuilder = new SQLBuilder("INSERT INTO " + tableName + " VALUES");
List<Object> param = new ArrayList<>();
sqlBuilder.append("(?,");
- param.add(metrics.id());
+ param.add(metrics.id().build());
int position = 0;
List valueList = new ArrayList();
for (int i = 0; i < columns.size(); i++) {
@@ -257,7 +257,7 @@ public class JDBCSQLExecutor {
}
sqlBuilder.replace(sqlBuilder.length() - 1, sqlBuilder.length(), "");
sqlBuilder.append(" WHERE id = ?");
- param.add(metrics.id());
+ param.add(metrics.id().build());
return new SQLExecutor(sqlBuilder.toString(), param, callback);
}
diff --git a/oap-server/server-storage-plugin/storage-shardingsphere-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/shardingsphere/ServiceCpmMetrics.java b/oap-server/server-storage-plugin/storage-shardingsphere-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/shardingsphere/ServiceCpmMetrics.java
index 2982b5186b..96277e5452 100644
--- a/oap-server/server-storage-plugin/storage-shardingsphere-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/shardingsphere/ServiceCpmMetrics.java
+++ b/oap-server/server-storage-plugin/storage-shardingsphere-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/shardingsphere/ServiceCpmMetrics.java
@@ -21,13 +21,13 @@ package org.apache.skywalking.oap.server.storage.plugin.jdbc.shardingsphere;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
-import org.apache.skywalking.oap.server.core.Const;
import org.apache.skywalking.oap.server.core.analysis.Stream;
import org.apache.skywalking.oap.server.core.analysis.metrics.CPMMetrics;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
+import org.apache.skywalking.oap.server.core.storage.StorageID;
import org.apache.skywalking.oap.server.core.storage.annotation.Column;
@Stream(
@@ -51,8 +51,10 @@ public class ServiceCpmMetrics extends CPMMetrics {
private String entityId;
@Override
- protected String id0() {
- return getTimeBucket() + Const.ID_CONNECTOR + entityId;
+ protected StorageID id0() {
+ return new StorageID()
+ .append(TIME_BUCKET, getTimeBucket())
+ .append(ENTITY_ID, entityId);
}
@Override