You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by lu...@apache.org on 2022/04/30 09:03:34 UTC
[skywalking] 15/24: support metadata-v2
This is an automated email from the ASF dual-hosted git repository.
lujiajing pushed a commit to branch banyandb-integration-stream
in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit fa24b07b79e5c64db282891a7b613fcfd9a2880b
Author: Megrez Lu <lu...@gmail.com>
AuthorDate: Wed Jan 19 23:06:51 2022 +0800
support metadata-v2
---
...aller.java => BanyanDBAggregationQueryDAO.java} | 29 ++--
.../plugin/banyandb/BanyanDBIndexInstaller.java | 3 +
.../plugin/banyandb/BanyanDBMetricsQueryDAO.java | 51 +++++++
.../banyandb/BanyanDBStorageBuilderFactory.java | 26 +++-
.../plugin/banyandb/BanyanDBStorageClient.java | 8 +-
.../plugin/banyandb/BanyanDBStorageProvider.java | 18 ++-
...aller.java => BanyanDBTopNRecordsQueryDAO.java} | 29 ++--
.../storage/plugin/banyandb/StreamMetaInfo.java | 103 +++-----------
.../plugin/banyandb/schema/AlarmRecordBuilder.java | 10 +-
.../schema/BanyanDBStorageDataBuilder.java | 14 +-
.../schema/BrowserErrorLogRecordBuilder.java | 8 +-
... EndpointRelationServerSideMetricsBuilder.java} | 22 +--
.../plugin/banyandb/schema/EventBuilder.java | 8 +-
.../plugin/banyandb/schema/LogRecordBuilder.java | 8 +-
.../storage/plugin/banyandb/schema/Metadata.java | 52 +++++--
.../schema/NetworkAddressAliasBuilder.java | 8 +-
.../schema/ProfileTaskLogRecordBuilder.java | 8 +-
.../banyandb/schema/ProfileTaskRecordBuilder.java | 6 +-
.../schema/ProfileThreadSnapshotRecordBuilder.java | 8 +-
.../banyandb/schema/SegmentRecordBuilder.java | 8 +-
...eInstanceRelationClientSideMetricsBuilder.java} | 24 ++--
...eInstanceRelationServerSideMetricsBuilder.java} | 24 ++--
...> ServiceRelationClientSideMetricsBuilder.java} | 22 +--
...> ServiceRelationServerSideMetricsBuilder.java} | 22 +--
.../plugin/banyandb/schema/UITemplateBuilder.java | 8 +-
.../BanyanDBHistoryDeleteDAO.java} | 25 +---
.../banyandb/stream/BanyanDBManagementDAO.java | 10 +-
.../banyandb/stream/BanyanDBMetadataQueryDAO.java | 103 +++++---------
.../plugin/banyandb/stream/BanyanDBStorageDAO.java | 57 ++++++++
.../banyandb/stream/BanyanDBTopologyQueryDAO.java | 155 +++++++++++++++++++++
.../stream/BanyanDBUITemplateManagementDAO.java | 3 +-
.../metadata/index_rules/segment/db.instance.json | 5 +-
.../segment/{db.instance.json => db.type.json} | 7 +-
.../segment/{db.instance.json => duration.json} | 9 +-
.../segment/{db.instance.json => endpoint_id.json} | 7 +-
.../segment/{db.instance.json => http.method.json} | 7 +-
.../segment/{db.instance.json => mq.broker.json} | 7 +-
.../segment/{db.instance.json => mq.queue.json} | 7 +-
.../segment/{db.instance.json => mq.topic.json} | 7 +-
.../segment/{db.instance.json => status_code.json} | 7 +-
.../metadata/index_rules/segment/trace_id.json | 12 ++
.../db.instance.json => ui_template/disabled.json} | 7 +-
.../db.instance.json => ui_template/name.json} | 7 +-
.../src/main/resources/metadata/ui_template.json | 50 +++++++
44 files changed, 640 insertions(+), 379 deletions(-)
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
similarity index 50%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
index ffc5aaf586..771ec36bb4 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
@@ -18,27 +18,18 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb;
-import org.apache.skywalking.oap.server.core.storage.StorageException;
-import org.apache.skywalking.oap.server.core.storage.model.Model;
-import org.apache.skywalking.oap.server.core.storage.model.ModelInstaller;
-import org.apache.skywalking.oap.server.library.client.Client;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
+import org.apache.skywalking.oap.server.core.query.input.Duration;
+import org.apache.skywalking.oap.server.core.query.input.TopNCondition;
+import org.apache.skywalking.oap.server.core.query.type.KeyValue;
+import org.apache.skywalking.oap.server.core.query.type.SelectedRecord;
+import org.apache.skywalking.oap.server.core.storage.query.IAggregationQueryDAO;
-public class BanyanDBIndexInstaller extends ModelInstaller {
- public BanyanDBIndexInstaller(Client client, ModuleManager moduleManager) {
- super(client, moduleManager);
- }
-
- @Override
- protected boolean isExists(Model model) throws StorageException {
- return false;
- }
+import java.io.IOException;
+import java.util.List;
+public class BanyanDBAggregationQueryDAO implements IAggregationQueryDAO {
@Override
- protected void createTable(Model model) throws StorageException {
- StreamMetaInfo metaInfo = StreamMetaInfo.addModel(model);
- if (metaInfo != null) {
- ((BanyanDBStorageClient) client).createStream(metaInfo);
- }
+ public List<SelectedRecord> sortMetrics(TopNCondition condition, String valueColumnName, Duration duration, List<KeyValue> additionalConditions) throws IOException {
+ return null;
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
index ffc5aaf586..c9566b1549 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
@@ -18,12 +18,14 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb;
+import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.oap.server.core.storage.StorageException;
import org.apache.skywalking.oap.server.core.storage.model.Model;
import org.apache.skywalking.oap.server.core.storage.model.ModelInstaller;
import org.apache.skywalking.oap.server.library.client.Client;
import org.apache.skywalking.oap.server.library.module.ModuleManager;
+@Slf4j
public class BanyanDBIndexInstaller extends ModelInstaller {
public BanyanDBIndexInstaller(Client client, ModuleManager moduleManager) {
super(client, moduleManager);
@@ -38,6 +40,7 @@ public class BanyanDBIndexInstaller extends ModelInstaller {
protected void createTable(Model model) throws StorageException {
StreamMetaInfo metaInfo = StreamMetaInfo.addModel(model);
if (metaInfo != null) {
+ log.info("install index {}", model.getName());
((BanyanDBStorageClient) client).createStream(metaInfo);
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBMetricsQueryDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBMetricsQueryDAO.java
new file mode 100644
index 0000000000..96a12760f9
--- /dev/null
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBMetricsQueryDAO.java
@@ -0,0 +1,51 @@
+/*
+ * 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.storage.plugin.banyandb;
+
+import org.apache.skywalking.oap.server.core.query.input.Duration;
+import org.apache.skywalking.oap.server.core.query.input.MetricsCondition;
+import org.apache.skywalking.oap.server.core.query.type.HeatMap;
+import org.apache.skywalking.oap.server.core.query.type.MetricsValues;
+import org.apache.skywalking.oap.server.core.storage.query.IMetricsQueryDAO;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
+public class BanyanDBMetricsQueryDAO implements IMetricsQueryDAO {
+ @Override
+ public long readMetricsValue(MetricsCondition condition, String valueColumnName, Duration duration) throws IOException {
+ return 0;
+ }
+
+ @Override
+ public MetricsValues readMetricsValues(MetricsCondition condition, String valueColumnName, Duration duration) throws IOException {
+ return null;
+ }
+
+ @Override
+ public List<MetricsValues> readLabeledMetricsValues(MetricsCondition condition, String valueColumnName, List<String> labels, Duration duration) throws IOException {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public HeatMap readHeatMap(MetricsCondition condition, String valueColumnName, Duration duration) throws IOException {
+ return null;
+ }
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageBuilderFactory.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageBuilderFactory.java
index b87d3d1dc5..0cb10763eb 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageBuilderFactory.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageBuilderFactory.java
@@ -18,11 +18,17 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb;
+import lombok.extern.slf4j.Slf4j;
import org.apache.skywalking.oap.server.core.alarm.AlarmRecord;
import org.apache.skywalking.oap.server.core.analysis.manual.endpoint.EndpointTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.log.LogRecord;
import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.endpoint.EndpointRelationServerSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.instance.ServiceInstanceRelationClientSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.instance.ServiceInstanceRelationServerSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.service.ServiceRelationClientSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.service.ServiceRelationServerSideMetrics;
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
import org.apache.skywalking.oap.server.core.analysis.manual.service.ServiceTraffic;
import org.apache.skywalking.oap.server.core.browser.manual.errorlog.BrowserErrorLogRecord;
@@ -37,6 +43,7 @@ import org.apache.skywalking.oap.server.core.storage.StorageHashMapBuilder;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.AlarmRecordBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.BrowserErrorLogRecordBuilder;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.EndpointRelationServerSideMetricsBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.EventBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.LogRecordBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.Metadata;
@@ -45,9 +52,16 @@ import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.ProfileTa
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.ProfileTaskRecordBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.ProfileThreadSnapshotRecordBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.SegmentRecordBuilder;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.ServiceInstanceRelationClientSideMetricsBuilder;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.ServiceInstanceRelationServerSideMetricsBuilder;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.ServiceRelationClientSideMetricsBuilder;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.ServiceRelationServerSideMetricsBuilder;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.UITemplateBuilder;
+@Slf4j
public class BanyanDBStorageBuilderFactory implements StorageBuilderFactory {
+ private static final StorageBuilderFactory FALLBACK = new StorageBuilderFactory.Default();
+
@Override
public BuilderTemplateDefinition builderTemplate() {
return new BuilderTemplateDefinition(StorageHashMapBuilder.class.getName(), "metrics-builder");
@@ -81,8 +95,18 @@ public class BanyanDBStorageBuilderFactory implements StorageBuilderFactory {
return Metadata.EndpointTrafficBuilder.class;
} else if (NetworkAddressAlias.class.equals(dataType)) {
return NetworkAddressAliasBuilder.class;
+ } else if (EndpointRelationServerSideMetrics.class.equals(dataType)) {
+ return EndpointRelationServerSideMetricsBuilder.class;
+ } else if (ServiceRelationServerSideMetrics.class.equals(dataType)) {
+ return ServiceRelationServerSideMetricsBuilder.class;
+ } else if (ServiceRelationClientSideMetrics.class.equals(dataType)) {
+ return ServiceRelationClientSideMetricsBuilder.class;
+ } else if (ServiceInstanceRelationServerSideMetrics.class.equals(dataType)) {
+ return ServiceInstanceRelationServerSideMetricsBuilder.class;
+ } else if (ServiceInstanceRelationClientSideMetrics.class.equals(dataType)) {
+ return ServiceInstanceRelationClientSideMetricsBuilder.class;
}
- throw new UnsupportedOperationException("unsupported storage type");
+ return FALLBACK.builderOf(dataType, defaultBuilder);
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
index 2ee45b12f0..7d61e4e085 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java
@@ -31,9 +31,6 @@ import org.apache.skywalking.oap.server.library.client.healthcheck.HealthCheckab
import org.apache.skywalking.oap.server.library.util.HealthChecker;
import java.io.IOException;
-import java.time.Instant;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
/**
* BanyanDBStorageClient is a simple wrapper for the underlying {@link BanyanDBClient},
@@ -71,10 +68,7 @@ public class BanyanDBStorageClient implements Client, HealthCheckable {
public void createStream(StreamMetaInfo streamMetaInfo) {
Stream stm = this.client.define(streamMetaInfo.getStream());
if (stm != null) {
- // TODO: should be fixed in SDK
- this.client.defineIndexRules(stm, ZonedDateTime.from(Instant.now()),
- ZonedDateTime.of(2099, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC),
- streamMetaInfo.getIndexRules().toArray(new IndexRule[]{}));
+ this.client.defineIndexRules(stm, streamMetaInfo.getIndexRules().toArray(new IndexRule[]{}));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageProvider.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageProvider.java
index 64f8e96cbf..6d4340e48d 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageProvider.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageProvider.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.storage.plugin.banyandb;
import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.config.ConfigService;
import org.apache.skywalking.oap.server.core.storage.IBatchDAO;
+import org.apache.skywalking.oap.server.core.storage.IHistoryDeleteDAO;
import org.apache.skywalking.oap.server.core.storage.StorageBuilderFactory;
import org.apache.skywalking.oap.server.core.storage.StorageDAO;
import org.apache.skywalking.oap.server.core.storage.StorageModule;
@@ -30,11 +31,15 @@ import org.apache.skywalking.oap.server.core.storage.model.ModelCreator;
import org.apache.skywalking.oap.server.core.storage.profile.IProfileTaskLogQueryDAO;
import org.apache.skywalking.oap.server.core.storage.profile.IProfileTaskQueryDAO;
import org.apache.skywalking.oap.server.core.storage.profile.IProfileThreadSnapshotQueryDAO;
+import org.apache.skywalking.oap.server.core.storage.query.IAggregationQueryDAO;
import org.apache.skywalking.oap.server.core.storage.query.IAlarmQueryDAO;
import org.apache.skywalking.oap.server.core.storage.query.IBrowserLogQueryDAO;
import org.apache.skywalking.oap.server.core.storage.query.IEventQueryDAO;
import org.apache.skywalking.oap.server.core.storage.query.ILogQueryDAO;
import org.apache.skywalking.oap.server.core.storage.query.IMetadataQueryDAO;
+import org.apache.skywalking.oap.server.core.storage.query.IMetricsQueryDAO;
+import org.apache.skywalking.oap.server.core.storage.query.ITopNRecordsQueryDAO;
+import org.apache.skywalking.oap.server.core.storage.query.ITopologyQueryDAO;
import org.apache.skywalking.oap.server.core.storage.query.ITraceQueryDAO;
import org.apache.skywalking.oap.server.library.module.ModuleConfig;
import org.apache.skywalking.oap.server.library.module.ModuleDefine;
@@ -45,6 +50,7 @@ import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBA
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBBatchDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBBrowserLogQueryDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBEventQueryDAO;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBHistoryDeleteDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBLogQueryDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBMetadataQueryDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBNetworkAddressAliasDAO;
@@ -52,6 +58,7 @@ import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBP
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBProfileTaskQueryDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBProfileThreadSnapshotQueryDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBStorageDAO;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBTopologyQueryDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBTraceQueryDAO;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBUITemplateManagementDAO;
import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
@@ -88,25 +95,28 @@ public class BanyanDBStorageProvider extends ModuleProvider {
this.client = new BanyanDBStorageClient(config.getHost(), config.getPort(), config.getGroup());
+ // Stream
this.registerServiceImplementation(IBatchDAO.class, new BanyanDBBatchDAO(client, config.getMaxBulkSize(), config.getFlushInterval(), config.getConcurrentWriteThreads()));
this.registerServiceImplementation(StorageDAO.class, new BanyanDBStorageDAO(client));
-
this.registerServiceImplementation(INetworkAddressAliasDAO.class, new BanyanDBNetworkAddressAliasDAO(client));
-
this.registerServiceImplementation(ITraceQueryDAO.class, new BanyanDBTraceQueryDAO(client));
this.registerServiceImplementation(IBrowserLogQueryDAO.class, new BanyanDBBrowserLogQueryDAO(client));
this.registerServiceImplementation(IMetadataQueryDAO.class, new BanyanDBMetadataQueryDAO(client));
this.registerServiceImplementation(IAlarmQueryDAO.class, new BanyanDBAlarmQueryDAO(client));
this.registerServiceImplementation(ILogQueryDAO.class, new BanyanDBLogQueryDAO(client));
-
this.registerServiceImplementation(IProfileTaskQueryDAO.class, new BanyanDBProfileTaskQueryDAO(client));
this.registerServiceImplementation(IProfileTaskLogQueryDAO.class, new BanyanDBProfileTaskLogQueryDAO(client, this.config.getFetchTaskLogMaxSize()));
this.registerServiceImplementation(
IProfileThreadSnapshotQueryDAO.class, new BanyanDBProfileThreadSnapshotQueryDAO(client));
this.registerServiceImplementation(UITemplateManagementDAO.class, new BanyanDBUITemplateManagementDAO(client));
-
this.registerServiceImplementation(IEventQueryDAO.class, new BanyanDBEventQueryDAO(client));
+ this.registerServiceImplementation(ITopologyQueryDAO.class, new BanyanDBTopologyQueryDAO(client));
+ // TODO: metrics
+ this.registerServiceImplementation(IHistoryDeleteDAO.class, new BanyanDBHistoryDeleteDAO());
+ this.registerServiceImplementation(IMetricsQueryDAO.class, new BanyanDBMetricsQueryDAO());
+ this.registerServiceImplementation(IAggregationQueryDAO.class, new BanyanDBAggregationQueryDAO());
+ this.registerServiceImplementation(ITopNRecordsQueryDAO.class, new BanyanDBTopNRecordsQueryDAO());
}
@Override
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBTopNRecordsQueryDAO.java
similarity index 50%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBTopNRecordsQueryDAO.java
index ffc5aaf586..97f549ddfb 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBTopNRecordsQueryDAO.java
@@ -18,27 +18,18 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb;
-import org.apache.skywalking.oap.server.core.storage.StorageException;
-import org.apache.skywalking.oap.server.core.storage.model.Model;
-import org.apache.skywalking.oap.server.core.storage.model.ModelInstaller;
-import org.apache.skywalking.oap.server.library.client.Client;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
+import org.apache.skywalking.oap.server.core.query.input.Duration;
+import org.apache.skywalking.oap.server.core.query.input.TopNCondition;
+import org.apache.skywalking.oap.server.core.query.type.SelectedRecord;
+import org.apache.skywalking.oap.server.core.storage.query.ITopNRecordsQueryDAO;
-public class BanyanDBIndexInstaller extends ModelInstaller {
- public BanyanDBIndexInstaller(Client client, ModuleManager moduleManager) {
- super(client, moduleManager);
- }
-
- @Override
- protected boolean isExists(Model model) throws StorageException {
- return false;
- }
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+public class BanyanDBTopNRecordsQueryDAO implements ITopNRecordsQueryDAO {
@Override
- protected void createTable(Model model) throws StorageException {
- StreamMetaInfo metaInfo = StreamMetaInfo.addModel(model);
- if (metaInfo != null) {
- ((BanyanDBStorageClient) client).createStream(metaInfo);
- }
+ public List<SelectedRecord> readSampledRecords(TopNCondition condition, String valueColumnName, Duration duration) throws IOException {
+ return Collections.emptyList();
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/StreamMetaInfo.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/StreamMetaInfo.java
index 1fbf2eb636..9dda0ead72 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/StreamMetaInfo.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/StreamMetaInfo.java
@@ -24,7 +24,7 @@ import com.google.protobuf.util.JsonFormat;
import lombok.Builder;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
-import org.apache.skywalking.banyandb.database.v1.metadata.BanyandbMetadata;
+import org.apache.skywalking.banyandb.database.v1.BanyandbDatabase;
import org.apache.skywalking.banyandb.v1.client.metadata.Duration;
import org.apache.skywalking.banyandb.v1.client.metadata.IndexRule;
import org.apache.skywalking.banyandb.v1.client.metadata.Stream;
@@ -46,6 +46,8 @@ public class StreamMetaInfo {
public static final String TAG_FAMILY_SEARCHABLE = "searchable";
public static final String TAG_FAMILY_DATA = "data";
+ public static final String ID = "id";
+
private static final Map<String, StreamMetaInfo> STREAMS = new HashMap<>();
private final Model model;
@@ -62,35 +64,33 @@ public class StreamMetaInfo {
private final List<IndexRule> indexRules;
public static StreamMetaInfo addModel(Model model) {
- BanyandbMetadata.Stream pbStream = parseStreamFromJSON(model.getName());
+ BanyandbDatabase.Stream pbStream = parseStreamFromJSON(model.getName());
if (pbStream == null) {
- log.warn("fail to find the stream schema {}", model.getName());
+ log.warn("fail to find stream schema {}", model.getName());
return null;
}
- BanyandbMetadata.Duration duration = pbStream.getOpts().getTtl();
- Duration ttl = fromProtobuf(duration);
+ BanyandbDatabase.Duration duration = pbStream.getOpts().getTtl();
+ Duration ttl = Duration.fromProtobuf(duration);
final Stream stream = new Stream(pbStream.getMetadata().getName(), pbStream.getOpts().getShardNum(), ttl);
List<IndexRule> indexRules = new ArrayList<>();
stream.setEntityTagNames(pbStream.getEntity().getTagNamesList());
- for (BanyandbMetadata.TagFamilySpec pbTagFamilySpec : pbStream.getTagFamiliesList()) {
- final TagFamilySpec tagFamilySpec = new TagFamilySpec(pbTagFamilySpec.getName());
- final boolean needIndexParse = pbTagFamilySpec.getName().equals(TAG_FAMILY_SEARCHABLE);
- for (final BanyandbMetadata.TagSpec pbTagSpec : pbTagFamilySpec.getTagsList()) {
- tagFamilySpec.addTagSpec(parseTagSpec(pbTagSpec));
-
- // if the tag family equals to "searchable", build index rules
- if (needIndexParse) {
- BanyandbMetadata.IndexRule pbIndexRule = parseIndexRulesFromJSON(model.getName(), pbTagSpec.getName());
+
+
+ for (BanyandbDatabase.TagFamilySpec pbTagFamilySpec : pbStream.getTagFamiliesList()) {
+ final TagFamilySpec tagFamilySpec = TagFamilySpec.fromProtobuf(pbTagFamilySpec);
+ stream.addTagFamilySpec(tagFamilySpec);
+
+ // if the tag family equals to "searchable", build index rules
+ if (tagFamilySpec.getTagFamilyName().equals(TAG_FAMILY_SEARCHABLE)) {
+ for (final TagFamilySpec.TagSpec tagSpec : tagFamilySpec.getTagSpecs()) {
+ BanyandbDatabase.IndexRule pbIndexRule = parseIndexRulesFromJSON(model.getName(), tagSpec.getTagName());
if (pbIndexRule == null) {
- log.warn("fail to find the index rule for {}", pbTagSpec.getName());
+ log.warn("fail to find the index rule for {}", tagSpec.getTagName());
continue;
}
- IndexRule.IndexType indexType = fromProtobuf(pbIndexRule.getType());
- IndexRule.IndexLocation indexLocation = fromProtobuf(pbIndexRule.getLocation());
- IndexRule indexRule = new IndexRule(pbIndexRule.getMetadata().getName(), indexType, indexLocation);
- indexRule.setTags(new ArrayList<>(pbIndexRule.getTagsList()));
+ IndexRule indexRule = IndexRule.fromProtobuf(pbIndexRule);
indexRules.add(indexRule);
}
}
@@ -99,31 +99,14 @@ public class StreamMetaInfo {
return StreamMetaInfo.builder().model(model).stream(stream).indexRules(indexRules).build();
}
- private static TagFamilySpec.TagSpec parseTagSpec(BanyandbMetadata.TagSpec pbTagSpec) {
- switch (pbTagSpec.getType()) {
- case TAG_TYPE_INT:
- return TagFamilySpec.TagSpec.newIntTag(pbTagSpec.getName());
- case TAG_TYPE_INT_ARRAY:
- return TagFamilySpec.TagSpec.newIntArrayTag(pbTagSpec.getName());
- case TAG_TYPE_STRING:
- return TagFamilySpec.TagSpec.newStringTag(pbTagSpec.getName());
- case TAG_TYPE_STRING_ARRAY:
- return TagFamilySpec.TagSpec.newStringArrayTag(pbTagSpec.getName());
- case TAG_TYPE_DATA_BINARY:
- return TagFamilySpec.TagSpec.newBinaryTag(pbTagSpec.getName());
- default:
- throw new IllegalArgumentException("unrecognized tag type");
- }
- }
-
- private static BanyandbMetadata.Stream parseStreamFromJSON(String name) {
+ private static BanyandbDatabase.Stream parseStreamFromJSON(String name) {
try {
InputStream is = StreamMetaInfo.class.getClassLoader().getResourceAsStream("metadata/" + name + ".json");
if (is == null) {
return null;
}
String result = CharStreams.toString(new InputStreamReader(is, Charsets.UTF_8));
- BanyandbMetadata.Stream.Builder b = BanyandbMetadata.Stream.newBuilder();
+ BanyandbDatabase.Stream.Builder b = BanyandbDatabase.Stream.newBuilder();
JsonFormat.parser().merge(result, b);
return b.build();
} catch (IOException ioEx) {
@@ -132,7 +115,7 @@ public class StreamMetaInfo {
}
}
- private static BanyandbMetadata.IndexRule parseIndexRulesFromJSON(String streamName, String name) {
+ private static BanyandbDatabase.IndexRule parseIndexRulesFromJSON(String streamName, String name) {
try {
InputStream is = StreamMetaInfo.class.getClassLoader().getResourceAsStream(String.join("/",
new String[]{"metadata", "index_rules", streamName, name + ".json"}));
@@ -140,7 +123,7 @@ public class StreamMetaInfo {
return null;
}
String result = CharStreams.toString(new InputStreamReader(is, Charsets.UTF_8));
- BanyandbMetadata.IndexRule.Builder b = BanyandbMetadata.IndexRule.newBuilder();
+ BanyandbDatabase.IndexRule.Builder b = BanyandbDatabase.IndexRule.newBuilder();
JsonFormat.parser().merge(result, b);
return b.build();
} catch (IOException ioEx) {
@@ -148,44 +131,4 @@ public class StreamMetaInfo {
return null;
}
}
-
- // TODO: change modifier to public in SDK
- static Duration fromProtobuf(BanyandbMetadata.Duration duration) {
- switch (duration.getUnit()) {
- case DURATION_UNIT_DAY:
- return Duration.ofDays(duration.getVal());
- case DURATION_UNIT_HOUR:
- return Duration.ofHours(duration.getVal());
- case DURATION_UNIT_MONTH:
- return Duration.ofMonths(duration.getVal());
- case DURATION_UNIT_WEEK:
- return Duration.ofWeeks(duration.getVal());
- default:
- throw new IllegalArgumentException("unrecognized DurationUnit");
- }
- }
-
- // TODO: change modifier to public in SDK
- private static IndexRule.IndexType fromProtobuf(BanyandbMetadata.IndexRule.Type type) {
- switch (type) {
- case TYPE_TREE:
- return IndexRule.IndexType.TREE;
- case TYPE_INVERTED:
- return IndexRule.IndexType.INVERTED;
- default:
- throw new IllegalArgumentException("unrecognized index type");
- }
- }
-
- // TODO: change modifier to public in SDK
- private static IndexRule.IndexLocation fromProtobuf(BanyandbMetadata.IndexRule.Location loc) {
- switch (loc) {
- case LOCATION_GLOBAL:
- return IndexRule.IndexLocation.GLOBAL;
- case LOCATION_SERIES:
- return IndexRule.IndexLocation.SERIES;
- default:
- throw new IllegalArgumentException("unrecognized index location");
- }
- }
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/AlarmRecordBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/AlarmRecordBuilder.java
index a8a2863306..260fc17664 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/AlarmRecordBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/AlarmRecordBuilder.java
@@ -19,7 +19,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
import com.google.common.collect.ImmutableList;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.alarm.AlarmRecord;
@@ -33,8 +33,8 @@ public class AlarmRecordBuilder extends BanyanDBStorageDataBuilder<AlarmRecord>
);
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(AlarmRecord entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(2);
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(AlarmRecord entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(2);
searchable.add(TagAndValue.longField(entity.getScope()));
searchable.add(TagAndValue.longField(entity.getStartTime()));
searchable.addAll(filterSearchableTags(entity.getTags(), INDEXED_TAGS));
@@ -42,8 +42,8 @@ public class AlarmRecordBuilder extends BanyanDBStorageDataBuilder<AlarmRecord>
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(AlarmRecord entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>(6);
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(AlarmRecord entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> data = new ArrayList<>(6);
data.add(TagAndValue.stringField(entity.getName()));
data.add(TagAndValue.stringField(entity.getId0()));
data.add(TagAndValue.stringField(entity.getId1()));
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BanyanDBStorageDataBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BanyanDBStorageDataBuilder.java
index 03ee0328f3..814f3149f7 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BanyanDBStorageDataBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BanyanDBStorageDataBuilder.java
@@ -18,7 +18,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.StreamWrite;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
@@ -55,17 +55,17 @@ public abstract class BanyanDBStorageDataBuilder<T extends StorageData> implemen
return null;
}
- protected List<SerializableTag<Banyandb.TagValue>> filterSearchableTags(List<Tag> rawTags, List<String> indexTags) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> filterSearchableTags(List<Tag> rawTags, List<String> indexTags) {
if (rawTags == null) {
return Collections.emptyList();
}
- Map<String, SerializableTag<Banyandb.TagValue>> map = new HashMap<>();
+ Map<String, SerializableTag<BanyandbModel.TagValue>> map = new HashMap<>();
for (final Tag tag : rawTags) {
map.put(tag.getKey().toLowerCase(), TagAndValue.stringField(tag.getValue()));
}
- final List<SerializableTag<Banyandb.TagValue>> tags = new ArrayList<>();
+ final List<SerializableTag<BanyandbModel.TagValue>> tags = new ArrayList<>();
for (String indexedTag : indexTags) {
- SerializableTag<Banyandb.TagValue> tag = map.get(indexedTag);
+ SerializableTag<BanyandbModel.TagValue> tag = map.get(indexedTag);
if (tag == null) {
tags.add(TagAndValue.nullField());
} else {
@@ -80,9 +80,9 @@ public abstract class BanyanDBStorageDataBuilder<T extends StorageData> implemen
return entity.id();
}
- abstract protected List<SerializableTag<Banyandb.TagValue>> searchableTags(T entity);
+ abstract protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(T entity);
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(T entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(T entity) {
return Collections.emptyList();
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BrowserErrorLogRecordBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BrowserErrorLogRecordBuilder.java
index 98b9bd0e6b..034565249b 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BrowserErrorLogRecordBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/BrowserErrorLogRecordBuilder.java
@@ -18,7 +18,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.browser.manual.errorlog.BrowserErrorLogRecord;
@@ -29,8 +29,8 @@ import java.util.List;
public class BrowserErrorLogRecordBuilder extends BanyanDBStorageDataBuilder<BrowserErrorLogRecord> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(BrowserErrorLogRecord entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>();
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(BrowserErrorLogRecord entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>();
searchable.add(TagAndValue.stringField(entity.getUniqueId()));
searchable.add(TagAndValue.stringField(entity.getServiceId()));
searchable.add(TagAndValue.stringField(entity.getServiceVersionId()));
@@ -40,7 +40,7 @@ public class BrowserErrorLogRecordBuilder extends BanyanDBStorageDataBuilder<Bro
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(BrowserErrorLogRecord entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(BrowserErrorLogRecord entity) {
return Collections.singletonList(TagAndValue.binaryField(entity.getDataBinary()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/EndpointRelationServerSideMetricsBuilder.java
similarity index 57%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/EndpointRelationServerSideMetricsBuilder.java
index 83bf0abfab..ec25c79e10 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/EndpointRelationServerSideMetricsBuilder.java
@@ -18,27 +18,27 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
-import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.endpoint.EndpointRelationServerSideMetrics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class NetworkAddressAliasBuilder extends BanyanDBStorageDataBuilder<NetworkAddressAlias> {
+public class EndpointRelationServerSideMetricsBuilder extends BanyanDBStorageDataBuilder<EndpointRelationServerSideMetrics> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(NetworkAddressAlias entity) {
- return Collections.singletonList(TagAndValue.longField(entity.getLastUpdateTimeBucket()));
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(EndpointRelationServerSideMetrics entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>();
+ searchable.add(TagAndValue.stringField(entity.getSourceEndpoint()));
+ searchable.add(TagAndValue.stringField(entity.getDestEndpoint()));
+ searchable.add(TagAndValue.stringField(entity.getEntityId()));
+ return searchable;
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(NetworkAddressAlias entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
- data.add(TagAndValue.stringField(entity.getAddress()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceId()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceInstanceId()));
- return data;
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(EndpointRelationServerSideMetrics entity) {
+ return Collections.singletonList(TagAndValue.longField(entity.getComponentId()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/EventBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/EventBuilder.java
index bc604776c9..512fe2aa5c 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/EventBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/EventBuilder.java
@@ -19,7 +19,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
import com.google.common.collect.ImmutableList;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.source.Event;
@@ -29,8 +29,8 @@ import java.util.List;
public class EventBuilder extends BanyanDBStorageDataBuilder<Event> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(Event entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(8);
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(Event entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(8);
searchable.add(TagAndValue.stringField(entity.getUuid()));
searchable.add(TagAndValue.stringField(entity.getService()));
searchable.add(TagAndValue.stringField(entity.getServiceInstance()));
@@ -43,7 +43,7 @@ public class EventBuilder extends BanyanDBStorageDataBuilder<Event> {
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(Event entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(Event entity) {
return ImmutableList.of(
TagAndValue.stringField(entity.getMessage()),
TagAndValue.stringField(entity.getParameters())
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/LogRecordBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/LogRecordBuilder.java
index 02809d68aa..8fddd927a4 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/LogRecordBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/LogRecordBuilder.java
@@ -19,7 +19,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
import com.google.common.collect.ImmutableList;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.analysis.manual.log.LogRecord;
@@ -33,8 +33,8 @@ public class LogRecordBuilder extends BanyanDBStorageDataBuilder<LogRecord> {
);
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(LogRecord entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>();
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(LogRecord entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>();
searchable.add(TagAndValue.stringField(entity.getUniqueId()));
searchable.add(TagAndValue.stringField(entity.getServiceId()));
searchable.add(TagAndValue.stringField(entity.getServiceInstanceId()));
@@ -48,7 +48,7 @@ public class LogRecordBuilder extends BanyanDBStorageDataBuilder<LogRecord> {
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(LogRecord entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(LogRecord entity) {
return ImmutableList.of(
TagAndValue.stringField(entity.getContent()),
TagAndValue.longField(entity.getContentType()),
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/Metadata.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/Metadata.java
index 66f3218965..545cd507d6 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/Metadata.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/Metadata.java
@@ -18,9 +18,10 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
+import org.apache.skywalking.oap.server.core.analysis.Layer;
import org.apache.skywalking.oap.server.core.analysis.manual.endpoint.EndpointTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.service.ServiceTraffic;
@@ -29,39 +30,68 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import static org.apache.skywalking.oap.server.core.Const.DOUBLE_COLONS_SPLIT;
+
public class Metadata {
public static class ServiceTrafficBuilder extends BanyanDBStorageDataBuilder<ServiceTraffic> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(ServiceTraffic entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(3);
- searchable.add(TagAndValue.stringField(entity.getName()));
- searchable.add(TagAndValue.longField(entity.getNodeType().value()));
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ServiceTraffic entity) {
+ final String serviceName = entity.getName();
+ entity.setShortName(serviceName);
+ if (entity.isNormal()) {
+ int groupIdx = serviceName.indexOf(DOUBLE_COLONS_SPLIT);
+ if (groupIdx > 0) {
+ entity.setGroup(serviceName.substring(0, groupIdx));
+ entity.setShortName(serviceName.substring(groupIdx + 2));
+ }
+ }
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(4);
+ // 0 - serviceName
+ searchable.add(TagAndValue.stringField(serviceName));
+ // 1 - serviceID
+ searchable.add(TagAndValue.stringField(entity.getServiceId()));
+ // 2 - layer
+ Layer layer = entity.getLayer();
+ searchable.add(TagAndValue.longField(layer != null ? layer.value() : Layer.UNDEFINED.value()));
+ // 3 - group
searchable.add(TagAndValue.stringField(entity.getGroup()));
return searchable;
}
+
+ @Override
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(ServiceTraffic entity) {
+ // shortName
+ return Collections.singletonList(TagAndValue.stringField(entity.getShortName()));
+ }
}
public static class EndpointTrafficBuilder extends BanyanDBStorageDataBuilder<EndpointTraffic> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(EndpointTraffic entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(2);
- searchable.add(TagAndValue.stringField(entity.getServiceId()));
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(EndpointTraffic entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(2);
+ // 0 - name
searchable.add(TagAndValue.stringField(entity.getName()));
+ // 1 - serviceID
+ searchable.add(TagAndValue.stringField(entity.getServiceId()));
return searchable;
}
}
public static class InstanceTrafficBuilder extends BanyanDBStorageDataBuilder<InstanceTraffic> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(InstanceTraffic entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(2);
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(InstanceTraffic entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(3);
+ // serviceID
searchable.add(TagAndValue.stringField(entity.getServiceId()));
+ // lastPingTimestamp
searchable.add(TagAndValue.longField(entity.getLastPingTimestamp()));
+ // ID: we have to duplicate "ID" here for query
+ searchable.add(TagAndValue.stringField(entity.id()));
return searchable;
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(InstanceTraffic entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(InstanceTraffic entity) {
return Collections.singletonList(TagAndValue.binaryField(
entity.serialize().build().toByteArray()
));
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
index 83bf0abfab..ee85a50b03 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
@@ -18,7 +18,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias;
@@ -29,13 +29,13 @@ import java.util.List;
public class NetworkAddressAliasBuilder extends BanyanDBStorageDataBuilder<NetworkAddressAlias> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(NetworkAddressAlias entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(NetworkAddressAlias entity) {
return Collections.singletonList(TagAndValue.longField(entity.getLastUpdateTimeBucket()));
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(NetworkAddressAlias entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(NetworkAddressAlias entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> data = new ArrayList<>();
data.add(TagAndValue.stringField(entity.getAddress()));
data.add(TagAndValue.stringField(entity.getRepresentServiceId()));
data.add(TagAndValue.stringField(entity.getRepresentServiceInstanceId()));
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskLogRecordBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskLogRecordBuilder.java
index 888cac6b10..a0cab9c112 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskLogRecordBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskLogRecordBuilder.java
@@ -18,7 +18,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.profile.ProfileTaskLogRecord;
@@ -29,13 +29,13 @@ import java.util.List;
public class ProfileTaskLogRecordBuilder extends BanyanDBStorageDataBuilder<ProfileTaskLogRecord> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(ProfileTaskLogRecord entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ProfileTaskLogRecord entity) {
return Collections.singletonList(TagAndValue.longField(entity.getOperationTime()));
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(ProfileTaskLogRecord entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(ProfileTaskLogRecord entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> data = new ArrayList<>();
data.add(TagAndValue.stringField(entity.getTaskId()));
data.add(TagAndValue.stringField(entity.getInstanceId()));
data.add(TagAndValue.longField(entity.getOperationType()));
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskRecordBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskRecordBuilder.java
index b107cadc31..bc91290976 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskRecordBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileTaskRecordBuilder.java
@@ -18,7 +18,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.profile.ProfileTaskRecord;
@@ -28,8 +28,8 @@ import java.util.List;
public class ProfileTaskRecordBuilder extends BanyanDBStorageDataBuilder<ProfileTaskRecord> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(ProfileTaskRecord entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(9);
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ProfileTaskRecord entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(9);
searchable.add(TagAndValue.stringField(entity.id()));
searchable.add(TagAndValue.stringField(entity.getServiceId()));
searchable.add(TagAndValue.stringField(entity.getEndpointName()));
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileThreadSnapshotRecordBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileThreadSnapshotRecordBuilder.java
index 10032246ec..28c0ba5f38 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileThreadSnapshotRecordBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ProfileThreadSnapshotRecordBuilder.java
@@ -18,7 +18,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.profile.ProfileThreadSnapshotRecord;
@@ -29,8 +29,8 @@ import java.util.List;
public class ProfileThreadSnapshotRecordBuilder extends BanyanDBStorageDataBuilder<ProfileThreadSnapshotRecord> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(ProfileThreadSnapshotRecord entity) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(4);
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ProfileThreadSnapshotRecord entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(4);
searchable.add(TagAndValue.stringField(entity.getTaskId()));
searchable.add(TagAndValue.stringField(entity.getSegmentId()));
searchable.add(TagAndValue.longField(entity.getDumpTime()));
@@ -39,7 +39,7 @@ public class ProfileThreadSnapshotRecordBuilder extends BanyanDBStorageDataBuild
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(ProfileThreadSnapshotRecord entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(ProfileThreadSnapshotRecord entity) {
return Collections.singletonList(TagAndValue.binaryField(entity.getStackBinary()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/SegmentRecordBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/SegmentRecordBuilder.java
index a87dc9aa86..0aa54cd3c1 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/SegmentRecordBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/SegmentRecordBuilder.java
@@ -19,7 +19,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
import com.google.common.collect.ImmutableList;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
@@ -40,8 +40,8 @@ public class SegmentRecordBuilder extends BanyanDBStorageDataBuilder<SegmentReco
);
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(SegmentRecord segmentRecord) {
- List<SerializableTag<Banyandb.TagValue>> searchable = new ArrayList<>(10);
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(SegmentRecord segmentRecord) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>(10);
searchable.add(TagAndValue.stringField(segmentRecord.getTraceId()));
searchable.add(TagAndValue.stringField(segmentRecord.getServiceId()));
searchable.add(TagAndValue.stringField(segmentRecord.getServiceInstanceId()));
@@ -54,7 +54,7 @@ public class SegmentRecordBuilder extends BanyanDBStorageDataBuilder<SegmentReco
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(SegmentRecord entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(SegmentRecord entity) {
return Collections.singletonList(TagAndValue.binaryField(entity.getDataBinary()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceInstanceRelationClientSideMetricsBuilder.java
similarity index 52%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceInstanceRelationClientSideMetricsBuilder.java
index 83bf0abfab..e940f6d291 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceInstanceRelationClientSideMetricsBuilder.java
@@ -18,27 +18,29 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
-import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.instance.ServiceInstanceRelationClientSideMetrics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class NetworkAddressAliasBuilder extends BanyanDBStorageDataBuilder<NetworkAddressAlias> {
+public class ServiceInstanceRelationClientSideMetricsBuilder extends BanyanDBStorageDataBuilder<ServiceInstanceRelationClientSideMetrics> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(NetworkAddressAlias entity) {
- return Collections.singletonList(TagAndValue.longField(entity.getLastUpdateTimeBucket()));
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ServiceInstanceRelationClientSideMetrics entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>();
+ searchable.add(TagAndValue.stringField(entity.getSourceServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getSourceServiceInstanceId()));
+ searchable.add(TagAndValue.stringField(entity.getDestServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getDestServiceInstanceId()));
+ searchable.add(TagAndValue.stringField(entity.getEntityId()));
+ return searchable;
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(NetworkAddressAlias entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
- data.add(TagAndValue.stringField(entity.getAddress()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceId()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceInstanceId()));
- return data;
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(ServiceInstanceRelationClientSideMetrics entity) {
+ return Collections.singletonList(TagAndValue.longField(entity.getComponentId()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceInstanceRelationServerSideMetricsBuilder.java
similarity index 52%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceInstanceRelationServerSideMetricsBuilder.java
index 83bf0abfab..43495bc148 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceInstanceRelationServerSideMetricsBuilder.java
@@ -18,27 +18,29 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
-import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.instance.ServiceInstanceRelationServerSideMetrics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class NetworkAddressAliasBuilder extends BanyanDBStorageDataBuilder<NetworkAddressAlias> {
+public class ServiceInstanceRelationServerSideMetricsBuilder extends BanyanDBStorageDataBuilder<ServiceInstanceRelationServerSideMetrics> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(NetworkAddressAlias entity) {
- return Collections.singletonList(TagAndValue.longField(entity.getLastUpdateTimeBucket()));
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ServiceInstanceRelationServerSideMetrics entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>();
+ searchable.add(TagAndValue.stringField(entity.getSourceServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getSourceServiceInstanceId()));
+ searchable.add(TagAndValue.stringField(entity.getDestServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getDestServiceInstanceId()));
+ searchable.add(TagAndValue.stringField(entity.getEntityId()));
+ return searchable;
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(NetworkAddressAlias entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
- data.add(TagAndValue.stringField(entity.getAddress()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceId()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceInstanceId()));
- return data;
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(ServiceInstanceRelationServerSideMetrics entity) {
+ return Collections.singletonList(TagAndValue.longField(entity.getComponentId()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceRelationClientSideMetricsBuilder.java
similarity index 57%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceRelationClientSideMetricsBuilder.java
index 83bf0abfab..3d50dde043 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceRelationClientSideMetricsBuilder.java
@@ -18,27 +18,27 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
-import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.service.ServiceRelationClientSideMetrics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class NetworkAddressAliasBuilder extends BanyanDBStorageDataBuilder<NetworkAddressAlias> {
+public class ServiceRelationClientSideMetricsBuilder extends BanyanDBStorageDataBuilder<ServiceRelationClientSideMetrics> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(NetworkAddressAlias entity) {
- return Collections.singletonList(TagAndValue.longField(entity.getLastUpdateTimeBucket()));
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ServiceRelationClientSideMetrics entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>();
+ searchable.add(TagAndValue.stringField(entity.getSourceServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getDestServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getEntityId()));
+ return searchable;
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(NetworkAddressAlias entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
- data.add(TagAndValue.stringField(entity.getAddress()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceId()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceInstanceId()));
- return data;
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(ServiceRelationClientSideMetrics entity) {
+ return Collections.singletonList(TagAndValue.longField(entity.getComponentId()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceRelationServerSideMetricsBuilder.java
similarity index 57%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceRelationServerSideMetricsBuilder.java
index 83bf0abfab..92a9a13fb9 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/NetworkAddressAliasBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/ServiceRelationServerSideMetricsBuilder.java
@@ -18,27 +18,27 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
-import org.apache.skywalking.oap.server.core.analysis.manual.networkalias.NetworkAddressAlias;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.service.ServiceRelationServerSideMetrics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class NetworkAddressAliasBuilder extends BanyanDBStorageDataBuilder<NetworkAddressAlias> {
+public class ServiceRelationServerSideMetricsBuilder extends BanyanDBStorageDataBuilder<ServiceRelationServerSideMetrics> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(NetworkAddressAlias entity) {
- return Collections.singletonList(TagAndValue.longField(entity.getLastUpdateTimeBucket()));
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(ServiceRelationServerSideMetrics entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> searchable = new ArrayList<>();
+ searchable.add(TagAndValue.stringField(entity.getSourceServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getDestServiceId()));
+ searchable.add(TagAndValue.stringField(entity.getEntityId()));
+ return searchable;
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(NetworkAddressAlias entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
- data.add(TagAndValue.stringField(entity.getAddress()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceId()));
- data.add(TagAndValue.stringField(entity.getRepresentServiceInstanceId()));
- return data;
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(ServiceRelationServerSideMetrics entity) {
+ return Collections.singletonList(TagAndValue.longField(entity.getComponentId()));
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/UITemplateBuilder.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/UITemplateBuilder.java
index 41104ee588..6b53a63174 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/UITemplateBuilder.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/schema/UITemplateBuilder.java
@@ -19,7 +19,7 @@
package org.apache.skywalking.oap.server.storage.plugin.banyandb.schema;
import com.google.common.collect.ImmutableList;
-import org.apache.skywalking.banyandb.v1.Banyandb;
+import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.SerializableTag;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.oap.server.core.management.ui.template.UITemplate;
@@ -29,7 +29,7 @@ import java.util.List;
public class UITemplateBuilder extends BanyanDBStorageDataBuilder<UITemplate> {
@Override
- protected List<SerializableTag<Banyandb.TagValue>> searchableTags(UITemplate entity) {
+ protected List<SerializableTag<BanyandbModel.TagValue>> searchableTags(UITemplate entity) {
return ImmutableList.of(
TagAndValue.stringField(entity.getName()),
TagAndValue.longField(entity.getDisabled())
@@ -37,8 +37,8 @@ public class UITemplateBuilder extends BanyanDBStorageDataBuilder<UITemplate> {
}
@Override
- protected List<SerializableTag<Banyandb.TagValue>> dataTags(UITemplate entity) {
- List<SerializableTag<Banyandb.TagValue>> data = new ArrayList<>();
+ protected List<SerializableTag<BanyandbModel.TagValue>> dataTags(UITemplate entity) {
+ List<SerializableTag<BanyandbModel.TagValue>> data = new ArrayList<>();
data.add(TagAndValue.stringField(entity.getType()));
data.add(TagAndValue.stringField(entity.getConfiguration()));
data.add(TagAndValue.longField(entity.getActivated()));
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBHistoryDeleteDAO.java
similarity index 53%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBHistoryDeleteDAO.java
index ffc5aaf586..0133d30e3d 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBHistoryDeleteDAO.java
@@ -16,29 +16,16 @@
*
*/
-package org.apache.skywalking.oap.server.storage.plugin.banyandb;
+package org.apache.skywalking.oap.server.storage.plugin.banyandb.stream;
-import org.apache.skywalking.oap.server.core.storage.StorageException;
+import org.apache.skywalking.oap.server.core.storage.IHistoryDeleteDAO;
import org.apache.skywalking.oap.server.core.storage.model.Model;
-import org.apache.skywalking.oap.server.core.storage.model.ModelInstaller;
-import org.apache.skywalking.oap.server.library.client.Client;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-public class BanyanDBIndexInstaller extends ModelInstaller {
- public BanyanDBIndexInstaller(Client client, ModuleManager moduleManager) {
- super(client, moduleManager);
- }
-
- @Override
- protected boolean isExists(Model model) throws StorageException {
- return false;
- }
+import java.io.IOException;
+public class BanyanDBHistoryDeleteDAO implements IHistoryDeleteDAO {
@Override
- protected void createTable(Model model) throws StorageException {
- StreamMetaInfo metaInfo = StreamMetaInfo.addModel(model);
- if (metaInfo != null) {
- ((BanyanDBStorageClient) client).createStream(metaInfo);
- }
+ public void deleteHistory(Model model, String timeBucketColumnName, int ttl) throws IOException {
+ // do thing since we currently do not support deletion
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBManagementDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBManagementDAO.java
index 7e37288428..1990181804 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBManagementDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBManagementDAO.java
@@ -30,6 +30,9 @@ import org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageC
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.BanyanDBStorageDataBuilder;
import java.io.IOException;
+import java.time.Instant;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
import java.util.Collections;
/**
@@ -38,6 +41,9 @@ import java.util.Collections;
* @param <T> The only ManagementData we have now is {@link UITemplate}
*/
public class BanyanDBManagementDAO<T extends ManagementData> extends AbstractBanyanDBDAO implements IManagementDAO {
+ private final static long START_TIME_MILLI =
+ ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0,
+ ZoneOffset.UTC).toInstant().toEpochMilli();
private final BanyanDBStorageDataBuilder<T> storageBuilder;
public BanyanDBManagementDAO(BanyanDBStorageClient client, BanyanDBStorageDataBuilder<T> storageBuilder) {
@@ -50,7 +56,7 @@ public class BanyanDBManagementDAO<T extends ManagementData> extends AbstractBan
// ensure only insert once
StreamQueryResponse resp = query(UITemplate.INDEX_NAME,
Collections.singletonList(UITemplate.NAME),
- new TimestampRange(0L, 2L),
+ new TimestampRange(START_TIME_MILLI, Instant.now().toEpochMilli()),
new QueryBuilder() {
@Override
public void apply(StreamQuery query) {
@@ -65,7 +71,7 @@ public class BanyanDBManagementDAO<T extends ManagementData> extends AbstractBan
StreamWrite.StreamWriteBuilder streamWrite = this.storageBuilder
.entity2Storage((T) storageData)
.name(model.getName())
- .timestamp(1L);
+ .timestamp(Instant.now().toEpochMilli());
getClient().write(streamWrite.build());
}
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBMetadataQueryDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBMetadataQueryDAO.java
index fdc1ccb71f..b9fc53258c 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBMetadataQueryDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBMetadataQueryDAO.java
@@ -22,19 +22,17 @@ import com.google.common.collect.ImmutableList;
import com.google.gson.JsonElement;
import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
-import org.apache.skywalking.banyandb.v1.client.PairQueryCondition;
import org.apache.skywalking.banyandb.v1.client.RowEntity;
import org.apache.skywalking.banyandb.v1.client.StreamQuery;
import org.apache.skywalking.banyandb.v1.client.StreamQueryResponse;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
-import org.apache.skywalking.oap.server.core.analysis.NodeType;
+import org.apache.skywalking.oap.server.core.analysis.Layer;
import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import org.apache.skywalking.oap.server.core.analysis.manual.endpoint.EndpointTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.instance.InstanceTraffic;
import org.apache.skywalking.oap.server.core.analysis.manual.service.ServiceTraffic;
import org.apache.skywalking.oap.server.core.query.enumeration.Language;
import org.apache.skywalking.oap.server.core.query.type.Attribute;
-import org.apache.skywalking.oap.server.core.query.type.Database;
import org.apache.skywalking.oap.server.core.query.type.Endpoint;
import org.apache.skywalking.oap.server.core.query.type.Service;
import org.apache.skywalking.oap.server.core.query.type.ServiceInstance;
@@ -42,6 +40,7 @@ import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.storage.query.IMetadataQueryDAO;
import org.apache.skywalking.oap.server.library.util.StringUtil;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.StreamMetaInfo;
import java.io.IOException;
import java.util.Collections;
@@ -61,12 +60,15 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
}
@Override
- public List<Service> getAllServices(String group) throws IOException {
+ public List<Service> listServices(final String layer, final String group) throws IOException {
StreamQueryResponse resp = query(ServiceTraffic.INDEX_NAME,
- ImmutableList.of(ServiceTraffic.NAME, ServiceTraffic.NODE_TYPE, ServiceTraffic.GROUP),
+ ImmutableList.of(ServiceTraffic.NAME, ServiceTraffic.LAYER, ServiceTraffic.GROUP),
new QueryBuilder() {
@Override
public void apply(StreamQuery query) {
+ if (StringUtil.isNotEmpty(layer)) {
+ query.appendCondition(eq(ServiceTraffic.LAYER, Layer.valueOf(layer).value()));
+ }
if (StringUtil.isNotEmpty(group)) {
query.appendCondition(eq(ServiceTraffic.GROUP, group));
}
@@ -77,13 +79,13 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
}
@Override
- public List<Service> getAllBrowserServices() throws IOException {
+ public List<Service> getServices(String serviceId) throws IOException {
StreamQueryResponse resp = query(ServiceTraffic.INDEX_NAME,
- ImmutableList.of(ServiceTraffic.NAME, ServiceTraffic.NODE_TYPE, ServiceTraffic.GROUP),
+ ImmutableList.of(ServiceTraffic.NAME, ServiceTraffic.LAYER, ServiceTraffic.GROUP),
new QueryBuilder() {
@Override
public void apply(StreamQuery query) {
- query.appendCondition(eq(ServiceTraffic.NODE_TYPE, NodeType.Browser.value()));
+ query.appendCondition(eq(ServiceTraffic.SERVICE_ID, serviceId));
}
});
@@ -91,53 +93,41 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
}
@Override
- public List<Database> getAllDatabases() throws IOException {
- StreamQueryResponse resp = query(ServiceTraffic.INDEX_NAME, ImmutableList.of(ServiceTraffic.NAME, ServiceTraffic.NODE_TYPE),
+ public List<ServiceInstance> listInstances(long startTimestamp, long endTimestamp, String serviceId) throws IOException {
+ StreamQueryResponse resp = query(InstanceTraffic.INDEX_NAME,
+ ImmutableList.of(InstanceTraffic.SERVICE_ID, InstanceTraffic.LAST_PING_TIME_BUCKET),
new QueryBuilder() {
@Override
public void apply(StreamQuery query) {
- query.appendCondition(eq(ServiceTraffic.NODE_TYPE, (long) NodeType.Database.value()));
- }
- });
+ query.setDataProjections(Collections.singletonList("data_binary"));
- return resp.getElements().stream().map(new DatabaseDeserializer()).collect(Collectors.toList());
- }
+ final long startMinuteTimeBucket = TimeBucket.getMinuteTimeBucket(startTimestamp);
+ final long endMinuteTimeBucket = TimeBucket.getMinuteTimeBucket(endTimestamp);
- @Override
- public List<Service> searchServices(NodeType nodeType, String keyword) throws IOException {
- StreamQueryResponse resp = query(ServiceTraffic.INDEX_NAME,
- ImmutableList.of(ServiceTraffic.NAME, ServiceTraffic.NODE_TYPE, ServiceTraffic.GROUP),
- new QueryBuilder() {
- @Override
- public void apply(StreamQuery query) {
- query.appendCondition(eq(ServiceTraffic.NODE_TYPE, nodeType.value()));
+ query.appendCondition(gte(InstanceTraffic.LAST_PING_TIME_BUCKET, startMinuteTimeBucket));
+ query.appendCondition(lte(InstanceTraffic.LAST_PING_TIME_BUCKET, endMinuteTimeBucket));
+ query.appendCondition(eq(InstanceTraffic.SERVICE_ID, serviceId));
}
});
- return resp.getElements().stream().map(new ServiceDeserializer())
- .filter(s -> s.getName().contains(keyword)) // TODO: support analyzer in database
- .collect(Collectors.toList());
+ return resp.getElements().stream().map(new ServiceInstanceDeserializer()).collect(Collectors.toList());
}
@Override
- public Service searchService(NodeType nodeType, String serviceCode) throws IOException {
- StreamQueryResponse resp = query(ServiceTraffic.INDEX_NAME,
- ImmutableList.of(ServiceTraffic.NAME, ServiceTraffic.NODE_TYPE, ServiceTraffic.GROUP),
- new QueryBuilder() {
+ public ServiceInstance getInstance(String instanceId) throws IOException {
+ StreamQueryResponse resp = query(InstanceTraffic.INDEX_NAME,
+ ImmutableList.of(InstanceTraffic.NAME, InstanceTraffic.SERVICE_ID), new QueryBuilder() {
@Override
public void apply(StreamQuery query) {
- query.appendCondition(PairQueryCondition.StringQueryCondition.eq("searchable", ServiceTraffic.NAME, serviceCode));
- query.appendCondition(PairQueryCondition.LongQueryCondition.eq("searchable", ServiceTraffic.NODE_TYPE, (long) nodeType.value()));
- // only get one
- query.setLimit(1);
+ query.appendCondition(eq(StreamMetaInfo.ID, instanceId));
}
});
- return resp.getElements().stream().map(new ServiceDeserializer()).findAny().orElse(null);
+ return resp.getElements().stream().map(new ServiceInstanceDeserializer()).findFirst().orElse(null);
}
@Override
- public List<Endpoint> searchEndpoint(String keyword, String serviceId, int limit) throws IOException {
+ public List<Endpoint> findEndpoint(String keyword, String serviceId, int limit) throws IOException {
StreamQueryResponse resp = query(EndpointTraffic.INDEX_NAME,
ImmutableList.of(EndpointTraffic.NAME, EndpointTraffic.SERVICE_ID), new QueryBuilder() {
@Override
@@ -150,38 +140,6 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
.limit(limit).collect(Collectors.toList());
}
- @Override
- public List<ServiceInstance> getServiceInstances(long startTimestamp, long endTimestamp, String serviceId) throws IOException {
- StreamQueryResponse resp = query(InstanceTraffic.INDEX_NAME,
- ImmutableList.of(InstanceTraffic.SERVICE_ID, InstanceTraffic.LAST_PING_TIME_BUCKET),
- new QueryBuilder() {
- @Override
- public void apply(StreamQuery query) {
- query.setDataProjections(Collections.singletonList("data_binary"));
-
- final long startMinuteTimeBucket = TimeBucket.getMinuteTimeBucket(startTimestamp);
- final long endMinuteTimeBucket = TimeBucket.getMinuteTimeBucket(endTimestamp);
-
- query.appendCondition(gte(InstanceTraffic.LAST_PING_TIME_BUCKET, startMinuteTimeBucket));
- query.appendCondition(lte(InstanceTraffic.LAST_PING_TIME_BUCKET, endMinuteTimeBucket));
- query.appendCondition(eq(InstanceTraffic.SERVICE_ID, serviceId));
- }
- });
-
- return resp.getElements().stream().map(new ServiceInstanceDeserializer()).collect(Collectors.toList());
- }
-
- public static class DatabaseDeserializer implements RowEntityDeserializer<Database> {
- @Override
- public Database apply(RowEntity row) {
- Database database = new Database();
- final List<TagAndValue<?>> searchable = row.getTagFamilies().get(0);
- database.setId(row.getId());
- database.setName((String) searchable.get(0).getValue());
- return database;
- }
- }
-
public static class EndpointDeserializer implements RowEntityDeserializer<Endpoint> {
@Override
public Endpoint apply(RowEntity row) {
@@ -198,9 +156,13 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
public Service apply(RowEntity row) {
Service service = new Service();
final List<TagAndValue<?>> searchable = row.getTagFamilies().get(0);
- service.setId(row.getId());
service.setName((String) searchable.get(0).getValue());
- service.setGroup((String) searchable.get(2).getValue());
+ service.setId((String) searchable.get(1).getValue());
+ String layerName = Layer.valueOf(((Number) searchable.get(2).getValue()).intValue()).name();
+ service.getLayers().add(layerName);
+ service.setGroup((String) searchable.get(3).getValue());
+ final List<TagAndValue<?>> data = row.getTagFamilies().get(1);
+ service.setShortName((String) data.get(0).getValue());
return service;
}
}
@@ -218,6 +180,7 @@ public class BanyanDBMetadataQueryDAO extends AbstractBanyanDBDAO implements IMe
instanceTraffic.deserialize(remoteData);
serviceInstance.setName(instanceTraffic.getName());
serviceInstance.setId(instanceTraffic.getServiceId());
+ serviceInstance.setLayer(instanceTraffic.getLayer().name());
if (instanceTraffic.getProperties() != null) {
for (Map.Entry<String, JsonElement> property : instanceTraffic.getProperties().entrySet()) {
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBStorageDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBStorageDAO.java
index 98f31ebd7e..3c3b4b4a6c 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBStorageDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBStorageDAO.java
@@ -23,16 +23,25 @@ import org.apache.skywalking.oap.server.core.analysis.config.NoneStream;
import org.apache.skywalking.oap.server.core.analysis.management.ManagementData;
import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
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.storage.AbstractDAO;
import org.apache.skywalking.oap.server.core.storage.IManagementDAO;
import org.apache.skywalking.oap.server.core.storage.IMetricsDAO;
import org.apache.skywalking.oap.server.core.storage.INoneStreamDAO;
import org.apache.skywalking.oap.server.core.storage.IRecordDAO;
import org.apache.skywalking.oap.server.core.storage.StorageDAO;
+import org.apache.skywalking.oap.server.core.storage.model.Model;
import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
+import org.apache.skywalking.oap.server.library.client.request.InsertRequest;
+import org.apache.skywalking.oap.server.library.client.request.UpdateRequest;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.schema.BanyanDBStorageDataBuilder;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
@Slf4j
public class BanyanDBStorageDAO extends AbstractDAO<BanyanDBStorageClient> implements StorageDAO {
public BanyanDBStorageDAO(BanyanDBStorageClient client) {
@@ -41,11 +50,59 @@ public class BanyanDBStorageDAO extends AbstractDAO<BanyanDBStorageClient> imple
@Override
public IMetricsDAO newMetricsDao(StorageBuilder storageBuilder) {
+ // SKIP:
+ // 1. OAL runtime metrics builder
+ // 2. Analysis Function builder
+ if (storageBuilder.getClass().getName().startsWith("org.apache.skywalking.oap.server.core.")) {
+ log.warn("metrics builder {} is not supported yet", storageBuilder.getClass());
+ return new IMetricsDAO() {
+ @Override
+ public List<Metrics> multiGet(Model model, List<Metrics> metrics) throws IOException {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public InsertRequest prepareBatchInsert(Model model, Metrics metrics) throws IOException {
+ return new InsertRequest() {
+ };
+ }
+
+ @Override
+ public UpdateRequest prepareBatchUpdate(Model model, Metrics metrics) throws IOException {
+ return new UpdateRequest() {
+ };
+ }
+ };
+ }
return new BanyanDBMetricsDAO<>((BanyanDBStorageDataBuilder<Metrics>) storageBuilder);
}
@Override
public IRecordDAO newRecordDao(StorageBuilder storageBuilder) {
+ try {
+ final Class<?> returnType = storageBuilder.getClass().getDeclaredMethod("storage2Entity", Map.class).getReturnType();
+ // FIXME: this is currently a hack to avoid TopN insertion since we will impl TopN later in BanyanDB side
+ if (TopN.class.isAssignableFrom(returnType)) {
+ return new IRecordDAO() {
+ @Override
+ public InsertRequest prepareBatchInsert(Model model, Record record) throws IOException {
+ return new InsertRequest() {
+ };
+ }
+ };
+ } else if (returnType.getName().equals("org.apache.skywalking.oap.server.storage.plugin.zipkin.ZipkinSpanRecord")) {
+ // SKIP ZipkinSpanRecord
+ return new IRecordDAO() {
+ @Override
+ public InsertRequest prepareBatchInsert(Model model, Record record) throws IOException {
+ return new InsertRequest() {
+ };
+ }
+ };
+ }
+ } catch (NoSuchMethodException ex) {
+ log.error("fail to get declared method");
+ }
return new BanyanDBRecordDAO<>((BanyanDBStorageDataBuilder<Record>) storageBuilder);
}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBTopologyQueryDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBTopologyQueryDAO.java
new file mode 100644
index 0000000000..f574e9b24a
--- /dev/null
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBTopologyQueryDAO.java
@@ -0,0 +1,155 @@
+/*
+ * 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.storage.plugin.banyandb.stream;
+
+import org.apache.skywalking.oap.server.core.UnexpectedException;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.endpoint.EndpointRelationServerSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.instance.ServiceInstanceRelationClientSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.instance.ServiceInstanceRelationServerSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.service.ServiceRelationClientSideMetrics;
+import org.apache.skywalking.oap.server.core.analysis.manual.relation.service.ServiceRelationServerSideMetrics;
+import org.apache.skywalking.oap.server.core.query.type.Call;
+import org.apache.skywalking.oap.server.core.source.DetectPoint;
+import org.apache.skywalking.oap.server.core.storage.query.ITopologyQueryDAO;
+import org.apache.skywalking.oap.server.library.util.CollectionUtils;
+import org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class BanyanDBTopologyQueryDAO extends AbstractBanyanDBDAO implements ITopologyQueryDAO {
+ public BanyanDBTopologyQueryDAO(BanyanDBStorageClient client) {
+ super(client);
+ }
+
+ @Override
+ public List<Call.CallDetail> loadServiceRelationsDetectedAtServerSide(long startTB, long endTB, List<String> serviceIds) throws IOException {
+ if (CollectionUtils.isEmpty(serviceIds)) {
+ throw new UnexpectedException("Service id is empty");
+ }
+
+ return loadServiceCalls(
+ ServiceRelationServerSideMetrics.INDEX_NAME, startTB, endTB,
+ ServiceRelationServerSideMetrics.SOURCE_SERVICE_ID,
+ ServiceRelationServerSideMetrics.DEST_SERVICE_ID, serviceIds, DetectPoint.SERVER
+ );
+ }
+
+ @Override
+ public List<Call.CallDetail> loadServiceRelationDetectedAtClientSide(long startTB, long endTB, List<String> serviceIds) throws IOException {
+ if (CollectionUtils.isEmpty(serviceIds)) {
+ throw new UnexpectedException("Service id is empty");
+ }
+
+ return loadServiceCalls(
+ ServiceRelationClientSideMetrics.INDEX_NAME, startTB, endTB,
+ ServiceRelationClientSideMetrics.SOURCE_SERVICE_ID,
+ ServiceRelationClientSideMetrics.DEST_SERVICE_ID, serviceIds, DetectPoint.CLIENT
+ );
+ }
+
+ @Override
+ public List<Call.CallDetail> loadServiceRelationsDetectedAtServerSide(long startTB, long endTB) throws IOException {
+ return loadServiceCalls(
+ ServiceRelationServerSideMetrics.INDEX_NAME, startTB, endTB,
+ ServiceRelationServerSideMetrics.SOURCE_SERVICE_ID,
+ ServiceRelationServerSideMetrics.DEST_SERVICE_ID, new ArrayList<>(0), DetectPoint.SERVER
+ );
+ }
+
+ @Override
+ public List<Call.CallDetail> loadServiceRelationDetectedAtClientSide(long startTB, long endTB) throws IOException {
+ return loadServiceCalls(
+ ServiceRelationClientSideMetrics.INDEX_NAME, startTB, endTB,
+ ServiceRelationClientSideMetrics.SOURCE_SERVICE_ID,
+ ServiceRelationClientSideMetrics.DEST_SERVICE_ID, new ArrayList<>(0), DetectPoint.CLIENT
+ );
+ }
+
+ @Override
+ public List<Call.CallDetail> loadInstanceRelationDetectedAtServerSide(String clientServiceId, String serverServiceId, long startTB, long endTB) throws IOException {
+ return loadServiceInstanceCalls(
+ ServiceInstanceRelationServerSideMetrics.INDEX_NAME, startTB, endTB,
+ ServiceInstanceRelationServerSideMetrics.SOURCE_SERVICE_ID,
+ ServiceInstanceRelationServerSideMetrics.DEST_SERVICE_ID, clientServiceId, serverServiceId,
+ DetectPoint.SERVER
+ );
+ }
+
+ @Override
+ public List<Call.CallDetail> loadInstanceRelationDetectedAtClientSide(String clientServiceId, String serverServiceId, long startTB, long endTB) throws IOException {
+ return loadServiceInstanceCalls(
+ ServiceInstanceRelationClientSideMetrics.INDEX_NAME, startTB, endTB,
+ ServiceInstanceRelationClientSideMetrics.SOURCE_SERVICE_ID,
+ ServiceInstanceRelationClientSideMetrics.DEST_SERVICE_ID, clientServiceId, serverServiceId,
+ DetectPoint.CLIENT
+ );
+ }
+
+ @Override
+ public List<Call.CallDetail> loadEndpointRelation(long startTB, long endTB, String destEndpointId) throws IOException {
+ List<Call.CallDetail> calls = loadEndpointFromSide(
+ EndpointRelationServerSideMetrics.INDEX_NAME, startTB, endTB,
+ EndpointRelationServerSideMetrics.SOURCE_ENDPOINT,
+ EndpointRelationServerSideMetrics.DEST_ENDPOINT, destEndpointId, false
+ );
+ calls.addAll(
+ loadEndpointFromSide(EndpointRelationServerSideMetrics.INDEX_NAME, startTB, endTB,
+ EndpointRelationServerSideMetrics.SOURCE_ENDPOINT,
+ EndpointRelationServerSideMetrics.DEST_ENDPOINT, destEndpointId, true
+ ));
+ return calls;
+ }
+
+ private List<Call.CallDetail> loadServiceCalls(String tableName,
+ long startTB,
+ long endTB,
+ String sourceCName,
+ String destCName,
+ List<String> serviceIds,
+ DetectPoint detectPoint) throws IOException {
+ // TODO: we will impl this method after we support `OR`
+ return Collections.emptyList();
+ }
+
+ private List<Call.CallDetail> loadServiceInstanceCalls(String tableName,
+ long startTB,
+ long endTB,
+ String sourceCName,
+ String descCName,
+ String sourceServiceId,
+ String destServiceId,
+ DetectPoint detectPoint) throws IOException {
+ // TODO: we will impl this method after we support `OR`
+ return Collections.emptyList();
+ }
+
+ private List<Call.CallDetail> loadEndpointFromSide(String tableName,
+ long startTB,
+ long endTB,
+ String sourceCName,
+ String destCName,
+ String id,
+ boolean isSourceId) throws IOException {
+ // TODO: we will impl this method after we support `OR`
+ return Collections.emptyList();
+ }
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBUITemplateManagementDAO.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBUITemplateManagementDAO.java
index 1d9f977b0a..7888b0f56e 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBUITemplateManagementDAO.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBUITemplateManagementDAO.java
@@ -35,6 +35,7 @@ import org.apache.skywalking.oap.server.library.util.BooleanUtils;
import org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient;
import java.io.IOException;
+import java.time.Instant;
import java.util.List;
import java.util.stream.Collectors;
@@ -79,7 +80,7 @@ public class BanyanDBUITemplateManagementDAO extends AbstractBanyanDBDAO impleme
.dataTag(Tag.stringField(uiTemplate.getConfiguration()))
// data - activated
.dataTag(Tag.longField(uiTemplate.getActivated()))
- .timestamp(1L)
+ .timestamp(Instant.now().toEpochMilli())
.elementId(uiTemplate.id())
.build();
getClient().write(request);
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
index 662cff2eac..d1b85c2be2 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
@@ -1,7 +1,6 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_db.instance",
"group": "default"
},
"tags": [
@@ -10,4 +9,4 @@
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.type.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.type.json
index 662cff2eac..479751ba13 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.type.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_db.type",
"group": "default"
},
"tags": [
- "db.instance"
+ "db.type"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/duration.json
similarity index 61%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/duration.json
index 662cff2eac..9ae7387089 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/duration.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_duration",
"group": "default"
},
"tags": [
- "db.instance"
+ "duration"
],
- "type": "TYPE_INVERTED",
+ "type": "TYPE_TREE",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/endpoint_id.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/endpoint_id.json
index 662cff2eac..ca368266a8 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/endpoint_id.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_endpoint_id",
"group": "default"
},
"tags": [
- "db.instance"
+ "endpoint_id"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/http.method.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/http.method.json
index 662cff2eac..3b5794ec09 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/http.method.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_http.method",
"group": "default"
},
"tags": [
- "db.instance"
+ "http.method"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.broker.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.broker.json
index 662cff2eac..4dca9074a5 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.broker.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_mq.broker",
"group": "default"
},
"tags": [
- "db.instance"
+ "mq.broker"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.queue.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.queue.json
index 662cff2eac..1b3126e056 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.queue.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_mq.queue",
"group": "default"
},
"tags": [
- "db.instance"
+ "mq.queue"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.topic.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.topic.json
index 662cff2eac..ddae44b1a1 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/mq.topic.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_mq.topic",
"group": "default"
},
"tags": [
- "db.instance"
+ "mq.topic"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/status_code.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/status_code.json
index 662cff2eac..3e472a1669 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/status_code.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "segment_status_code",
"group": "default"
},
"tags": [
- "db.instance"
+ "status_code"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/trace_id.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/trace_id.json
new file mode 100644
index 0000000000..3ac579999c
--- /dev/null
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/trace_id.json
@@ -0,0 +1,12 @@
+{
+ "metadata": {
+ "name": "segment_trace_id",
+ "group": "default"
+ },
+ "tags": [
+ "trace_id"
+ ],
+ "type": "TYPE_TREE",
+ "location": "LOCATION_GLOBAL",
+ "updated_at": "2021-04-15T01:30:15.01Z"
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/ui_template/disabled.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/ui_template/disabled.json
index 662cff2eac..9146c34d11 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/ui_template/disabled.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "ui_template_disabled",
"group": "default"
},
"tags": [
- "db.instance"
+ "disabled"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/ui_template/name.json
similarity index 73%
copy from oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
copy to oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/ui_template/name.json
index 662cff2eac..067ca7f123 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/segment/db.instance.json
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/index_rules/ui_template/name.json
@@ -1,13 +1,12 @@
{
"metadata": {
- "id": 1,
- "name": "db.instance",
+ "name": "ui_template_name",
"group": "default"
},
"tags": [
- "db.instance"
+ "name"
],
"type": "TYPE_INVERTED",
"location": "LOCATION_SERIES",
"updated_at": "2021-04-15T01:30:15.01Z"
-}
\ No newline at end of file
+}
diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/ui_template.json b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/ui_template.json
new file mode 100644
index 0000000000..e2a404ff5f
--- /dev/null
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/resources/metadata/ui_template.json
@@ -0,0 +1,50 @@
+{
+ "metadata": {
+ "name": "ui_template",
+ "group": "default"
+ },
+ "tag_families": [
+ {
+ "name": "data",
+ "tags": [
+ {
+ "name": "type",
+ "type": "TAG_TYPE_STRING"
+ },
+ {
+ "name": "configuration",
+ "type": "TAG_TYPE_STRING"
+ },
+ {
+ "name": "activated",
+ "type": "TAG_TYPE_INT"
+ }
+ ]
+ },
+ {
+ "name": "searchable",
+ "tags": [
+ {
+ "name": "name",
+ "type": "TAG_TYPE_STRING"
+ },
+ {
+ "name": "disabled",
+ "type": "TAG_TYPE_INT"
+ }
+ ]
+ }
+ ],
+ "entity": {
+ "tag_names": [
+ ]
+ },
+ "opts": {
+ "shard_num": 2,
+ "ttl": {
+ "val": 52000,
+ "unit": "DURATION_UNIT_WEEK"
+ }
+ },
+ "updated_at_nanoseconds": "2021-04-15T01:30:15.01Z"
+}
\ No newline at end of file