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


The following commit(s) were added to refs/heads/banyandb-integration-stream by 
this push:
     new b3830f776d fix extra tags indexes
b3830f776d is described below

commit b3830f776d5f6a2af7dd1619d7ade7fe92407ebc
Author: Megrez Lu <[email protected]>
AuthorDate: Mon May 2 21:14:26 2022 +0800

    fix extra tags indexes
---
 .../storage/plugin/banyandb/BanyanDBConverter.java    |  2 +-
 .../storage/plugin/banyandb/MetadataRegistry.java     | 19 +++++++++++--------
 .../plugin/banyandb/stream/BanyanDBTraceQueryDAO.java | 18 +++++++++---------
 3 files changed, 21 insertions(+), 18 deletions(-)

diff --git 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConverter.java
 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConverter.java
index fe4d15f9ea..5c9071f8b0 100644
--- 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConverter.java
+++ 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBConverter.java
@@ -204,7 +204,7 @@ public class BanyanDBConverter {
         } else if (StorageDataComplexObject.class.isAssignableFrom(clazz)) {
             return TagAndValue.stringTagValue(((StorageDataComplexObject<?>) 
value).toStorageData());
         } else if (Layer.class.equals(clazz)) {
-            return TagAndValue.longTagValue(((Integer) value).longValue());
+            return TagAndValue.longTagValue((int) value);
         } else if (JsonObject.class.equals(clazz)) {
             return TagAndValue.stringTagValue((String) value);
         }
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 18767ae21e..d3284bdf1b 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
@@ -221,11 +221,11 @@ public enum MetadataRegistry {
 
         // add all user-defined indexed tags to the end of the "searchable" 
family
         if (SegmentRecord.INDEX_NAME.equals(model.getName())) {
-            
tagMetadataList.addAll(parseExtraTagSpecs(configService.getSearchableTracesTags()));
+            
tagMetadataList.addAll(parseExtraTagSpecs(configService.getSearchableTracesTags(),
 builder));
         } else if (LogRecord.INDEX_NAME.equals(model.getName())) {
-            
tagMetadataList.addAll(parseExtraTagSpecs(configService.getSearchableLogsTags()));
+            
tagMetadataList.addAll(parseExtraTagSpecs(configService.getSearchableLogsTags(),
 builder));
         } else if (AlarmRecord.INDEX_NAME.equals(model.getName())) {
-            
tagMetadataList.addAll(parseExtraTagSpecs(configService.getSearchableAlarmTags()));
+            
tagMetadataList.addAll(parseExtraTagSpecs(configService.getSearchableAlarmTags(),
 builder));
         }
 
         return tagMetadataList;
@@ -238,7 +238,7 @@ public enum MetadataRegistry {
      * @param tags a series of tags joint by comma
      * @return a list of {@link 
org.apache.skywalking.banyandb.v1.client.metadata.TagFamilySpec.TagSpec} 
generated from input
      */
-    private List<TagMetadata> parseExtraTagSpecs(String tags) {
+    private List<TagMetadata> parseExtraTagSpecs(String tags, 
Schema.SchemaBuilder builder) {
         if (StringUtil.isEmpty(tags)) {
             return Collections.emptyList();
         }
@@ -246,10 +246,13 @@ public enum MetadataRegistry {
         if (tagsArray.length == 0) {
             return Collections.emptyList();
         }
-        return Arrays.stream(tagsArray)
-                .map(tagName -> new TagMetadata(parseIndexRule(tagName, null),
-                        TagFamilySpec.TagSpec.newStringTag(tagName)))
-                .collect(Collectors.toList());
+        List<TagMetadata> extraTagMetadataList = new ArrayList<>();
+        for (final String tagName : tagsArray) {
+            builder.spec(tagName, new ColumnSpec(ColumnType.TAG, 
String.class));
+            extraTagMetadataList.add(new TagMetadata(parseIndexRule(tagName, 
null),
+                    TagFamilySpec.TagSpec.newStringTag(tagName)));
+        }
+        return extraTagMetadataList;
     }
 
     /**
diff --git 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBTraceQueryDAO.java
 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBTraceQueryDAO.java
index 2e3f4f71e7..c2035cbc66 100644
--- 
a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBTraceQueryDAO.java
+++ 
b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/BanyanDBTraceQueryDAO.java
@@ -38,7 +38,6 @@ import 
org.apache.skywalking.oap.server.library.util.BooleanUtils;
 import org.apache.skywalking.oap.server.library.util.CollectionUtils;
 import 
org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBConverter;
 import 
org.apache.skywalking.oap.server.storage.plugin.banyandb.BanyanDBStorageClient;
-import 
org.apache.skywalking.oap.server.storage.plugin.banyandb.MetadataRegistry;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -114,13 +113,13 @@ public class BanyanDBTraceQueryDAO extends 
AbstractBanyanDBDAO implements ITrace
         }
 
         StreamQueryResponse resp = query(SegmentRecord.INDEX_NAME,
-                ImmutableSet.of(SegmentRecord.TRACE_ID, // 0 - trace_id
-                        SegmentRecord.IS_ERROR, // 1 - is_error
-                        SegmentRecord.SERVICE_ID, // 2 - service_id
-                        SegmentRecord.SERVICE_INSTANCE_ID, // 3 - 
service_instance_id
-                        SegmentRecord.ENDPOINT_ID, // 4 - endpoint_id
-                        SegmentRecord.LATENCY, // 5 - latency
-                        SegmentRecord.START_TIME), // 6 - start_time
+                ImmutableSet.of(SegmentRecord.TRACE_ID,
+                        SegmentRecord.IS_ERROR,
+                        SegmentRecord.SERVICE_ID,
+                        SegmentRecord.SERVICE_INSTANCE_ID,
+                        SegmentRecord.ENDPOINT_ID,
+                        SegmentRecord.LATENCY,
+                        SegmentRecord.START_TIME),
                 tsRange, q);
 
         TraceBrief traceBrief = new TraceBrief();
@@ -130,7 +129,7 @@ public class BanyanDBTraceQueryDAO extends 
AbstractBanyanDBDAO implements ITrace
             BasicTrace basicTrace = new BasicTrace();
 
             basicTrace.setSegmentId(row.getId());
-            
basicTrace.setStart(String.valueOf(row.getTagValue(SegmentRecord.START_TIME)));
+            basicTrace.setStart(String.valueOf((Number) 
row.getTagValue(SegmentRecord.START_TIME)));
             basicTrace.getEndpointNames().add(IDManager.EndpointID.analysisId(
                     row.getTagValue(SegmentRecord.ENDPOINT_ID)
             ).getEndpointName());
@@ -156,6 +155,7 @@ public class BanyanDBTraceQueryDAO extends 
AbstractBanyanDBDAO implements ITrace
                         SegmentRecord.ENDPOINT_ID,
                         SegmentRecord.LATENCY,
                         SegmentRecord.START_TIME,
+                        SegmentRecord.TIME_BUCKET,
                         SegmentRecord.DATA_BINARY),
                 new QueryBuilder<StreamQuery>() {
                     @Override

Reply via email to