You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2023/01/04 14:12:04 UTC

[skywalking-banyandb-java-client] branch main updated: Remove Measure ID (#30)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git


The following commit(s) were added to refs/heads/main by this push:
     new 6708cc5  Remove Measure ID (#30)
6708cc5 is described below

commit 6708cc5d07007abc2f23409467251e603486d764
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Wed Jan 4 22:11:59 2023 +0800

    Remove Measure ID (#30)
---
 .../skywalking/banyandb/v1/client/DataPoint.java   |  5 +---
 .../{StreamQueryResponse.java => Element.java}     | 29 ++++++++++------------
 .../banyandb/v1/client/MeasureQuery.java           | 22 ++++++++--------
 .../banyandb/v1/client/MeasureWrite.java           |  5 ----
 .../banyandb/v1/client/PairQueryCondition.java     | 18 --------------
 .../skywalking/banyandb/v1/client/RowEntity.java   | 24 ++++--------------
 .../banyandb/v1/client/StreamQueryResponse.java    |  4 +--
 .../skywalking/banyandb/v1/client/TagAndValue.java | 20 ---------------
 .../skywalking/banyandb/v1/client/Value.java       | 18 --------------
 .../banyandb/v1/client/metadata/Measure.java       |  1 -
 .../banyandb/v1/client/metadata/TagFamilySpec.java |  5 ----
 .../v1/client/BanyanDBClientMeasureQueryTest.java  | 15 +++--------
 .../v1/client/BanyanDBClientMeasureWriteTest.java  |  9 +++----
 .../banyandb/v1/client/BanyanDBClientTestCI.java   | 13 +++++-----
 .../v1/client/ITBanyanDBMeasureQueryTests.java     |  6 ++---
 .../metadata/MeasureMetadataRegistryTest.java      |  3 ---
 16 files changed, 46 insertions(+), 151 deletions(-)

diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/DataPoint.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/DataPoint.java
index 331cacf..1da8334 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/DataPoint.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/DataPoint.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.banyandb.v1.client;
 import lombok.Getter;
 import org.apache.skywalking.banyandb.measure.v1.BanyandbMeasure;
 import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
-import org.apache.skywalking.banyandb.v1.client.metadata.Measure;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -34,9 +33,7 @@ public class DataPoint extends RowEntity {
     private final Map<String, Object> fields;
 
     public static DataPoint create(BanyandbMeasure.DataPoint dataPoint) {
-        final DataPoint dp = new DataPoint(dataPoint);
-        dp.id = dp.getTagValue(Measure.ID);
-        return dp;
+        return new DataPoint(dataPoint);
     }
 
     private DataPoint(BanyandbMeasure.DataPoint dataPoint) {
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamQueryResponse.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/Element.java
similarity index 62%
copy from src/main/java/org/apache/skywalking/banyandb/v1/client/StreamQueryResponse.java
copy to src/main/java/org/apache/skywalking/banyandb/v1/client/Element.java
index baa06e5..06ddb2b 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamQueryResponse.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/Element.java
@@ -18,29 +18,26 @@
 
 package org.apache.skywalking.banyandb.v1.client;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import lombok.Getter;
 import org.apache.skywalking.banyandb.stream.v1.BanyandbStream;
 
 /**
- * StreamQueryResponse represents the stream query result.
+ * Element represents an entity in a Stream.
  */
-public class StreamQueryResponse {
-    @Getter
-    private final List<RowEntity> elements;
+@Getter
+public class Element extends RowEntity {
+    /**
+     * identity of the element.
+     * For a trace entity, it is the spanID of a Span or the segmentId of a segment in Skywalking,
+     */
+    protected final String id;
 
-    StreamQueryResponse(BanyandbStream.QueryResponse response) {
-        final List<BanyandbStream.Element> elementsList = response.getElementsList();
-        elements = new ArrayList<>(elementsList.size());
-        elementsList.forEach(element -> elements.add(RowEntity.create(element)));
+    public static Element create(BanyandbStream.Element element) {
+        return new Element(element);
     }
 
-    /**
-     * @return size of the response set.
-     */
-    public int size() {
-        return elements.size();
+    private Element(BanyandbStream.Element element) {
+        super(element.getTimestamp(), element.getTagFamiliesList());
+        this.id = element.getElementId();
     }
 }
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureQuery.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureQuery.java
index 14caca0..6f3799e 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureQuery.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureQuery.java
@@ -20,13 +20,11 @@ package org.apache.skywalking.banyandb.v1.client;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableSet;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.skywalking.banyandb.measure.v1.BanyandbMeasure;
 import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
 import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException;
-import org.apache.skywalking.banyandb.v1.client.metadata.Measure;
 
 import java.util.Set;
 
@@ -55,7 +53,7 @@ public class MeasureQuery extends AbstractQuery<BanyandbMeasure.QueryRequest> {
     }
 
     public MeasureQuery(final String group, final String name, final TimestampRange timestampRange, final Set<String> tagProjections, final Set<String> fieldProjections) {
-        super(group, name, timestampRange, addIDProjection(tagProjections));
+        super(group, name, timestampRange, tagProjections);
         this.fieldProjections = fieldProjections;
     }
 
@@ -152,10 +150,15 @@ public class MeasureQuery extends AbstractQuery<BanyandbMeasure.QueryRequest> {
         } else {
             builder.setTimeRange(TimestampRange.MAX_RANGE);
         }
-        builder.setTagProjection(buildTagProjections());
-        builder.setFieldProjection(BanyandbMeasure.QueryRequest.FieldProjection.newBuilder()
-                .addAllNames(fieldProjections)
-                .build());
+        BanyandbModel.TagProjection tagProjections = buildTagProjections();
+        if (tagProjections.getTagFamiliesCount() > 0) {
+            builder.setTagProjection(buildTagProjections());
+        }
+        if (!fieldProjections.isEmpty()) {
+            builder.setFieldProjection(BanyandbMeasure.QueryRequest.FieldProjection.newBuilder()
+                    .addAllNames(fieldProjections)
+                    .build());
+        }
         if (this.aggregation != null) {
             BanyandbMeasure.QueryRequest.GroupBy.Builder groupByBuilder = BanyandbMeasure.QueryRequest.GroupBy.newBuilder()
                     .setTagProjection(buildTagProjections(this.aggregation.groupByTagsProjection));
@@ -217,9 +220,4 @@ public class MeasureQuery extends AbstractQuery<BanyandbMeasure.QueryRequest> {
             private final BanyandbModel.AggregationFunction function;
         }
     }
-
-    static ImmutableSet<String> addIDProjection(Set<String> tagProjections) {
-        // make a defensive copy in case the original one is immutable
-        return ImmutableSet.<String>builder().addAll(tagProjections).add(Measure.ID).build();
-    }
 }
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java
index 0241926..e0c5ee4 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java
@@ -23,7 +23,6 @@ import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
 import org.apache.skywalking.banyandb.measure.v1.BanyandbMeasure;
 import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
 import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException;
-import org.apache.skywalking.banyandb.v1.client.metadata.Measure;
 import org.apache.skywalking.banyandb.v1.client.metadata.Serializable;
 
 import java.util.Deque;
@@ -52,10 +51,6 @@ public class MeasureWrite extends AbstractWrite<BanyandbMeasure.WriteRequest> {
         return (MeasureWrite) super.tag(tagName, tagValue);
     }
 
-    public MeasureWrite setID(String idValue) throws BanyanDBException {
-        return this.tag(Measure.ID, TagAndValue.idTagValue(idValue));
-    }
-
     /**
      * Build a write request
      *
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java
index c0a328c..455f385 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/PairQueryCondition.java
@@ -175,24 +175,6 @@ public abstract class PairQueryCondition<T> extends AbstractCriteria {
         }
     }
 
-    public static class IDQueryCondition extends PairQueryCondition<String> {
-        private IDQueryCondition(String tagName, BanyandbModel.Condition.BinaryOp op, String value) {
-            super(op, new TagAndValue.IDTagPair(tagName, value));
-        }
-
-        /**
-         * Build a query condition for {@link String} type
-         * and {@link BanyandbModel.Condition.BinaryOp#BINARY_OP_EQ} as the relation
-         *
-         * @param tagName name of the tag
-         * @param val     value of the tag
-         * @return a query that `String == value`
-         */
-        public static PairQueryCondition<String> eq(String tagName, String val) {
-            return new IDQueryCondition(tagName, BanyandbModel.Condition.BinaryOp.BINARY_OP_EQ, val);
-        }
-    }
-
     /**
      * StringArrayQueryCondition represents `tag(List of String) $op value` condition.
      */
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/RowEntity.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/RowEntity.java
index abbc6c6..9a0a975 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/RowEntity.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/RowEntity.java
@@ -18,27 +18,19 @@
 
 package org.apache.skywalking.banyandb.v1.client;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import com.google.protobuf.Timestamp;
 import lombok.Getter;
 import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
-import org.apache.skywalking.banyandb.stream.v1.BanyandbStream;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
- * RowEntity represents an entity of BanyanDB entity.
+ * RowEntity represents an entity of BanyanDB.
  */
 @Getter
 public class RowEntity {
-    /**
-     * identity of the entity.
-     * For a trace entity, it is the spanID of a Span or the segmentId of a segment in Skywalking,
-     * For a metrics data point, it extracted from the {@link org.apache.skywalking.banyandb.v1.client.metadata.Measure#ID} tag.
-     */
-    protected String id;
-
     /**
      * timestamp of the entity in the timeunit of milliseconds.
      */
@@ -51,12 +43,6 @@ public class RowEntity {
      */
     protected final Map<String, Object> tags;
 
-    public static RowEntity create(BanyandbStream.Element element) {
-        final RowEntity rowEntity = new RowEntity(element.getTimestamp(), element.getTagFamiliesList());
-        rowEntity.id = element.getElementId();
-        return rowEntity;
-    }
-
     protected RowEntity(Timestamp ts, List<BanyandbModel.TagFamily> tagFamilyList) {
         timestamp = ts.getSeconds() * 1000 + ts.getNanos() / 1_000_000;
         this.tags = new HashMap<>();
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamQueryResponse.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamQueryResponse.java
index baa06e5..c5a5546 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamQueryResponse.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamQueryResponse.java
@@ -29,12 +29,12 @@ import org.apache.skywalking.banyandb.stream.v1.BanyandbStream;
  */
 public class StreamQueryResponse {
     @Getter
-    private final List<RowEntity> elements;
+    private final List<Element> elements;
 
     StreamQueryResponse(BanyandbStream.QueryResponse response) {
         final List<BanyandbStream.Element> elementsList = response.getElementsList();
         elements = new ArrayList<>(elementsList.size());
-        elementsList.forEach(element -> elements.add(RowEntity.create(element)));
+        elementsList.forEach(element -> elements.add(Element.create(element)));
     }
 
     /**
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java
index e8d8872..32cd163 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/TagAndValue.java
@@ -104,26 +104,6 @@ public abstract class TagAndValue<T> extends Value<T> {
         return new StringTagPair(tagName, value);
     }
 
-    @EqualsAndHashCode(callSuper = true)
-    public static class IDTagPair extends TagAndValue<String> {
-        IDTagPair(final String tagName, final String value) {
-            super(tagName, value);
-        }
-
-        @Override
-        protected BanyandbModel.TagValue buildTypedTagValue() {
-            return BanyandbModel.TagValue.newBuilder()
-                    .setId(BanyandbModel.ID
-                            .newBuilder()
-                            .setValue(value).build())
-                    .build();
-        }
-    }
-
-    public static TagAndValue<String> newIDTag(final String tagName, final String value) {
-        return new IDTagPair(tagName, value);
-    }
-
     @EqualsAndHashCode(callSuper = true)
     public static class StringArrayTagPair extends TagAndValue<List<String>> {
         StringArrayTagPair(final String tagName, final List<String> value) {
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/Value.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/Value.java
index 15f5316..f799075 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/Value.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/Value.java
@@ -86,17 +86,6 @@ public abstract class Value<T> {
         }
     }
 
-    public static class IDTagValue extends Value<String> implements Serializable<BanyandbModel.TagValue> {
-        private IDTagValue(String value) {
-            super(value);
-        }
-
-        @Override
-        public BanyandbModel.TagValue serialize() {
-            return BanyandbModel.TagValue.newBuilder().setId(BanyandbModel.ID.newBuilder().setValue(value)).build();
-        }
-    }
-
     /**
      * The value of an int64(Long) type tag.
      */
@@ -152,13 +141,6 @@ public abstract class Value<T> {
         return new StringTagValue(val);
     }
 
-    static Serializable<BanyandbModel.TagValue> idTagValue(String val) {
-        if (Strings.isNullOrEmpty(val)) {
-            throw new NullPointerException();
-        }
-        return new IDTagValue(val);
-    }
-
     /**
      * Construct a numeric tag
      *
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
index bd13860..3f0aa50 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/Measure.java
@@ -32,7 +32,6 @@ import java.util.List;
 
 @AutoValue
 public abstract class Measure extends NamedSchema<BanyandbDatabase.Measure> {
-    public static final String ID = "id";
 
     /**
      * specs of tag families
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
index b05f995..89bae1e 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/metadata/TagFamilySpec.java
@@ -58,11 +58,6 @@ public abstract class TagFamilySpec implements Serializable<BanyandbDatabase.Tag
             return this;
         }
 
-        public final Builder addIDTagSpec() {
-            tagSpecsBuilder().add(TagSpec.newIDTag(Measure.ID));
-            return this;
-        }
-
         public final Builder addTagSpecs(Iterable<TagSpec> tagSpecs) {
             tagSpecsBuilder().addAll(tagSpecs);
             return this;
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureQueryTest.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureQueryTest.java
index 7b04c11..df13c15 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureQueryTest.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureQueryTest.java
@@ -66,7 +66,6 @@ public class BanyanDBClientMeasureQueryTest extends AbstractBanyanDBClientTest {
         Measure m = Measure.create("sw_metric", "service_cpm_minute", Duration.ofHours(1))
                 .setEntityRelativeTags("entity_id")
                 .addTagFamily(TagFamilySpec.create("default")
-                        .addIDTagSpec()
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("entity_id"))
                         .build())
                 .addField(Measure.FieldSpec.newIntField("total").compressWithZSTD().encodeWithGorilla().build())
@@ -84,7 +83,7 @@ public class BanyanDBClientMeasureQueryTest extends AbstractBanyanDBClientTest {
         Instant begin = end.minus(15, ChronoUnit.MINUTES);
         MeasureQuery query = new MeasureQuery("sw_metric", "service_cpm_minute",
                 new TimestampRange(begin.toEpochMilli(), end.toEpochMilli()),
-                ImmutableSet.of("id", "entity_id"),
+                ImmutableSet.of("entity_id"),
                 ImmutableSet.of("total"));
         query.maxBy("total", ImmutableSet.of("entity_id"));
         // search with conditions
@@ -113,7 +112,7 @@ public class BanyanDBClientMeasureQueryTest extends AbstractBanyanDBClientTest {
                 "  }\n" +
                 "}", request.getCriteria().toString().trim());
         // assert projections
-        assertCollectionEqual(Lists.newArrayList("default:id", "default:entity_id"),
+        assertCollectionEqual(Lists.newArrayList("default:entity_id"),
                 parseProjectionList(request.getTagProjection()));
         assertCollectionEqual(Lists.newArrayList("total"),
                 request.getFieldProjection().getNamesList());
@@ -121,7 +120,6 @@ public class BanyanDBClientMeasureQueryTest extends AbstractBanyanDBClientTest {
 
     @Test
     public void testQuery_responseConversion() {
-        final String elementId = "1231.dfd.123123ssf";
         final String entityIDValue = "entity_id_a";
         final Instant now = Instant.now();
         final BanyandbMeasure.QueryResponse responseObj = BanyandbMeasure.QueryResponse.newBuilder()
@@ -132,11 +130,6 @@ public class BanyanDBClientMeasureQueryTest extends AbstractBanyanDBClientTest {
                                 .build())
                         .addTagFamilies(BanyandbModel.TagFamily.newBuilder()
                                 .setName("default")
-                                .addTags(BanyandbModel.Tag.newBuilder()
-                                        .setKey("id")
-                                        .setValue(BanyandbModel.TagValue.newBuilder()
-                                                .setId(BanyandbModel.ID.newBuilder().setValue(elementId).build()).build())
-                                        .build())
                                 .addTags(BanyandbModel.Tag.newBuilder()
                                         .setKey("entity_id")
                                         .setValue(BanyandbModel.TagValue.newBuilder()
@@ -153,9 +146,7 @@ public class BanyanDBClientMeasureQueryTest extends AbstractBanyanDBClientTest {
         MeasureQueryResponse resp = new MeasureQueryResponse(responseObj);
         Assert.assertNotNull(resp);
         Assert.assertEquals(1, resp.getDataPoints().size());
-        Assert.assertEquals(2, resp.getDataPoints().get(0).getTags().size());
-        Assert.assertEquals(elementId,
-                resp.getDataPoints().get(0).getTagValue("id"));
+        Assert.assertEquals(1, resp.getDataPoints().get(0).getTags().size());
         Assert.assertEquals(entityIDValue, resp.getDataPoints().get(0).getTagValue("entity_id"));
         Assert.assertEquals(10L,
                 (Number) resp.getDataPoints().get(0).getFieldValue("total"));
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureWriteTest.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureWriteTest.java
index 15abd14..2f4fc88 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureWriteTest.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientMeasureWriteTest.java
@@ -54,7 +54,6 @@ public class BanyanDBClientMeasureWriteTest extends AbstractBanyanDBClientTest {
         Measure m = Measure.create("sw_metric", "service_cpm_minute", Duration.ofHours(1))
                 .setEntityRelativeTags("entity_id")
                 .addTagFamily(TagFamilySpec.create("default")
-                        .addIDTagSpec()
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("entity_id"))
                         .build())
                 .addField(Measure.FieldSpec.newIntField("total").compressWithZSTD().encodeWithGorilla().build())
@@ -110,8 +109,7 @@ public class BanyanDBClientMeasureWriteTest extends AbstractBanyanDBClientTest {
 
         Instant now = Instant.now();
         MeasureWrite measureWrite = new MeasureWrite("sw_metric", "service_cpm_minute", now.toEpochMilli());
-        measureWrite.tag("id", TagAndValue.idTagValue("1"))
-                .tag("entity_id", TagAndValue.stringTagValue("entity_1"))
+        measureWrite.tag("entity_id", TagAndValue.stringTagValue("entity_1"))
                 .field("total", TagAndValue.longFieldValue(100))
                 .field("value", TagAndValue.longFieldValue(1));
 
@@ -120,9 +118,8 @@ public class BanyanDBClientMeasureWriteTest extends AbstractBanyanDBClientTest {
         if (allRequestsDelivered.await(5, TimeUnit.SECONDS)) {
             Assert.assertEquals(1, writeRequestDelivered.size());
             final BanyandbMeasure.WriteRequest request = writeRequestDelivered.get(0);
-            Assert.assertEquals(2, request.getDataPoint().getTagFamilies(0).getTagsCount());
-            Assert.assertEquals("1", request.getDataPoint().getTagFamilies(0).getTags(0).getId().getValue());
-            Assert.assertEquals("entity_1", request.getDataPoint().getTagFamilies(0).getTags(1).getStr().getValue());
+            Assert.assertEquals(1, request.getDataPoint().getTagFamilies(0).getTagsCount());
+            Assert.assertEquals("entity_1", request.getDataPoint().getTagFamilies(0).getTags(0).getStr().getValue());
             Assert.assertEquals(100, request.getDataPoint().getFields(0).getInt().getValue());
             Assert.assertEquals(1, request.getDataPoint().getFields(1).getInt().getValue());
         } else {
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
index ea7004a..0bcaa5b 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
@@ -30,27 +30,26 @@ import java.io.IOException;
 public class BanyanDBClientTestCI {
     private static final String REGISTRY = "ghcr.io";
     private static final String IMAGE_NAME = "apache/skywalking-banyandb";
-    private static final String TAG = "a558725fb909e136694aeb2d879dd6a3ae13b6fc";
+    private static final String TAG = "1c19243df23f8350ea5c1542fd914c49e8698960";
 
     private static final String IMAGE = REGISTRY + "/" + IMAGE_NAME + ":" + TAG;
 
-    protected static final int BANYANDB_PORT = 17912;
+    protected static final int GRPC_PORT = 17912;
+    protected static final int HTTP_PORT = 17913;
 
     @Rule
     public GenericContainer<?> banyanDB = new GenericContainer<>(
             DockerImageName.parse(IMAGE))
             .withCommand("standalone", "--stream-root-path", "/tmp/banyandb-stream-data",
                     "--measure-root-path", "/tmp/banyand-measure-data")
-            .withExposedPorts(BANYANDB_PORT)
-            .waitingFor(
-                    Wait.forLogMessage(".*Listening to\\*\\*\\*\\* addr::17912 module:LIAISON-GRPC\\n", 1)
-            );
+            .withExposedPorts(GRPC_PORT, HTTP_PORT)
+            .waitingFor(Wait.forHttp("/api/healthz").forPort(HTTP_PORT));
 
     protected BanyanDBClient client;
 
     protected void setUpConnection() throws IOException {
         log.info("create BanyanDB client and try to connect");
-        client = new BanyanDBClient(banyanDB.getHost(), banyanDB.getMappedPort(BANYANDB_PORT));
+        client = new BanyanDBClient(banyanDB.getHost(), banyanDB.getMappedPort(GRPC_PORT));
         client.connect();
     }
 
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBMeasureQueryTests.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBMeasureQueryTests.java
index bb272ba..1f310f6 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBMeasureQueryTests.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBMeasureQueryTests.java
@@ -50,7 +50,7 @@ public class ITBanyanDBMeasureQueryTests extends BanyanDBClientTestCI {
         this.setUpConnection();
         Group expectedGroup = this.client.define(Group.create("sw_metric", Catalog.MEASURE, 2, IntervalRule.create(IntervalRule.Unit.HOUR, 4), IntervalRule.create(IntervalRule.Unit.DAY, 1), IntervalRule.create(IntervalRule.Unit.DAY, 7)));
         Assert.assertNotNull(expectedGroup);
-        Measure expectedMeasure = Measure.create("sw_metric", "service_cpm_minute", Duration.ofMinutes(1)).setEntityRelativeTags("entity_id").addTagFamily(TagFamilySpec.create("default").addIDTagSpec().addTagSpec(TagFamilySpec.TagSpec.newStringTag("entity_id")).build()).addField(Measure.FieldSpec.newIntField("total").compressWithZSTD().encodeWithGorilla().build()).addField(Measure.FieldSpec.newIntField("value").compressWithZSTD().encodeWithGorilla().build()).addIndex(IndexRule.create("sc [...]
+        Measure expectedMeasure = Measure.create("sw_metric", "service_cpm_minute", Duration.ofMinutes(1)).setEntityRelativeTags("entity_id").addTagFamily(TagFamilySpec.create("default").addTagSpec(TagFamilySpec.TagSpec.newStringTag("entity_id")).build()).addField(Measure.FieldSpec.newIntField("total").compressWithZSTD().encodeWithGorilla().build()).addField(Measure.FieldSpec.newIntField("value").compressWithZSTD().encodeWithGorilla().build()).addIndex(IndexRule.create("scope", IndexRule [...]
         client.define(expectedMeasure);
         Assert.assertNotNull(expectedMeasure);
         processor = client.buildMeasureWriteProcessor(1000, 1, 1);
@@ -71,7 +71,7 @@ public class ITBanyanDBMeasureQueryTests extends BanyanDBClientTestCI {
         Instant begin = now.minus(15, ChronoUnit.MINUTES);
 
         MeasureWrite measureWrite = new MeasureWrite("sw_metric", "service_cpm_minute", now.toEpochMilli());
-        measureWrite.tag("id", TagAndValue.idTagValue("1")).tag("entity_id", TagAndValue.stringTagValue("entity_1")).field("total", TagAndValue.longFieldValue(100)).field("value", TagAndValue.longFieldValue(1));
+        measureWrite.tag("entity_id", TagAndValue.stringTagValue("entity_1")).field("total", TagAndValue.longFieldValue(100)).field("value", TagAndValue.longFieldValue(1));
 
         CompletableFuture<Void> f = processor.add(measureWrite);
         f.exceptionally(exp -> {
@@ -80,7 +80,7 @@ public class ITBanyanDBMeasureQueryTests extends BanyanDBClientTestCI {
         });
         f.get(10, TimeUnit.SECONDS);
 
-        MeasureQuery query = new MeasureQuery("sw_metric", "service_cpm_minute", new TimestampRange(begin.toEpochMilli(), now.plus(1, ChronoUnit.MINUTES).toEpochMilli()), ImmutableSet.of("id", "entity_id"), // tags
+        MeasureQuery query = new MeasureQuery("sw_metric", "service_cpm_minute", new TimestampRange(begin.toEpochMilli(), now.plus(1, ChronoUnit.MINUTES).toEpochMilli()), ImmutableSet.of("entity_id"), // tags
                 ImmutableSet.of("total")); // fields
 
         await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/metadata/MeasureMetadataRegistryTest.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/metadata/MeasureMetadataRegistryTest.java
index 6189653..f02af33 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/metadata/MeasureMetadataRegistryTest.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/metadata/MeasureMetadataRegistryTest.java
@@ -38,7 +38,6 @@ public class MeasureMetadataRegistryTest extends AbstractBanyanDBClientTest {
         Measure expectedMeasure = Measure.create("sw_metric", "service_cpm_minute", Duration.ofHours(1))
                 .setEntityRelativeTags("entity_id")
                 .addTagFamily(TagFamilySpec.create("default")
-                        .addIDTagSpec()
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("entity_id"))
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("scope"))
                         .build())
@@ -59,7 +58,6 @@ public class MeasureMetadataRegistryTest extends AbstractBanyanDBClientTest {
         Measure expectedMeasure = Measure.create("sw_metric", "service_cpm_minute", Duration.ofHours(1))
                 .setEntityRelativeTags("entity_id")
                 .addTagFamily(TagFamilySpec.create("default")
-                        .addIDTagSpec()
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("entity_id"))
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("scope"))
                         .build())
@@ -78,7 +76,6 @@ public class MeasureMetadataRegistryTest extends AbstractBanyanDBClientTest {
         Measure expectedMeasure = Measure.create("sw_metric", "service_cpm_minute", Duration.ofHours(1))
                 .setEntityRelativeTags("entity_id")
                 .addTagFamily(TagFamilySpec.create("default")
-                        .addIDTagSpec()
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("entity_id"))
                         .addTagSpec(TagFamilySpec.TagSpec.newStringTag("scope"))
                         .build())