This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 2ec8e18021 BanyanDB: support add group prefix (namespace) for BanyanDB
groups. (#13521)
2ec8e18021 is described below
commit 2ec8e1802148fdd3754b9017f8c5582c0138f0bd
Author: Wan Kai <[email protected]>
AuthorDate: Fri Sep 26 13:34:39 2025 +0800
BanyanDB: support add group prefix (namespace) for BanyanDB groups. (#13521)
---
docs/en/changes/changes.md | 1 +
.../server-starter/src/main/resources/bydb.yml | 3 +
.../banyandb/BanyanDBAggregationQueryDAO.java | 2 +-
.../plugin/banyandb/BanyanDBStorageClient.java | 15 ++-
.../plugin/banyandb/BanyanDBStorageConfig.java | 1 +
.../plugin/banyandb/BanyanDBStorageProvider.java | 5 +-
.../banyandb/BanyanDBUIMenuManagementDAO.java | 6 +-
.../banyandb/BanyanDBUITemplateManagementDAO.java | 16 +--
.../storage/plugin/banyandb/MetadataRegistry.java | 137 ++++++++++++++-------
.../BanyanDBEBPFProfilingScheduleQueryDAO.java | 2 +-
.../measure/BanyanDBHierarchyQueryDAO.java | 4 +-
.../banyandb/measure/BanyanDBMetadataQueryDAO.java | 22 ++--
.../banyandb/measure/BanyanDBMetricsQueryDAO.java | 6 +-
.../measure/BanyanDBNetworkAddressAliasDAO.java | 2 +-
.../banyandb/measure/BanyanDBServiceLabelDAO.java | 2 +-
.../measure/BanyanDBTagAutocompleteQueryDAO.java | 4 +-
.../banyandb/measure/BanyanDBTopologyQueryDAO.java | 8 +-
.../banyandb/stream/AbstractBanyanDBDAO.java | 39 +++++-
.../BanyanDBContinuousProfilingPolicyDAO.java | 7 +-
.../banyandb/stream/BanyanDBEventQueryDAO.java | 3 -
.../banyandb/trace/BanyanDBTraceQueryDAO.java | 8 +-
.../banyandb/trace/BanyanDBZipkinQueryDAO.java | 12 +-
22 files changed, 201 insertions(+), 104 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index ec986593d4..7302de79e0 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -102,6 +102,7 @@
* BanyanDB: fix log query missing order by condition, and fix missing service
id condition when query by instance id or endpoint id.
* Fix potential NPE in the `AlarmStatusQueryHandler`.
* Aggregate TopN Slow SQL by service dimension.
+* BanyanDB: support add group prefix (namespace) for BanyanDB groups.
#### UI
diff --git a/oap-server/server-starter/src/main/resources/bydb.yml
b/oap-server/server-starter/src/main/resources/bydb.yml
index 520e5209ea..1260ffa34d 100644
--- a/oap-server/server-starter/src/main/resources/bydb.yml
+++ b/oap-server/server-starter/src/main/resources/bydb.yml
@@ -49,6 +49,9 @@ global:
sslTrustCAPath: ${SW_STORAGE_BANYANDB_SSL_TRUST_CA_PATH:""}
# Cleanup TopN rules in BanyanDB server that are not configured in the
bydb-topn.yml config.
cleanupUnusedTopNRules: ${SW_STORAGE_BANYANDB_CLEANUP_UNUSED_TOPN_RULES:true}
+ # The namespace in BanyanDB to store the data of OAP, if not set, the
default is "sw".
+ # OAP will create BanyanDB Groups using the format of "{namespace}_{group
name}", such as "sw_records".
+ namespace: ${SW_NAMESPACE:"sw"}
groups:
# The group settings of record.
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
index 004698da67..d44e87e876 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBAggregationQueryDAO.java
@@ -59,7 +59,7 @@ public class BanyanDBAggregationQueryDAO extends
AbstractBanyanDBDAO implements
public List<SelectedRecord> sortMetrics(TopNCondition condition, String
valueColumnName, Duration duration, List<KeyValue> additionalConditions) throws
IOException {
final boolean isColdStage = duration != null && duration.isColdStage();
final String modelName = condition.getName();
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(modelName, duration.getStep());
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(modelName, duration.getStep());
if (schema == null) {
throw new IOException("schema is not registered");
}
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 5b41f4bc8d..3bb949e3cf 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
@@ -139,11 +139,12 @@ public class BanyanDBStorageClient implements Client,
HealthCheckable {
this.client.close();
}
- public List<Property> listProperties(String group, String name) throws
IOException {
+ public List<Property> listProperties(String name) throws IOException {
try {
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(name);
BanyandbProperty.QueryResponse resp
= this.client.query(BanyandbProperty.QueryRequest.newBuilder()
-
.addGroups(group)
+
.addGroups(schema.getMetadata().getGroup())
.setName(name)
.setLimit(Integer.MAX_VALUE)
.build());
@@ -160,10 +161,11 @@ public class BanyanDBStorageClient implements Client,
HealthCheckable {
}
}
- public Property queryProperty(String group, String name, String id) throws
IOException {
+ public Property queryProperty(String name, String id) throws IOException {
try {
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(name);
BanyandbProperty.QueryResponse resp =
this.client.query(BanyandbProperty.QueryRequest.newBuilder()
-
.addGroups(group)
+
.addGroups(schema.getMetadata().getGroup())
.setName(name)
.addIds(id)
.build());
@@ -183,9 +185,10 @@ public class BanyanDBStorageClient implements Client,
HealthCheckable {
}
}
- public DeleteResponse deleteProperty(String group, String name, String id)
throws IOException {
+ public DeleteResponse deleteProperty(String name, String id) throws
IOException {
try {
- DeleteResponse result = this.client.deleteProperty(group, name,
id);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(name);
+ DeleteResponse result =
this.client.deleteProperty(schema.getMetadata().getGroup(), name, id);
this.healthChecker.health();
return result;
} catch (BanyanDBException ex) {
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageConfig.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageConfig.java
index 10e5bb82ac..41d9bc2c41 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageConfig.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageConfig.java
@@ -106,6 +106,7 @@ public class BanyanDBStorageConfig extends ModuleConfig {
private int segmentQueryMaxSize = 200;
private int profileDataQueryBatchSize = 100;
private boolean cleanupUnusedTopNRules = true;
+ private String namespace = "sw";
}
// The configuration of the groups.
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 031b271dc1..db054a31b9 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
@@ -68,6 +68,7 @@ import
org.apache.skywalking.oap.server.library.module.ModuleProvider;
import org.apache.skywalking.oap.server.library.module.ModuleStartException;
import
org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
import org.apache.skywalking.oap.server.library.util.CollectionUtils;
+import org.apache.skywalking.oap.server.library.util.StringUtil;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.measure.BanyanDBEBPFProfilingScheduleQueryDAO;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.BanyanDBEventQueryDAO;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.measure.BanyanDBHierarchyQueryDAO;
@@ -133,7 +134,9 @@ public class BanyanDBStorageProvider extends ModuleProvider
{
public void prepare() throws ServiceNotProvidedException,
ModuleStartException {
// load banyandb config
config = new BanyanDBConfigLoader(this).loadConfig();
-
+ if (StringUtil.isBlank(config.getGlobal().getNamespace())) {
+ config.getGlobal().setNamespace("sw");
+ }
if (config.getMetricsDay().getTtl() > config.getMetadata().getTtl()) {
throw new ModuleStartException("metricsDay ttl must be less than
or equal to metadata ttl");
}
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUIMenuManagementDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUIMenuManagementDAO.java
index 5d61d30eab..658034f6bb 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUIMenuManagementDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUIMenuManagementDAO.java
@@ -24,7 +24,6 @@ import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.Property;
import org.apache.skywalking.oap.server.core.management.ui.menu.UIMenu;
-import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import
org.apache.skywalking.oap.server.core.storage.management.UIMenuManagementDAO;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.AbstractBanyanDBDAO;
@@ -39,7 +38,7 @@ public class BanyanDBUIMenuManagementDAO extends
AbstractBanyanDBDAO implements
@Override
public UIMenu getMenu(String id) throws IOException {
- Property p =
getClient().queryProperty(BanyanDB.PropertyGroup.PROPERTY.getName(),
UIMenu.INDEX_NAME, id);
+ Property p = getClient().queryProperty(UIMenu.INDEX_NAME, id);
if (p == null) {
return null;
}
@@ -48,9 +47,10 @@ public class BanyanDBUIMenuManagementDAO extends
AbstractBanyanDBDAO implements
@Override
public void saveMenu(UIMenu menu) throws IOException {
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(UIMenu.INDEX_NAME);
Property property = Property.newBuilder()
.setMetadata(
-
BanyandbCommon.Metadata.newBuilder().setGroup(BanyanDB.PropertyGroup.PROPERTY.getName()).setName(UIMenu.INDEX_NAME))
+
BanyandbCommon.Metadata.newBuilder().setGroup(schema.getMetadata().getGroup()).setName(UIMenu.INDEX_NAME))
.setId(menu.getMenuId())
.addTags(TagAndValue.newStringTag(UIMenu.CONFIGURATION,
menu.getConfigurationJson())
.build())
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java
index 2d5b610f72..5aa40a0c55 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBUITemplateManagementDAO.java
@@ -27,7 +27,6 @@ import
org.apache.skywalking.oap.server.core.management.ui.template.UITemplate;
import org.apache.skywalking.oap.server.core.query.input.DashboardSetting;
import org.apache.skywalking.oap.server.core.query.type.DashboardConfiguration;
import org.apache.skywalking.oap.server.core.query.type.TemplateChangeStatus;
-import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import
org.apache.skywalking.oap.server.core.storage.management.UITemplateManagementDAO;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.stream.AbstractBanyanDBDAO;
@@ -44,7 +43,7 @@ public class BanyanDBUITemplateManagementDAO extends
AbstractBanyanDBDAO impleme
@Override
public DashboardConfiguration getTemplate(String id) throws IOException {
- Property p =
getClient().queryProperty(BanyanDB.PropertyGroup.PROPERTY.getName(),
UITemplate.INDEX_NAME, id);
+ Property p = getClient().queryProperty(UITemplate.INDEX_NAME, id);
if (p == null) {
return null;
}
@@ -53,7 +52,7 @@ public class BanyanDBUITemplateManagementDAO extends
AbstractBanyanDBDAO impleme
@Override
public List<DashboardConfiguration> getAllTemplates(Boolean
includingDisabled) throws IOException {
- List<Property> propertyList =
getClient().listProperties(BanyanDB.PropertyGroup.PROPERTY.getName(),
UITemplate.INDEX_NAME);
+ List<Property> propertyList =
getClient().listProperties(UITemplate.INDEX_NAME);
return propertyList.stream().map(p -> fromEntity(parse(p)))
.filter(conf -> includingDisabled || !conf.isDisabled())
.collect(Collectors.toList());
@@ -93,7 +92,7 @@ public class BanyanDBUITemplateManagementDAO extends
AbstractBanyanDBDAO impleme
@Override
public TemplateChangeStatus disableTemplate(String id) throws IOException {
- Property oldProperty =
this.getClient().queryProperty(BanyanDB.PropertyGroup.PROPERTY.getName(),
UITemplate.INDEX_NAME, id);
+ Property oldProperty =
this.getClient().queryProperty(UITemplate.INDEX_NAME, id);
if (oldProperty == null) {
return
TemplateChangeStatus.builder().status(false).id(id).message("Can't find the
template")
.build();
@@ -136,9 +135,10 @@ public class BanyanDBUITemplateManagementDAO extends
AbstractBanyanDBDAO impleme
}
public Property applyAll(UITemplate uiTemplate) {
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(UITemplate.INDEX_NAME);
return Property.newBuilder()
.setMetadata(BanyandbCommon.Metadata.newBuilder()
-
.setGroup(BanyanDB.PropertyGroup.PROPERTY.getName())
+ .setGroup(schema.getMetadata().getGroup())
.setName(UITemplate.INDEX_NAME))
.setId(uiTemplate.id().build())
.addTags(TagAndValue.newStringTag(UITemplate.CONFIGURATION,
uiTemplate.getConfiguration()).build())
@@ -154,9 +154,10 @@ public class BanyanDBUITemplateManagementDAO extends
AbstractBanyanDBDAO impleme
* @return new property (patch) to be applied
*/
public Property applyStatus(UITemplate uiTemplate) {
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(UITemplate.INDEX_NAME);
return Property.newBuilder()
.setMetadata(BanyandbCommon.Metadata.newBuilder()
- .setGroup(BanyanDB.PropertyGroup.PROPERTY.getName())
+ .setGroup(schema.getMetadata().getGroup())
.setName(UITemplate.INDEX_NAME))
.setId(uiTemplate.id().build())
.addTags(TagAndValue.newLongTag(UITemplate.DISABLED,
uiTemplate.getDisabled()).build())
@@ -171,9 +172,10 @@ public class BanyanDBUITemplateManagementDAO extends
AbstractBanyanDBDAO impleme
* @return new property (patch) to be applied
*/
public Property applyConfiguration(UITemplate uiTemplate) {
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(UITemplate.INDEX_NAME);
return Property.newBuilder()
.setMetadata(BanyandbCommon.Metadata.newBuilder()
- .setGroup(BanyanDB.PropertyGroup.PROPERTY.getName())
+ .setGroup(schema.getMetadata().getGroup())
.setName(UITemplate.INDEX_NAME))
.setId(uiTemplate.id().build())
.addTags(TagAndValue.newStringTag(UITemplate.CONFIGURATION,
uiTemplate.getConfiguration()).build())
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
index dfcccb2473..2c65b3e418 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
@@ -23,7 +23,6 @@ import com.google.gson.JsonObject;
import java.util.HashSet;
import java.util.function.BiFunction;
import lombok.Builder;
-import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -216,6 +215,7 @@ public enum MetadataRegistry {
for (TagMetadata tag : tags) {
builder.addTags(tag.getTagSpec());
}
+ registry.put(schemaMetadata.name(), schemaBuilder.build());
return new PropertyModel(builder.build());
}
@@ -354,25 +354,6 @@ public enum MetadataRegistry {
return topNAggregations;
}
- public Schema findMetadata(final Model model) {
- if (model.isRecord()) {
- return findRecordMetadata(model.getName());
- }
- return findMetadata(model.getName(), model.getDownsampling());
- }
-
- public Schema findRecordMetadata(final String recordModelName) {
- final Schema s = this.registry.get(recordModelName);
- if (s == null) {
- return null;
- }
- // impose sanity check
- if (s.getMetadata().getKind() != Kind.STREAM &&
s.getMetadata().getKind() != Kind.TRACE) {
- throw new IllegalArgumentException(recordModelName + "is not a
record");
- }
- return s;
- }
-
static DownSampling deriveFromStep(Step step) {
switch (step) {
case DAY:
@@ -386,17 +367,35 @@ public enum MetadataRegistry {
}
}
- public Schema findMetadata(final String modelName, Step step) {
- return findMetadata(modelName, deriveFromStep(step));
+ public Schema findMetricMetadata(final String modelName, Step step) {
+ return findMetricMetadata(modelName, deriveFromStep(step));
}
/**
* Find metadata with down-sampling
*/
- public Schema findMetadata(final String modelName, DownSampling
downSampling) {
+ public Schema findMetricMetadata(final String modelName, DownSampling
downSampling) {
return this.registry.get(SchemaMetadata.formatName(modelName,
downSampling));
}
+ public Schema findRecordMetadata(final String modelName) {
+ return this.registry.get(modelName);
+ }
+
+ public Schema findManagementMetadata(final String modelName) {
+ return this.registry.get(modelName);
+ }
+
+ public Schema findMetadata(final Model model) {
+ if (!model.isTimeSeries()) {
+ return findManagementMetadata(model.getName());
+ }
+ if (model.isRecord()) {
+ return findRecordMetadata(model.getName());
+ }
+ return findMetricMetadata(model.getName(), model.getDownsampling());
+ }
+
private FieldSpec parseFieldSpec(ModelColumn modelColumn) {
String colName = modelColumn.getColumnName().getStorageName();
if (String.class.equals(modelColumn.getType())) {
@@ -654,8 +653,16 @@ public enum MetadataRegistry {
}
public SchemaMetadata parseMetadata(Model model, BanyanDBStorageConfig
config, DownSamplingConfigService configService) {
+ String namespace = config.getGlobal().getNamespace();
if (!model.isTimeSeries()) {
- return new
SchemaMetadata(BanyanDB.PropertyGroup.PROPERTY.getName(), model.getName(),
Kind.PROPERTY, DownSampling.None, config.getProperty());
+ return new SchemaMetadata(
+ namespace,
+ BanyanDB.PropertyGroup.PROPERTY.getName(),
+ model.getName(),
+ Kind.PROPERTY,
+ DownSampling.None,
+ config.getProperty()
+ );
}
if (model.isRecord()) {
BanyanDB.TraceGroup traceGroup =
model.getBanyanDBModelExtension().getTraceGroup();
@@ -664,6 +671,7 @@ public enum MetadataRegistry {
switch (traceGroup) {
case TRACE:
return new SchemaMetadata(
+ namespace,
BanyanDB.TraceGroup.TRACE.getName(),
model.getName(),
Kind.TRACE,
@@ -672,6 +680,7 @@ public enum MetadataRegistry {
);
case ZIPKIN_TRACE:
return new SchemaMetadata(
+ namespace,
BanyanDB.TraceGroup.ZIPKIN_TRACE.getName(),
model.getName(),
Kind.TRACE,
@@ -687,6 +696,7 @@ public enum MetadataRegistry {
switch (streamGroup) {
case RECORDS_LOG:
return new SchemaMetadata(
+ namespace,
BanyanDB.StreamGroup.RECORDS_LOG.getName(),
model.getName(),
Kind.STREAM,
@@ -695,6 +705,7 @@ public enum MetadataRegistry {
);
case RECORDS_BROWSER_ERROR_LOG:
return new SchemaMetadata(
+ namespace,
BanyanDB.StreamGroup.RECORDS_BROWSER_ERROR_LOG.getName(),
model.getName(),
Kind.STREAM,
@@ -703,6 +714,7 @@ public enum MetadataRegistry {
);
case RECORDS:
return new SchemaMetadata(
+ namespace,
BanyanDB.StreamGroup.RECORDS.getName(),
model.getName(),
Kind.STREAM,
@@ -716,45 +728,59 @@ public enum MetadataRegistry {
}
if (model.getBanyanDBModelExtension().isIndexMode()) {
- return new
SchemaMetadata(BanyanDB.MeasureGroup.METADATA.getName(), model.getName(),
Kind.MEASURE,
- model.getDownsampling(),
- config.getMetadata());
+ return new SchemaMetadata(
+ namespace,
+ BanyanDB.MeasureGroup.METADATA.getName(),
+ model.getName(),
+ Kind.MEASURE,
+ model.getDownsampling(),
+ config.getMetadata()
+ );
}
switch (model.getDownsampling()) {
case Minute:
- return new
SchemaMetadata(BanyanDB.MeasureGroup.METRICS_MINUTE.getName(),
- model.getName(),
- Kind.MEASURE,
- model.getDownsampling(),
- config.getMetricsMin());
+ return new SchemaMetadata(
+ namespace,
+ BanyanDB.MeasureGroup.METRICS_MINUTE.getName(),
+ model.getName(),
+ Kind.MEASURE,
+ model.getDownsampling(),
+ config.getMetricsMin()
+ );
case Hour:
if (!configService.shouldToHour()) {
throw new UnsupportedOperationException("downsampling to
hour is not supported");
}
- return new
SchemaMetadata(BanyanDB.MeasureGroup.METRICS_HOUR.getName(),
- model.getName(),
- Kind.MEASURE,
- model.getDownsampling(),
- config.getMetricsHour());
+ return new SchemaMetadata(
+ namespace,
+ BanyanDB.MeasureGroup.METRICS_HOUR.getName(),
+ model.getName(),
+ Kind.MEASURE,
+ model.getDownsampling(),
+ config.getMetricsHour()
+ );
case Day:
if (!configService.shouldToDay()) {
throw new UnsupportedOperationException("downsampling to
day is not supported");
}
- return new
SchemaMetadata(BanyanDB.MeasureGroup.METRICS_DAY.getName(),
- model.getName(),
- Kind.MEASURE,
- model.getDownsampling(),
- config.getMetricsDay());
+ return new SchemaMetadata(
+ namespace,
+ BanyanDB.MeasureGroup.METRICS_DAY.getName(),
+ model.getName(),
+ Kind.MEASURE,
+ model.getDownsampling(),
+ config.getMetricsDay()
+ );
default:
throw new UnsupportedOperationException("unsupported
downSampling interval:" + model.getDownsampling());
}
}
- @RequiredArgsConstructor
- @Data
+ @Getter
@ToString
public static class SchemaMetadata {
+ private final String namespace;
private final String group;
/**
* name of the {@link Model}
@@ -767,6 +793,21 @@ public enum MetadataRegistry {
private final DownSampling downSampling;
private final BanyanDBStorageConfig.GroupResource resource;
+ public SchemaMetadata(final String namespace,
+ final String group,
+ final String modelName,
+ final Kind kind,
+ final DownSampling downSampling,
+ final BanyanDBStorageConfig.GroupResource
resource) {
+ this.namespace = namespace;
+ this.modelName = modelName;
+ this.kind = kind;
+ this.downSampling = downSampling;
+ this.resource = resource;
+ this.group = convertGroupName(namespace, group);
+
+ }
+
/**
* Format the entity name for BanyanDB
*
@@ -885,4 +926,12 @@ public enum MetadataRegistry {
public enum ColumnType {
TAG, FIELD;
}
+
+ public static String convertGroupName(String namespace, String groupName) {
+ if (StringUtil.isNotEmpty(namespace)) {
+ return namespace + "_" + groupName;
+ } else {
+ return groupName;
+ }
+ }
}
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBEBPFProfilingScheduleQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBEBPFProfilingScheduleQueryDAO.java
index d0cf955777..09c13b014f 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBEBPFProfilingScheduleQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBEBPFProfilingScheduleQueryDAO.java
@@ -52,7 +52,7 @@ import java.util.stream.Collectors;
@Override
public List<EBPFProfilingSchedule> querySchedules(String taskId) throws
IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(EBPFProfilingScheduleRecord.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(EBPFProfilingScheduleRecord.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
TAGS,
Collections.emptySet(), new
QueryBuilder<MeasureQuery>() {
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBHierarchyQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBHierarchyQueryDAO.java
index b8e08ff332..427b7801da 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBHierarchyQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBHierarchyQueryDAO.java
@@ -62,7 +62,7 @@ public class BanyanDBHierarchyQueryDAO extends
AbstractBanyanDBDAO implements IH
@Override
public List<ServiceHierarchyRelationTraffic>
readAllServiceHierarchyRelations() throws Exception {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ServiceHierarchyRelationTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ServiceHierarchyRelationTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
SERVICE_HIERARCHY_RELATION_TAGS,
Collections.emptySet(), new
QueryBuilder<>() {
@@ -86,7 +86,7 @@ public class BanyanDBHierarchyQueryDAO extends
AbstractBanyanDBDAO implements IH
@Override
public List<InstanceHierarchyRelationTraffic>
readInstanceHierarchyRelations(final String instanceId,
final String layer) throws Exception {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ServiceHierarchyRelationTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ServiceHierarchyRelationTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
INSTANCE_HIERARCHY_RELATION_TAGS,
Collections.emptySet(),
buildInstanceRelationsQuery(instanceId, layer)
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
index a15efc8564..9138f7e0b4 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java
@@ -90,7 +90,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public List<Service> listServices() throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ServiceTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ServiceTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
SERVICE_TRAFFIC_TAGS,
@@ -117,7 +117,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
// It's equals to the condition
`query.and(lte(InstanceTraffic.TIME_BUCKET, endTimeBucket))`
timestampRange = new TimestampRange(0, duration.getEndTimestamp());
}
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(InstanceTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(InstanceTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
INSTANCE_TRAFFIC_TAGS,
Collections.emptySet(),
@@ -145,7 +145,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public ServiceInstance getInstance(String instanceId) throws IOException {
IDManager.ServiceInstanceID.InstanceIDDefinition id =
IDManager.ServiceInstanceID.analysisId(instanceId);
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(InstanceTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(InstanceTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
INSTANCE_TRAFFIC_TAGS,
Collections.emptySet(),
@@ -161,7 +161,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public List<ServiceInstance> getInstances(List<String> instanceIds) throws
IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(InstanceTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(InstanceTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
INSTANCE_TRAFFIC_TAGS,
Collections.emptySet(),
@@ -176,7 +176,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public List<Endpoint> findEndpoint(String keyword, String serviceId, int
limit, Duration duration) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(EndpointTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(EndpointTraffic.INDEX_NAME,
DownSampling.Minute);
TimestampRange timestampRange = null;
if (duration != null) {
// The data time should <= endTimeBucket.
@@ -217,7 +217,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public List<Process> listProcesses(String serviceId,
ProfilingSupportStatus supportStatus, long lastPingStartTimeBucket, long
lastPingEndTimeBucket) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
TimestampRange timestampRange = null;
if (lastPingEndTimeBucket > 0) {
// The data time should <= endTimeBucket.
@@ -253,7 +253,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public List<Process> listProcesses(String serviceInstanceId, Duration
duration, boolean includeVirtual) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
TimestampRange timestampRange = null;
if (duration != null) {
// The data time should <= endTimeBucket.
@@ -287,7 +287,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public List<Process> listProcesses(String agentId, long
startPingTimeBucket, long endPingTimeBucket) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
TimestampRange timestampRange = null;
if (endPingTimeBucket > 0) {
// The data time should <= endTimeBucket.
@@ -318,7 +318,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public long getProcessCount(String serviceId, ProfilingSupportStatus
profilingSupportStatus, long lastPingStartTimeBucket, long
lastPingEndTimeBucket) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
PROCESS_TRAFFIC_TAGS,
Collections.emptySet(),
@@ -340,7 +340,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public long getProcessCount(String instanceId) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
PROCESS_TRAFFIC_TAGS,
Collections.emptySet(),
@@ -360,7 +360,7 @@ public class BanyanDBMetadataQueryDAO extends
AbstractBanyanDBDAO implements IMe
@Override
public Process getProcess(String processId) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ProcessTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp = query(false, schema,
PROCESS_TRAFFIC_TAGS,
Collections.emptySet(),
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java
index 6a32f0cf64..84b84290ca 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java
@@ -57,7 +57,7 @@ public class BanyanDBMetricsQueryDAO extends
AbstractBanyanDBDAO implements IMet
@Override
public MetricsValues readMetricsValues(MetricsCondition condition, String
valueColumnName, Duration duration) throws IOException {
String modelName = condition.getName();
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(modelName, duration.getStep());
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(modelName, duration.getStep());
if (schema == null) {
throw new IOException("schema is not registered");
}
@@ -131,7 +131,7 @@ public class BanyanDBMetricsQueryDAO extends
AbstractBanyanDBDAO implements IMet
final List<KeyValue>
labels,
final Duration duration)
throws IOException {
final boolean isColdStage = duration != null && duration.isColdStage();
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(metricsName, duration.getStep());
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(metricsName, duration.getStep());
if (schema == null) {
throw new IOException("schema is not registered");
}
@@ -194,7 +194,7 @@ public class BanyanDBMetricsQueryDAO extends
AbstractBanyanDBDAO implements IMet
}
private Map<Long, DataPoint> queryByEntityID(final MetricsCondition
condition, String valueColumnName, Duration duration) throws IOException {
- final MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(condition.getName(), duration.getStep());
+ final MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(condition.getName(),
duration.getStep());
if (schema == null) {
throw new IOException("schema is not registered");
}
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBNetworkAddressAliasDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBNetworkAddressAliasDAO.java
index a0a342c1f4..8b4055658f 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBNetworkAddressAliasDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBNetworkAddressAliasDAO.java
@@ -56,7 +56,7 @@ public class BanyanDBNetworkAddressAliasDAO extends
AbstractBanyanDBDAO implemen
private MetadataRegistry.Schema getSchema() {
if (schema == null) {
- schema =
MetadataRegistry.INSTANCE.findMetadata(NetworkAddressAlias.INDEX_NAME,
DownSampling.Minute);
+ schema =
MetadataRegistry.INSTANCE.findMetricMetadata(NetworkAddressAlias.INDEX_NAME,
DownSampling.Minute);
}
return schema;
}
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBServiceLabelDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBServiceLabelDAO.java
index 8dc16bfce3..64ed99f8b5 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBServiceLabelDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBServiceLabelDAO.java
@@ -46,7 +46,7 @@ public class BanyanDBServiceLabelDAO extends
AbstractBanyanDBDAO implements ISer
@Override
public List<String> queryAllLabels(String serviceId) throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ServiceLabelRecord.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ServiceLabelRecord.INDEX_NAME,
DownSampling.Minute);
return query(false, schema, TAGS,
Collections.emptySet(), new QueryBuilder<MeasureQuery>() {
@Override
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTagAutocompleteQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTagAutocompleteQueryDAO.java
index 94fae1fb9e..9ae3985f77 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTagAutocompleteQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTagAutocompleteQueryDAO.java
@@ -54,7 +54,7 @@ public class BanyanDBTagAutocompleteQueryDAO extends
AbstractBanyanDBDAO impleme
@Override
public Set<String> queryTagAutocompleteKeys(TagType tagType, int limit,
Duration duration) throws IOException {
final boolean isColdStage = duration != null && duration.isColdStage();
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(TagAutocompleteData.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(TagAutocompleteData.INDEX_NAME,
DownSampling.Minute);
long startMinTB = 0;
long endMinTB = 0;
if (nonNull(duration)) {
@@ -96,7 +96,7 @@ public class BanyanDBTagAutocompleteQueryDAO extends
AbstractBanyanDBDAO impleme
@Override
public Set<String> queryTagAutocompleteValues(TagType tagType, String
tagKey, int limit, Duration duration) throws IOException {
final boolean isColdStage = duration != null && duration.isColdStage();
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(TagAutocompleteData.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(TagAutocompleteData.INDEX_NAME,
DownSampling.Minute);
long startMinTB = 0;
long endMinTB = 0;
if (nonNull(duration)) {
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTopologyQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTopologyQueryDAO.java
index 0f10fa3722..d6d9099f2e 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTopologyQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBTopologyQueryDAO.java
@@ -109,7 +109,7 @@ public class BanyanDBTopologyQueryDAO extends
AbstractBanyanDBDAO implements ITo
final boolean isColdStage = duration != null && duration.isColdStage();
final String modelName = detectPoint == DetectPoint.SERVER ?
ServiceRelationServerSideMetrics.INDEX_NAME :
ServiceRelationClientSideMetrics.INDEX_NAME;
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(modelName, duration.getStep());
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(modelName, duration.getStep());
MeasureQueryResponse resp = queryDebuggable(isColdStage, schema,
ImmutableSet.of(
ServiceRelationClientSideMetrics.COMPONENT_IDS,
@@ -183,7 +183,7 @@ public class BanyanDBTopologyQueryDAO extends
AbstractBanyanDBDAO implements ITo
final boolean isColdStage = duration != null && duration.isColdStage();
final String modelName = detectPoint == DetectPoint.SERVER ?
ServiceInstanceRelationServerSideMetrics.INDEX_NAME :
ServiceInstanceRelationClientSideMetrics.INDEX_NAME;
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(modelName, duration.getStep());
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(modelName, duration.getStep());
MeasureQueryResponse resp = queryDebuggable(isColdStage, schema,
ImmutableSet.of(
Metrics.ENTITY_ID
@@ -238,7 +238,7 @@ public class BanyanDBTopologyQueryDAO extends
AbstractBanyanDBDAO implements ITo
QueryBuilder<MeasureQuery>
queryBuilder,
DetectPoint detectPoint)
throws IOException {
final boolean isColdStage = duration != null && duration.isColdStage();
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(EndpointRelationServerSideMetrics.INDEX_NAME,
duration.getStep());
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(EndpointRelationServerSideMetrics.INDEX_NAME,
duration.getStep());
MeasureQueryResponse resp = queryDebuggable(isColdStage, schema,
ImmutableSet.of(
Metrics.ENTITY_ID
@@ -265,7 +265,7 @@ public class BanyanDBTopologyQueryDAO extends
AbstractBanyanDBDAO implements ITo
final String modelName = detectPoint == DetectPoint.SERVER ?
ProcessRelationServerSideMetrics.INDEX_NAME :
ProcessRelationClientSideMetrics.INDEX_NAME;
// process relation only has minute data
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(modelName, DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(modelName, DownSampling.Minute);
MeasureQueryResponse resp = queryDebuggable(isColdStage, schema,
ImmutableSet.of(Metrics.ENTITY_ID,
ProcessRelationClientSideMetrics.COMPONENT_ID),
Collections.emptySet(), getTimestampRange(duration), new
QueryBuilder<MeasureQuery>() {
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
index 67c1b44db4..da7f11cf78 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java
@@ -297,10 +297,47 @@ public abstract class AbstractBanyanDBDAO extends
AbstractDAO<BanyanDBStorageCli
return getClient().query(query);
}
+ protected TraceQueryResponse queryTraceDebuggable(boolean isColdStage,
+ String modelName,
+ TimestampRange
timestampRange,
+ QueryBuilder<TraceQuery>
queryBuilder) throws IOException {
+ DebuggingTraceContext traceContext =
DebuggingTraceContext.TRACE_CONTEXT.get();
+ DebuggingSpan span = null;
+ try {
+ StringBuilder builder = new StringBuilder();
+ if (traceContext != null) {
+ span = traceContext.createSpan("Query BanyanDB Trace");
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findRecordMetadata(modelName);
+ builder.append("Condition: ")
+ .append("modelName:")
+ .append(modelName)
+ .append(", Schema: ")
+ .append(schema)
+ .append(", TimestampRange: ")
+ .append(timestampRange)
+ .append(", Is cold data query: ")
+ .append(isColdStage);
+ span.setMsg(builder.toString());
+ }
+ TraceQueryResponse response = queryTrace(isColdStage, modelName,
timestampRange, queryBuilder);
+ if (traceContext != null && traceContext.isDumpStorageRsp()) {
+ builder.append("\n").append(" Response: ").append(new
Gson().toJson(response.getTraces()));
+ span.setMsg(builder.toString());
+ }
+ //todo: need update banyandb java client.
+ // addDBTrace2DebuggingTrace(response.getTraceResult(),
traceContext, span);
+ return response;
+ } finally {
+ if (traceContext != null && span != null) {
+ traceContext.stopSpan(span);
+ }
+ }
+ }
+
/**
* Trace query doesn't recommend to set query tags, if you need to debug,
you can set tags here.
*/
- protected TraceQueryResponse queryTrace(boolean isColdStage,
+ private TraceQueryResponse queryTrace(boolean isColdStage,
String traceModelName,
TimestampRange timestampRange,
QueryBuilder<TraceQuery> builder)
throws IOException {
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBContinuousProfilingPolicyDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBContinuousProfilingPolicyDAO.java
index c3a0fe910d..2de1740b9e 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBContinuousProfilingPolicyDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBContinuousProfilingPolicyDAO.java
@@ -24,7 +24,6 @@ import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
import org.apache.skywalking.banyandb.v1.client.TagAndValue;
import org.apache.skywalking.banyandb.property.v1.BanyandbProperty.Property;
import
org.apache.skywalking.oap.server.core.profiling.continuous.storage.ContinuousProfilingPolicy;
-import org.apache.skywalking.oap.server.core.storage.annotation.BanyanDB;
import
org.apache.skywalking.oap.server.core.storage.profiling.continuous.IContinuousProfilingPolicyDAO;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient;
@@ -32,6 +31,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
+import
org.apache.skywalking.oap.server.storage.plugin.banyandb.MetadataRegistry;
@Slf4j
public class BanyanDBContinuousProfilingPolicyDAO extends AbstractBanyanDBDAO
implements IContinuousProfilingPolicyDAO {
@@ -50,9 +50,10 @@ public class BanyanDBContinuousProfilingPolicyDAO extends
AbstractBanyanDBDAO im
}
public Property applyAll(ContinuousProfilingPolicy policy) {
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findManagementMetadata(ContinuousProfilingPolicy.INDEX_NAME);
return Property.newBuilder()
.setMetadata(BanyandbCommon.Metadata.newBuilder()
- .setGroup(BanyanDB.PropertyGroup.PROPERTY.getName())
+ .setGroup(schema.getMetadata().getGroup())
.setName(ContinuousProfilingPolicy.INDEX_NAME))
.setId(policy.id().build())
.addTags(TagAndValue.newStringTag(ContinuousProfilingPolicy.UUID,
policy.getUuid()).build())
@@ -64,7 +65,7 @@ public class BanyanDBContinuousProfilingPolicyDAO extends
AbstractBanyanDBDAO im
public List<ContinuousProfilingPolicy> queryPolicies(List<String>
serviceIdList) throws IOException {
return serviceIdList.stream().map(s -> {
try {
- return
getClient().queryProperty(BanyanDB.PropertyGroup.PROPERTY.getName(),
ContinuousProfilingPolicy.INDEX_NAME, s);
+ return
getClient().queryProperty(ContinuousProfilingPolicy.INDEX_NAME, s);
} catch (IOException e) {
log.warn("query policy error", e);
return null;
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBEventQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBEventQueryDAO.java
index abaee1e189..7b53aea70d 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBEventQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBEventQueryDAO.java
@@ -30,7 +30,6 @@ import org.apache.skywalking.banyandb.v1.client.Element;
import org.apache.skywalking.banyandb.v1.client.PairQueryCondition;
import org.apache.skywalking.banyandb.v1.client.StreamQuery;
import org.apache.skywalking.banyandb.v1.client.StreamQueryResponse;
-import org.apache.skywalking.oap.server.core.analysis.DownSampling;
import org.apache.skywalking.oap.server.core.analysis.Layer;
import org.apache.skywalking.oap.server.core.query.PaginationUtils;
import org.apache.skywalking.oap.server.core.query.enumeration.Order;
@@ -42,7 +41,6 @@ import
org.apache.skywalking.oap.server.core.query.type.event.Source;
import org.apache.skywalking.oap.server.core.analysis.record.Event;
import org.apache.skywalking.oap.server.core.storage.query.IEventQueryDAO;
import
org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient;
-import
org.apache.skywalking.oap.server.storage.plugin.banyandb.MetadataRegistry;
import static com.google.common.base.Strings.isNullOrEmpty;
import static java.util.Objects.isNull;
@@ -73,7 +71,6 @@ public class BanyanDBEventQueryDAO extends
AbstractBanyanDBDAO implements IEvent
@Override
public Events queryEvents(List<EventQueryCondition> conditionList) throws
Exception {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(Event.INDEX_NAME, DownSampling.Minute);
// Duration should be same for all conditions
final Duration time = conditionList.get(0).getTime();
boolean isColdStage = time != null && time.isColdStage();
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
index c54e26594e..dcbfbc3ef2 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBTraceQueryDAO.java
@@ -80,7 +80,7 @@ public class BanyanDBTraceQueryDAO extends
AbstractBanyanDBDAO implements ITrace
@Override
public List<SegmentRecord> queryBySegmentIdList(List<String>
segmentIdList, @Nullable Duration duration) throws IOException {
final boolean isColdStage = duration != null && duration.isColdStage();
- TraceQueryResponse resp = queryTrace(isColdStage,
SegmentRecord.INDEX_NAME, getTimestampRange(duration),
+ TraceQueryResponse resp = queryTraceDebuggable(isColdStage,
SegmentRecord.INDEX_NAME, getTimestampRange(duration),
new QueryBuilder<TraceQuery>() {
@Override
public void apply(TraceQuery query) {
@@ -95,7 +95,7 @@ public class BanyanDBTraceQueryDAO extends
AbstractBanyanDBDAO implements ITrace
@Override
public List<SegmentRecord> queryByTraceIdWithInstanceId(List<String>
traceIdList, List<String> instanceIdList, @Nullable Duration duration) throws
IOException {
final boolean isColdStage = duration != null && duration.isColdStage();
- TraceQueryResponse resp = queryTrace(isColdStage,
SegmentRecord.INDEX_NAME, getTimestampRange(duration),
+ TraceQueryResponse resp = queryTraceDebuggable(isColdStage,
SegmentRecord.INDEX_NAME, getTimestampRange(duration),
new QueryBuilder<TraceQuery>() {
@Override
public void apply(TraceQuery
query) {
@@ -124,7 +124,7 @@ public class BanyanDBTraceQueryDAO extends
AbstractBanyanDBDAO implements ITrace
query.setLimit(segmentQueryMaxSize);
}
};
- TraceQueryResponse resp = queryTrace(isColdStage,
SegmentRecord.INDEX_NAME, getTimestampRange(duration), query);
+ TraceQueryResponse resp = queryTraceDebuggable(isColdStage,
SegmentRecord.INDEX_NAME, getTimestampRange(duration), query);
if (resp.getTraces().isEmpty()) {
return new ArrayList<>();
}
@@ -210,7 +210,7 @@ public class BanyanDBTraceQueryDAO extends
AbstractBanyanDBDAO implements ITrace
}
};
TimestampRange timestampRange = getTimestampRange(duration);
- TraceQueryResponse resp = queryTrace(
+ TraceQueryResponse resp = queryTraceDebuggable(
isColdStage, SegmentRecord.INDEX_NAME, timestampRange, query);
List<List<SpanWrapper>> traces = new ArrayList<>();
for (var t : resp.getTraces()) {
diff --git
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBZipkinQueryDAO.java
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBZipkinQueryDAO.java
index 5bd479bb8b..3908401f7c 100644
---
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBZipkinQueryDAO.java
+++
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/trace/BanyanDBZipkinQueryDAO.java
@@ -61,7 +61,7 @@ public class BanyanDBZipkinQueryDAO extends
AbstractBanyanDBDAO implements IZipk
@Override
public List<String> getServiceNames() throws IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ZipkinServiceTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ZipkinServiceTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp =
query(false, schema,
SERVICE_TRAFFIC_TAGS,
@@ -82,7 +82,7 @@ public class BanyanDBZipkinQueryDAO extends
AbstractBanyanDBDAO implements IZipk
@Override
public List<String> getRemoteServiceNames(final String serviceName) throws
IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ZipkinServiceRelationTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ZipkinServiceRelationTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp =
query(false, schema,
REMOTE_SERVICE_TRAFFIC_TAGS,
@@ -106,7 +106,7 @@ public class BanyanDBZipkinQueryDAO extends
AbstractBanyanDBDAO implements IZipk
@Override
public List<String> getSpanNames(final String serviceName) throws
IOException {
- MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetadata(ZipkinServiceSpanTraffic.INDEX_NAME,
DownSampling.Minute);
+ MetadataRegistry.Schema schema =
MetadataRegistry.INSTANCE.findMetricMetadata(ZipkinServiceSpanTraffic.INDEX_NAME,
DownSampling.Minute);
MeasureQueryResponse resp =
query(false, schema,
SPAN_TRAFFIC_TAGS,
@@ -153,7 +153,7 @@ public class BanyanDBZipkinQueryDAO extends
AbstractBanyanDBDAO implements IZipk
query.setLimit(QUERY_MAX_SIZE);
}
};
- TraceQueryResponse resp = queryTrace(isColdStage,
ZipkinSpanRecord.INDEX_NAME, getTimestampRange(duration), query);
+ TraceQueryResponse resp = queryTraceDebuggable(isColdStage,
ZipkinSpanRecord.INDEX_NAME, getTimestampRange(duration), query);
if (resp.getTraces().isEmpty()) {
return new ArrayList<>();
}
@@ -183,7 +183,7 @@ public class BanyanDBZipkinQueryDAO extends
AbstractBanyanDBDAO implements IZipk
query.setLimit(QUERY_MAX_SIZE);
}
};
- TraceQueryResponse resp = queryTrace(
+ TraceQueryResponse resp = queryTraceDebuggable(
isColdStage, ZipkinSpanRecord.INDEX_NAME,
getTimestampRange(duration),
query
);
@@ -240,7 +240,7 @@ public class BanyanDBZipkinQueryDAO extends
AbstractBanyanDBDAO implements IZipk
query.setLimit(request.limit());
}
};
- TraceQueryResponse resp = queryTrace(
+ TraceQueryResponse resp = queryTraceDebuggable(
isColdStage, ZipkinSpanRecord.INDEX_NAME,
getTimestampRange(duration),
queryBuilder
);