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 d0a075d0050a843de13d625291710e76a389aa45 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
