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

hanahmily pushed a commit to branch demo
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git

commit ab6f69f0566fbba54c03a5d8591074a05ba9e740
Author: Gao Hongtao <[email protected]>
AuthorDate: Wed Nov 16 13:35:09 2022 +0000

    Tweak log default settings
    
    Add default value to absent field
    
    Signed-off-by: Gao Hongtao <[email protected]>
---
 banyand/internal/cmd/standalone.go                 |  2 +-
 banyand/kv/kv.go                                   |  2 -
 banyand/liaison/grpc/discovery.go                  |  4 +-
 banyand/liaison/grpc/measure.go                    |  8 +-
 banyand/liaison/grpc/stream.go                     |  8 +-
 banyand/measure/measure_query.go                   |  7 +-
 banyand/query/processor.go                         |  2 +-
 banyand/query/processor_topn.go                    |  7 +-
 banyand/stream/stream_query.go                     |  2 +-
 go.mod                                             |  4 +-
 go.sum                                             | 21 ++---
 pkg/encoding/int.go                                | 13 +--
 pkg/encoding/int_test.go                           | 99 ++++++++++++++++++++--
 pkg/encoding/plain.go                              |  2 +-
 pkg/grpchelper/client.go                           |  8 +-
 pkg/logger/setting.go                              |  4 +-
 pkg/pb/v1/write.go                                 | 25 ++++--
 pkg/query/logical/common.go                        |  2 +-
 .../measure/measure_plan_indexscan_local.go        |  6 +-
 pkg/schema/metadata.go                             |  2 +-
 pkg/test/helpers/grpc_health.go                    |  8 +-
 pkg/test/helpers/http_health.go                    |  5 +-
 test/cases/measure/data/input/linked_or.yaml       | 56 ++++++++++++
 test/cases/measure/data/want/linked_or.yaml        | 60 +++++++++++++
 test/cases/measure/measure.go                      |  1 +
 test/stress/env                                    | 14 +--
 test/stress/env.dev                                | 13 ++-
 27 files changed, 298 insertions(+), 87 deletions(-)

diff --git a/banyand/internal/cmd/standalone.go 
b/banyand/internal/cmd/standalone.go
index 02f625c..440c8c9 100644
--- a/banyand/internal/cmd/standalone.go
+++ b/banyand/internal/cmd/standalone.go
@@ -114,7 +114,7 @@ func newStandaloneCmd() *cobra.Command {
                },
        }
 
-       standaloneCmd.Flags().StringVarP(&logging.Env, "logging.env", "", 
"dev", "the logging")
+       standaloneCmd.Flags().StringVarP(&logging.Env, "logging.env", "", 
"prod", "the logging")
        standaloneCmd.Flags().StringVarP(&logging.Level, "logging.level", "", 
"info", "the level of logging")
        standaloneCmd.Flags().AddFlagSet(g.RegisterFlags().FlagSet)
        return standaloneCmd
diff --git a/banyand/kv/kv.go b/banyand/kv/kv.go
index 1f3cbef..90944a2 100644
--- a/banyand/kv/kv.go
+++ b/banyand/kv/kv.go
@@ -80,8 +80,6 @@ type TimeSeriesWriter interface {
 type TimeSeriesReader interface {
        // Get a value by its key and timestamp/version
        Get(key []byte, ts uint64) ([]byte, error)
-       // GetAll values with an identical key
-       GetAll(key []byte) ([][]byte, error)
 }
 
 // TimeSeriesStore is time series storage
diff --git a/banyand/liaison/grpc/discovery.go 
b/banyand/liaison/grpc/discovery.go
index b78cdd5..98cba84 100644
--- a/banyand/liaison/grpc/discovery.go
+++ b/banyand/liaison/grpc/discovery.go
@@ -88,7 +88,7 @@ func (s *shardRepo) Rev(message bus.Message) (resp 
bus.Message) {
                return
        }
        s.setShardNum(e)
-       s.log.Info().
+       s.log.Debug().
                Str("action", databasev1.Action_name[int32(e.Action)]).
                Uint64("shardID", e.Shard.Id).
                Msg("received a shard e")
@@ -136,7 +136,7 @@ func (s *entityRepo) Rev(message bus.Message) (resp 
bus.Message) {
                return
        }
        id := getID(e.GetSubject())
-       s.log.Info().
+       s.log.Debug().
                Str("action", databasev1.Action_name[int32(e.Action)]).
                Interface("subject", id).
                Msg("received an entity event")
diff --git a/banyand/liaison/grpc/measure.go b/banyand/liaison/grpc/measure.go
index ac6a476..7d82cfe 100644
--- a/banyand/liaison/grpc/measure.go
+++ b/banyand/liaison/grpc/measure.go
@@ -23,6 +23,7 @@ import (
        "time"
 
        "github.com/pkg/errors"
+       "github.com/rs/zerolog"
        "google.golang.org/grpc/codes"
        "google.golang.org/grpc/status"
 
@@ -46,6 +47,7 @@ func (ms *measureService) Write(measure 
measurev1.MeasureService_WriteServer) er
                }
                return nil
        }
+       sampled := ms.log.Sample(&zerolog.BasicSampler{N: 10})
        for {
                writeRequest, err := measure.Recv()
                if err == io.EOF {
@@ -55,7 +57,7 @@ func (ms *measureService) Write(measure 
measurev1.MeasureService_WriteServer) er
                        return err
                }
                if errTime := 
timestamp.CheckPb(writeRequest.DataPoint.Timestamp); errTime != nil {
-                       ms.log.Error().Err(errTime).Msg("the data point time is 
invalid")
+                       sampled.Error().Err(errTime).Stringer("written", 
writeRequest).Msg("the data point time is invalid")
                        if errResp := reply(); errResp != nil {
                                return errResp
                        }
@@ -63,7 +65,7 @@ func (ms *measureService) Write(measure 
measurev1.MeasureService_WriteServer) er
                }
                entity, shardID, err := ms.navigate(writeRequest.GetMetadata(), 
writeRequest.GetDataPoint().GetTagFamilies())
                if err != nil {
-                       ms.log.Error().Err(err).Msg("failed to navigate to the 
write target")
+                       sampled.Error().Err(err).Msg("failed to navigate to the 
write target")
                        if errResp := reply(); errResp != nil {
                                return errResp
                        }
@@ -76,7 +78,7 @@ func (ms *measureService) Write(measure 
measurev1.MeasureService_WriteServer) er
                })
                _, errWritePub := ms.pipeline.Publish(data.TopicMeasureWrite, 
message)
                if errWritePub != nil {
-                       ms.log.Error().Err(errWritePub).Msg("failed to send a 
message")
+                       sampled.Error().Err(errWritePub).Msg("failed to send a 
message")
                        if errResp := reply(); errResp != nil {
                                return errResp
                        }
diff --git a/banyand/liaison/grpc/stream.go b/banyand/liaison/grpc/stream.go
index 8cf6e1b..5a3ab2d 100644
--- a/banyand/liaison/grpc/stream.go
+++ b/banyand/liaison/grpc/stream.go
@@ -23,6 +23,7 @@ import (
        "time"
 
        "github.com/pkg/errors"
+       "github.com/rs/zerolog"
        "google.golang.org/grpc/codes"
        "google.golang.org/grpc/status"
 
@@ -46,6 +47,7 @@ func (s *streamService) Write(stream 
streamv1.StreamService_WriteServer) error {
                }
                return nil
        }
+       sampled := s.log.Sample(&zerolog.BasicSampler{N: 10})
        for {
                writeEntity, err := stream.Recv()
                if err == io.EOF {
@@ -55,7 +57,7 @@ func (s *streamService) Write(stream 
streamv1.StreamService_WriteServer) error {
                        return err
                }
                if errTime := 
timestamp.CheckPb(writeEntity.GetElement().Timestamp); errTime != nil {
-                       s.log.Error().Err(errTime).Msg("the element time is 
invalid")
+                       sampled.Error().Stringer("written", 
writeEntity).Err(errTime).Msg("the element time is invalid")
                        if errResp := reply(); errResp != nil {
                                return errResp
                        }
@@ -63,7 +65,7 @@ func (s *streamService) Write(stream 
streamv1.StreamService_WriteServer) error {
                }
                entity, shardID, err := s.navigate(writeEntity.GetMetadata(), 
writeEntity.GetElement().GetTagFamilies())
                if err != nil {
-                       s.log.Error().Err(err).Msg("failed to navigate to the 
write target")
+                       sampled.Error().Err(err).Msg("failed to navigate to the 
write target")
                        if errResp := reply(); errResp != nil {
                                return errResp
                        }
@@ -76,7 +78,7 @@ func (s *streamService) Write(stream 
streamv1.StreamService_WriteServer) error {
                })
                _, errWritePub := s.pipeline.Publish(data.TopicStreamWrite, 
message)
                if errWritePub != nil {
-                       s.log.Error().Err(errWritePub).Msg("failed to send a 
message")
+                       sampled.Error().Err(errWritePub).Msg("failed to send a 
message")
                        if errResp := reply(); errResp != nil {
                                return errResp
                        }
diff --git a/banyand/measure/measure_query.go b/banyand/measure/measure_query.go
index ceefa42..89f1b13 100644
--- a/banyand/measure/measure_query.go
+++ b/banyand/measure/measure_query.go
@@ -116,7 +116,7 @@ func (s *measure) Shard(id common.ShardID) (tsdb.Shard, 
error) {
 func (s *measure) ParseTagFamily(family string, item tsdb.Item) 
(*modelv1.TagFamily, error) {
        familyRawBytes, err := item.Family(familyIdentity(family, pbv1.TagFlag))
        if err != nil {
-               return nil, err
+               return nil, errors.Wrapf(err, "measure %s.%s parse family %s", 
s.name, s.group, family)
        }
        tagFamily := &modelv1.TagFamilyForWrite{}
        err = proto.Unmarshal(familyRawBytes, tagFamily)
@@ -159,7 +159,10 @@ func (s *measure) ParseField(name string, item tsdb.Item) 
(*measurev1.DataPoint_
        if err != nil {
                return nil, err
        }
-       fieldValue := pbv1.DecodeFieldValue(bytes, fieldSpec)
+       fieldValue, err := pbv1.DecodeFieldValue(bytes, fieldSpec)
+       if err != nil {
+               return nil, err
+       }
        return &measurev1.DataPoint_Field{
                Name:  name,
                Value: fieldValue,
diff --git a/banyand/query/processor.go b/banyand/query/processor.go
index cf9ac2e..5c92949 100644
--- a/banyand/query/processor.go
+++ b/banyand/query/processor.go
@@ -160,7 +160,7 @@ func (p *measureQueryProcessor) Rev(message bus.Message) 
(resp bus.Message) {
        }
        defer func() {
                if err = mIterator.Close(); err != nil {
-                       p.queryService.log.Error().Err(err).Msg("fail to close 
the query plan")
+                       p.queryService.log.Error().Err(err).Stringer("req", 
queryCriteria).Msg("fail to close the query plan")
                }
        }()
        result := make([]*measurev1.DataPoint, 0)
diff --git a/banyand/query/processor_topn.go b/banyand/query/processor_topn.go
index 021c7eb..805937e 100644
--- a/banyand/query/processor_topn.go
+++ b/banyand/query/processor_topn.go
@@ -57,7 +57,7 @@ func (t *topNQueryProcessor) Rev(message bus.Message) (resp 
bus.Message) {
                t.log.Warn().Msg("invalid requested sort direction")
                return
        }
-       t.log.Info().Msg("received a topN query event")
+       t.log.Debug().Msg("received a topN query event")
        topNMetadata := request.GetMetadata()
        topNSchema, err := 
t.metaService.TopNAggregationRegistry().GetTopNAggregation(context.TODO(), 
topNMetadata)
        if err != nil {
@@ -182,7 +182,10 @@ func parseTopNFamily(item tsdb.Item, interval 
time.Duration) (*streaming.Tuple2,
        if err != nil {
                return nil, err
        }
-       fieldValue := pbv1.DecodeFieldValue(fieldBytes, 
measure.TopNValueFieldSpec)
+       fieldValue, err := pbv1.DecodeFieldValue(fieldBytes, 
measure.TopNValueFieldSpec)
+       if err != nil {
+               return nil, err
+       }
        return &streaming.Tuple2{
                // GroupValues
                V1: tagFamily.GetTags()[1].GetStr().GetValue(),
diff --git a/banyand/stream/stream_query.go b/banyand/stream/stream_query.go
index 0463c2f..218fc6c 100644
--- a/banyand/stream/stream_query.go
+++ b/banyand/stream/stream_query.go
@@ -88,7 +88,7 @@ func (s *stream) Shard(id common.ShardID) (tsdb.Shard, error) 
{
 func (s *stream) ParseTagFamily(family string, item tsdb.Item) 
(*modelv1.TagFamily, error) {
        familyRawBytes, err := item.Family(tsdb.Hash([]byte(family)))
        if err != nil {
-               return nil, errors.Wrapf(err, "parse family %s", family)
+               return nil, errors.Wrapf(err, "stream %s.%s parse family %s", 
s.name, s.group, family)
        }
        tagFamily := &modelv1.TagFamilyForWrite{}
        err = proto.Unmarshal(familyRawBytes, tagFamily)
diff --git a/go.mod b/go.mod
index f86f035..a690871 100644
--- a/go.mod
+++ b/go.mod
@@ -54,7 +54,6 @@ require (
        github.com/blevesearch/vellum v1.0.7 // indirect
        github.com/blugelabs/bluge_segment_api v0.2.0 // indirect
        github.com/blugelabs/ice v1.0.0 // indirect
-       github.com/blugelabs/ice/v2 v2.0.1 // indirect
        github.com/caio/go-tdigest v3.1.0+incompatible // indirect
        github.com/cespare/xxhash/v2 v2.1.2 // indirect
        github.com/coreos/go-semver v0.3.0 // indirect
@@ -132,5 +131,8 @@ require (
 
 replace (
        github.com/benbjohnson/clock v1.3.0 => github.com/SkyAPM/clock 
v1.3.1-0.20220809233656-dc7607c94a97
+       github.com/blugelabs/bluge => github.com/zinclabs/bluge v1.1.5
+       github.com/blugelabs/bluge_segment_api => 
github.com/zinclabs/bluge_segment_api v1.0.0
+       github.com/blugelabs/ice => github.com/zinclabs/ice v1.1.3
        github.com/dgraph-io/badger/v3 v3.2011.1 => github.com/SkyAPM/badger/v3 
v3.0.0-20220817114744-b3711444d876
 )
diff --git a/go.sum b/go.sum
index 459669d..41f517d 100644
--- a/go.sum
+++ b/go.sum
@@ -44,9 +44,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod 
h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/OneOfOne/xxhash v1.2.2 
h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
 github.com/OneOfOne/xxhash v1.2.2/go.mod 
h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/RoaringBitmap/gocroaring v0.4.0/go.mod 
h1:NieMwz7ZqwU2DD73/vvYwv7r4eWBKuPVSXZIpsaMwCI=
-github.com/RoaringBitmap/real-roaring-datasets 
v0.0.0-20190726190000-eb7c87156f76/go.mod 
h1:oM0MHmQ3nDsq609SS36p+oYbRi16+oVvU2Bw4Ipv0SE=
-github.com/RoaringBitmap/roaring v0.9.1/go.mod 
h1:h1B7iIUOmnAeb5ytYMvnHJwxMc6LUrwBnzXWRuqTQUc=
 github.com/RoaringBitmap/roaring v0.9.4 
h1:ckvZSX5gwCRaJYBNe7syNawCU5oruY9gQmjXlp4riwo=
 github.com/RoaringBitmap/roaring v0.9.4/go.mod 
h1:icnadbWcNyfEHlYdr+tDlOTih1Bf/h+rzPpv4sbomAA=
 github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 
h1:zH//2cmDpBla7rL9NzWr+vZ2UskMrvdnUvslz3KYTN0=
@@ -77,7 +74,6 @@ github.com/bits-and-blooms/bitset v1.2.0/go.mod 
h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edY
 github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod 
h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
 github.com/blevesearch/go-porterstemmer v1.0.3 
h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo=
 github.com/blevesearch/go-porterstemmer v1.0.3/go.mod 
h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M=
-github.com/blevesearch/mmap-go v1.0.2/go.mod 
h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA=
 github.com/blevesearch/mmap-go v1.0.3/go.mod 
h1:pYvKl/grLQrBxuaRYgoTssa4rVujYYeenDp++2E+yvs=
 github.com/blevesearch/mmap-go v1.0.4 
h1:OVhDhT5B/M1HNPpYPBKIEJaD0F3Si+CrEKULGCDPWmc=
 github.com/blevesearch/mmap-go v1.0.4/go.mod 
h1:EWmEAOmdAS9z/pi/+Toxu99DnsbhG1TIxUoRmJw/pSs=
@@ -85,17 +81,8 @@ github.com/blevesearch/segment v0.9.0 
h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt
 github.com/blevesearch/segment v0.9.0/go.mod 
h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ=
 github.com/blevesearch/snowballstem v0.9.0 
h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s=
 github.com/blevesearch/snowballstem v0.9.0/go.mod 
h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs=
-github.com/blevesearch/vellum v1.0.5/go.mod 
h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
 github.com/blevesearch/vellum v1.0.7 
h1:+vn8rfyCRHxKVRgDLeR0FAXej2+6mEb5Q15aQE/XESQ=
 github.com/blevesearch/vellum v1.0.7/go.mod 
h1:doBZpmRhwTsASB4QdUZANlJvqVAUdUyX0ZK7QJCTeBE=
-github.com/blugelabs/bluge v0.2.2 
h1:gat8CqE6P6tOgeX30XGLOVNTC26cpM2RWVcreXWtYcM=
-github.com/blugelabs/bluge v0.2.2/go.mod 
h1:am1LU9jS8dZgWkRzkGLQN3757EgMs3upWrU2fdN9foE=
-github.com/blugelabs/bluge_segment_api v0.2.0 
h1:cCX1Y2y8v0LZ7+EEJ6gH7dW6TtVTW4RhG0vp3R+N2Lo=
-github.com/blugelabs/bluge_segment_api v0.2.0/go.mod 
h1:95XA+ZXfRj/IXADm7gZ+iTcWOJPg5jQTY1EReIzl3LA=
-github.com/blugelabs/ice v1.0.0 h1:um7wf9e6jbkTVCrOyQq3tKK43fBMOvLUYxbj3Qtc4eo=
-github.com/blugelabs/ice v1.0.0/go.mod 
h1:gNfFPk5zM+yxJROhthxhVQYjpBO9amuxWXJQ2Lo+IbQ=
-github.com/blugelabs/ice/v2 v2.0.1 
h1:mzHbntLjk2v7eDRgoXCgzOsPKN1Tenu9Svo6l9cTLS4=
-github.com/blugelabs/ice/v2 v2.0.1/go.mod 
h1:QxAWSPNwZwsIqS25c3lbIPFQrVvT1sphf5x5DfMLH5M=
 github.com/caio/go-tdigest v3.1.0+incompatible 
h1:uoVMJ3Q5lXmVLCCqaMGHLBWnbGoN6Lpu7OAUPR60cds=
 github.com/caio/go-tdigest v3.1.0+incompatible/go.mod 
h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -232,7 +219,6 @@ github.com/golang/protobuf v1.5.0/go.mod 
h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS
 github.com/golang/protobuf v1.5.1/go.mod 
h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
 github.com/golang/protobuf v1.5.2 
h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
 github.com/golang/protobuf v1.5.2/go.mod 
h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/snappy v0.0.1/go.mod 
h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
 github.com/golang/snappy v0.0.3/go.mod 
h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
@@ -510,6 +496,12 @@ github.com/yuin/goldmark v1.3.5/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
 github.com/yuin/goldmark v1.4.0/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/zenizh/go-capturer v0.0.0-20211219060012-52ea6c8fed04 
h1:qXafrlZL1WsJW5OokjraLLRURHiw0OzKHD/RNdspp4w=
 github.com/zenizh/go-capturer v0.0.0-20211219060012-52ea6c8fed04/go.mod 
h1:FiwNQxz6hGoNFBC4nIx+CxZhI3nne5RmIOlT/MXcSD4=
+github.com/zinclabs/bluge v1.1.5 
h1:QJhkweeBVRaaEPdaRptkYOJDLCeyo+JBgc2hNyFehAM=
+github.com/zinclabs/bluge v1.1.5/go.mod 
h1:IG9JlDUzUGRIxylWmLyF7e1QwMdRWu9FkNSivJ4VB+E=
+github.com/zinclabs/bluge_segment_api v1.0.0 
h1:GJvPxdzR7KjwdxmcKleQLvtIYi/J7Q7ehRlZqgGayzg=
+github.com/zinclabs/bluge_segment_api v1.0.0/go.mod 
h1:mYfPVUdXLZ4iXsicXMER+RcI/avwphjMOi8nhN9HDLA=
+github.com/zinclabs/ice v1.1.3 h1:LNfncdxQw2ix6P1T2ISmhO+6BFRa27qyTTfK0PitF2c=
+github.com/zinclabs/ice v1.1.3/go.mod 
h1:wTwGEe30mQnSLaR1ezxu4E80GcwO6EyOww67KpJtIiw=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=
 go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
@@ -702,7 +694,6 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod 
h1:STP8DvDyc/dI5b8T5h
 golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181221143128-b4a75ba826a6/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
diff --git a/pkg/encoding/int.go b/pkg/encoding/int.go
index df6ce8e..c9e1991 100644
--- a/pkg/encoding/int.go
+++ b/pkg/encoding/int.go
@@ -74,10 +74,10 @@ func (b *intEncoderPoolDelegator) Put(encoder 
SeriesEncoder) {
 }
 
 type intDecoderPoolDelegator struct {
-       name string
        pool *sync.Pool
-       size int
        fn   ParseInterval
+       name string
+       size int
 }
 
 func NewIntDecoderPool(name string, size int, fn ParseInterval) 
SeriesDecoderPool {
@@ -216,7 +216,7 @@ func (i intDecoder) Get(ts uint64) ([]byte, error) {
                        return iter.Val(), nil
                }
        }
-       return nil, nil
+       return zeroBytes, nil
 }
 
 func (i intDecoder) Iterator() SeriesIterator {
@@ -231,8 +231,9 @@ func (i intDecoder) Iterator() SeriesIterator {
 }
 
 var (
-       _    SeriesIterator = (*intIterator)(nil)
-       zero                = convert.BytesToUint64(convert.Int64ToBytes(0))
+       _         SeriesIterator = (*intIterator)(nil)
+       zeroBytes                = convert.Int64ToBytes(0)
+       Zero                     = convert.BytesToUint64(zeroBytes)
 )
 
 type intIterator struct {
@@ -265,7 +266,7 @@ func (i *intIterator) Next() bool {
                        i.currVal = i.values.Value()
                }
        } else {
-               i.currVal = zero
+               i.currVal = Zero
        }
        i.currTime = i.startTime + uint64(i.interval*i.index)
        i.index++
diff --git a/pkg/encoding/int_test.go b/pkg/encoding/int_test.go
index e5ffd4e..657bbe5 100644
--- a/pkg/encoding/int_test.go
+++ b/pkg/encoding/int_test.go
@@ -86,8 +86,8 @@ func TestNewIntEncoderAndDecoder(t *testing.T) {
                assert.Equal(t, key, k)
                return 1 * time.Minute
        }
-       encoderPool := NewIntEncoderPool("minute", 3, fn)
-       decoderPool := NewIntDecoderPool("minute", 3, fn)
+       encoderPool := NewIntEncoderPool("minute", 4, fn)
+       decoderPool := NewIntDecoderPool("minute", 4, fn)
 
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {
@@ -106,17 +106,102 @@ func TestNewIntEncoderAndDecoder(t *testing.T) {
                        at.NoError(decoder.Decode(key, bb))
                        at.True(decoder.IsFull())
                        iter := decoder.Iterator()
-                       i := 0
-                       for ; iter.Next(); i++ {
+                       for i, t := range tt.want.ts {
+                               at.True(iter.Next())
                                at.NoError(iter.Error())
                                at.Equal(tt.want.ts[i], iter.Time())
                                at.Equal(tt.want.data[i], 
convert.BytesToInt64(iter.Val()))
-                               v, err := decoder.Get(tt.want.ts[i])
+                               v, err := decoder.Get(t)
                                at.NoError(err)
                                at.Equal(tt.want.data[i], 
convert.BytesToInt64(v))
                        }
-                       if i == 0 {
-                               at.Fail("empty data")
+               })
+       }
+}
+
+func TestNewIntDecoderGet(t *testing.T) {
+       type tsData struct {
+               ts   []uint64
+               data []int64
+       }
+       tests := []struct {
+               name string
+               args tsData
+               want tsData
+       }{
+               {
+                       name: "golden path",
+                       args: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(2 * 
time.Minute), uint64(3 * time.Minute), uint64(4 * time.Minute)},
+                               data: []int64{7, 8, 7, 9},
+                       },
+                       want: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(2 * 
time.Minute), uint64(3 * time.Minute), uint64(4 * time.Minute)},
+                               data: []int64{7, 8, 7, 9},
+                       },
+               },
+               {
+                       name: "more than the size",
+                       args: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(2 * 
time.Minute), uint64(3 * time.Minute), uint64(4 * time.Minute), uint64(4 * 
time.Minute)},
+                               data: []int64{7, 8, 7, 9, 6},
+                       },
+                       want: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(2 * 
time.Minute), uint64(3 * time.Minute), uint64(4 * time.Minute), uint64(5 * 
time.Minute)},
+                               data: []int64{7, 8, 7, 9, 0},
+                       },
+               },
+               {
+                       name: "less than the size",
+                       args: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(2 * 
time.Minute), uint64(3 * time.Minute)},
+                               data: []int64{7, 8, 7},
+                       },
+                       want: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(2 * 
time.Minute), uint64(3 * time.Minute)},
+                               data: []int64{7, 8, 7},
+                       },
+               },
+               {
+                       name: "empty slot in the middle",
+                       args: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(4 * 
time.Minute)},
+                               data: []int64{7, 9},
+                       },
+                       want: tsData{
+                               ts:   []uint64{uint64(time.Minute), uint64(2 * 
time.Minute), uint64(3 * time.Minute), uint64(4 * time.Minute)},
+                               data: []int64{7, 0, 0, 9},
+                       },
+               },
+       }
+       key := []byte("foo")
+       fn := func(k []byte) time.Duration {
+               assert.Equal(t, key, k)
+               return 1 * time.Minute
+       }
+       encoderPool := NewIntEncoderPool("minute", 4, fn)
+       decoderPool := NewIntDecoderPool("minute", 4, fn)
+
+       for _, tt := range tests {
+               t.Run(tt.name, func(t *testing.T) {
+                       at := assert.New(t)
+                       encoder := encoderPool.Get(key)
+                       decoder := decoderPool.Get(key)
+                       encoder.Reset(key)
+                       for i, v := range tt.args.ts {
+                               encoder.Append(v, 
convert.Int64ToBytes(tt.args.data[i]))
+                               if encoder.IsFull() {
+                                       break
+                               }
+                       }
+                       bb, err := encoder.Encode()
+                       at.NoError(err)
+                       at.NoError(decoder.Decode(key, bb))
+                       at.True(decoder.IsFull())
+                       for i, t := range tt.want.ts {
+                               v, err := decoder.Get(t)
+                               at.NoError(err)
+                               at.Equal(tt.want.data[i], 
convert.BytesToInt64(v))
                        }
                })
        }
diff --git a/pkg/encoding/plain.go b/pkg/encoding/plain.go
index 5c0d6f5..2284273 100644
--- a/pkg/encoding/plain.go
+++ b/pkg/encoding/plain.go
@@ -237,7 +237,7 @@ func (t *plainDecoder) Get(ts uint64) ([]byte, error) {
        }
        slot := getTSSlot(t.ts, i)
        if parseTS(slot) != ts {
-               return nil, fmt.Errorf("%d doesn't exist", ts)
+               return nil, fmt.Errorf("%d is wrong", ts)
        }
        return getVal(t.val, parseOffset(slot))
 }
diff --git a/pkg/grpchelper/client.go b/pkg/grpchelper/client.go
index 3a9181e..e73e356 100644
--- a/pkg/grpchelper/client.go
+++ b/pkg/grpchelper/client.go
@@ -28,13 +28,12 @@ import (
        "github.com/apache/skywalking-banyandb/pkg/logger"
 )
 
-var l = logger.GetLogger()
-
 func Conn(addr string, connTimeout time.Duration, opts ...grpc.DialOption) 
(*grpc.ClientConn, error) {
        defaultOpts := []grpc.DialOption{
                grpc.WithBlock(),
        }
        opts = append(opts, defaultOpts...)
+       l := logger.GetLogger("grpc-helper")
 
        connStart := time.Now()
        dialCtx, dialCancel := context.WithTimeout(context.Background(), 
connTimeout)
@@ -49,7 +48,7 @@ func Conn(addr string, connTimeout time.Duration, opts 
...grpc.DialOption) (*grp
                return nil, err
        }
        connDuration := time.Since(connStart)
-       l.Info().Dur("conn", connDuration).Msg("time elapsed")
+       l.Debug().Dur("conn", connDuration).Msg("time elapsed")
        return conn, nil
 }
 
@@ -58,6 +57,7 @@ func Request(ctx context.Context, rpcTimeout time.Duration, 
fn func(rpcCtx conte
        rpcCtx, rpcCancel := context.WithTimeout(ctx, rpcTimeout)
        defer rpcCancel()
        rpcCtx = metadata.NewOutgoingContext(rpcCtx, make(metadata.MD))
+       l := logger.GetLogger("grpc-helper")
 
        err := fn(rpcCtx)
        if err != nil {
@@ -71,6 +71,6 @@ func Request(ctx context.Context, rpcTimeout time.Duration, 
fn func(rpcCtx conte
                return err
        }
        rpcDuration := time.Since(rpcStart)
-       l.Info().Dur("rpc", rpcDuration).Msg("time elapsed")
+       l.Debug().Dur("rpc", rpcDuration).Msg("time elapsed")
        return nil
 }
diff --git a/pkg/logger/setting.go b/pkg/logger/setting.go
index 9d65e5e..40739b3 100644
--- a/pkg/logger/setting.go
+++ b/pkg/logger/setting.go
@@ -50,7 +50,7 @@ func (rl *rootLogger) setDefault() {
                defer atomic.StoreUint32(&rl.done, 1)
                var err error
                rl.l, err = getLogger(Logging{
-                       Env:   "dev",
+                       Env:   "prod",
                        Level: "debug",
                })
                if err != nil {
@@ -114,7 +114,7 @@ func getLogger(cfg Logging) (*Logger, error) {
                }
                w = io.Writer(cw)
        default:
-               w = os.Stderr
+               w = os.Stdout
        }
        l := zerolog.New(w).Level(lvl).With().Timestamp().Logger()
        return &Logger{module: "root", Logger: &l}, nil
diff --git a/pkg/pb/v1/write.go b/pkg/pb/v1/write.go
index c8b6a9f..f56a68b 100644
--- a/pkg/pb/v1/write.go
+++ b/pkg/pb/v1/write.go
@@ -19,6 +19,7 @@ package v1
 
 import (
        "bytes"
+       "encoding/hex"
        "time"
 
        "github.com/pkg/errors"
@@ -31,12 +32,15 @@ import (
        modelv1 
"github.com/apache/skywalking-banyandb/api/proto/banyandb/model/v1"
        streamv1 
"github.com/apache/skywalking-banyandb/api/proto/banyandb/stream/v1"
        "github.com/apache/skywalking-banyandb/pkg/convert"
+       "github.com/apache/skywalking-banyandb/pkg/encoding"
 )
 
 type ID string
 
 const fieldFlagLength = 9
 
+var zeroFieldValue = &modelv1.FieldValue{Value: &modelv1.FieldValue_Int{Int: 
&modelv1.Int{Value: int64(encoding.Zero)}}}
+
 var (
        strDelimiter = []byte("\n")
        NullTag      = &modelv1.TagValue{Value: &modelv1.TagValue_Null{}}
@@ -45,7 +49,7 @@ var (
        ErrUnsupportedTagForIndexField = errors.New("the tag type(for example, 
null) can not be as the index field value")
        ErrNullValue                   = errors.New("the tag value is null")
        ErrMalformedElement            = errors.New("element is malformed")
-       ErrMalformedFieldFlag          = errors.New("field flag is malformed")
+       ErrMalformedField              = errors.New("field is malformed")
 )
 
 func MarshalIndexFieldValue(tagValue *modelv1.TagValue) ([]byte, error) {
@@ -364,16 +368,23 @@ func EncodeFamily(familySpec *databasev1.TagFamilySpec, 
family *modelv1.TagFamil
        return proto.Marshal(data)
 }
 
-func DecodeFieldValue(fieldValue []byte, fieldSpec *databasev1.FieldSpec) 
*modelv1.FieldValue {
+func DecodeFieldValue(fieldValue []byte, fieldSpec *databasev1.FieldSpec) 
(*modelv1.FieldValue, error) {
        switch fieldSpec.GetFieldType() {
        case databasev1.FieldType_FIELD_TYPE_STRING:
-               return &modelv1.FieldValue{Value: &modelv1.FieldValue_Str{Str: 
&modelv1.Str{Value: string(fieldValue)}}}
+               return &modelv1.FieldValue{Value: &modelv1.FieldValue_Str{Str: 
&modelv1.Str{Value: string(fieldValue)}}}, nil
        case databasev1.FieldType_FIELD_TYPE_INT:
-               return &modelv1.FieldValue{Value: &modelv1.FieldValue_Int{Int: 
&modelv1.Int{Value: convert.BytesToInt64(fieldValue)}}}
+               if len(fieldValue) == 0 {
+                       return zeroFieldValue, nil
+               }
+               if len(fieldValue) != 8 {
+                       return nil, errors.WithMessagef(ErrMalformedField, "the 
length of encoded field value(int64) %s is %d, less than 8",
+                               hex.EncodeToString(fieldValue), len(fieldValue))
+               }
+               return &modelv1.FieldValue{Value: &modelv1.FieldValue_Int{Int: 
&modelv1.Int{Value: convert.BytesToInt64(fieldValue)}}}, nil
        case databasev1.FieldType_FIELD_TYPE_DATA_BINARY:
-               return &modelv1.FieldValue{Value: 
&modelv1.FieldValue_BinaryData{BinaryData: fieldValue}}
+               return &modelv1.FieldValue{Value: 
&modelv1.FieldValue_BinaryData{BinaryData: fieldValue}}, nil
        }
-       return &modelv1.FieldValue{Value: &modelv1.FieldValue_Null{}}
+       return &modelv1.FieldValue{Value: &modelv1.FieldValue_Null{}}, nil
 }
 
 func EncoderFieldFlag(fieldSpec *databasev1.FieldSpec, interval time.Duration) 
[]byte {
@@ -387,7 +398,7 @@ func EncoderFieldFlag(fieldSpec *databasev1.FieldSpec, 
interval time.Duration) [
 
 func DecodeFieldFlag(key []byte) (*databasev1.FieldSpec, time.Duration, error) 
{
        if len(key) < fieldFlagLength {
-               return nil, 0, ErrMalformedFieldFlag
+               return nil, 0, errors.WithMessagef(ErrMalformedField, "flag %s 
is invalid", hex.EncodeToString(key))
        }
        b := key[len(key)-9:]
        return &databasev1.FieldSpec{
diff --git a/pkg/query/logical/common.go b/pkg/query/logical/common.go
index 716be97..2cd6850 100644
--- a/pkg/query/logical/common.go
+++ b/pkg/query/logical/common.go
@@ -74,7 +74,7 @@ func ProjectItem(ec executor.ExecutionContext, item 
tsdb.Item, projectionFieldRe
                familyName := refs[0].Tag.GetFamilyName()
                parsedTagFamily, err := ec.ParseTagFamily(familyName, item)
                if err != nil {
-                       return nil, err
+                       return nil, errors.WithMessage(err, "parse projection")
                }
                if len(refs) > len(parsedTagFamily.Tags) {
                        return nil, errors.Wrapf(ErrInvalidData,
diff --git a/pkg/query/logical/measure/measure_plan_indexscan_local.go 
b/pkg/query/logical/measure/measure_plan_indexscan_local.go
index 69df5b3..d7722d4 100644
--- a/pkg/query/logical/measure/measure_plan_indexscan_local.go
+++ b/pkg/query/logical/measure/measure_plan_indexscan_local.go
@@ -217,10 +217,8 @@ func (ism *indexScanIterator) Next() bool {
        }
        nextItem := ism.inner.Next()
        var err error
-       ism.current, err = transform(nextItem, ism.context)
-       if err != nil {
-               ism.err = err
-               return false
+       if ism.current, err = transform(nextItem, ism.context); err != nil {
+               ism.err = multierr.Append(ism.err, err)
        }
        return true
 }
diff --git a/pkg/schema/metadata.go b/pkg/schema/metadata.go
index f95737b..ca5688e 100644
--- a/pkg/schema/metadata.go
+++ b/pkg/schema/metadata.go
@@ -158,7 +158,7 @@ func (sr *schemaRepo) Watcher() {
                                        if !more {
                                                return
                                        }
-                                       sr.l.Info().Interface("event", 
evt).Msg("received an event")
+                                       sr.l.Debug().Interface("event", 
evt).Msg("received an event")
                                        for i := 0; i < 10; i++ {
                                                var err error
                                                switch evt.Typ {
diff --git a/pkg/test/helpers/grpc_health.go b/pkg/test/helpers/grpc_health.go
index b78c0b1..694dfaf 100644
--- a/pkg/test/helpers/grpc_health.go
+++ b/pkg/test/helpers/grpc_health.go
@@ -28,10 +28,7 @@ import (
        "github.com/apache/skywalking-banyandb/pkg/logger"
 )
 
-var (
-       ErrServiceUnhealthy = errors.New("service is unhealthy")
-       l                   = logger.GetLogger()
-)
+var ErrServiceUnhealthy = errors.New("service is unhealthy")
 
 func HealthCheck(addr string, connTimeout time.Duration, rpcTimeout 
time.Duration, opts ...grpc.DialOption) func() error {
        return func() error {
@@ -50,11 +47,12 @@ func HealthCheck(addr string, connTimeout time.Duration, 
rpcTimeout time.Duratio
                }); err != nil {
                        return err
                }
+               l := logger.GetLogger()
                if resp.GetStatus() != 
grpc_health_v1.HealthCheckResponse_SERVING {
                        l.Warn().Str("responded_status", 
resp.GetStatus().String()).Msg("service unhealthy")
                        return ErrServiceUnhealthy
                }
-               l.Info().Stringer("status", resp.GetStatus()).Msg("connected")
+               l.Debug().Stringer("status", resp.GetStatus()).Msg("connected")
                return nil
        }
 }
diff --git a/pkg/test/helpers/http_health.go b/pkg/test/helpers/http_health.go
index abd33d6..cdd8115 100644
--- a/pkg/test/helpers/http_health.go
+++ b/pkg/test/helpers/http_health.go
@@ -20,6 +20,7 @@ import (
        "fmt"
        "time"
 
+       "github.com/apache/skywalking-banyandb/pkg/logger"
        "github.com/go-resty/resty/v2"
 )
 
@@ -34,13 +35,13 @@ func HTTPHealthCheck(addr string) func() error {
                        time.Sleep(1 * time.Second)
                        return err
                }
-
+               l := logger.GetLogger("http-health")
                if resp.StatusCode() != 200 {
                        l.Warn().Str("responded_status", 
resp.Status()).Msg("service unhealthy")
                        time.Sleep(1 * time.Second)
                        return ErrServiceUnhealthy
                }
-               l.Info().Stringer("response", resp).Msg("connected")
+               l.Debug().Stringer("response", resp).Msg("connected")
                time.Sleep(500 * time.Millisecond)
                return nil
        }
diff --git a/test/cases/measure/data/input/linked_or.yaml 
b/test/cases/measure/data/input/linked_or.yaml
new file mode 100644
index 0000000..5481bcf
--- /dev/null
+++ b/test/cases/measure/data/input/linked_or.yaml
@@ -0,0 +1,56 @@
+# Licensed to Apache Software Foundation (ASF) under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Apache Software Foundation (ASF) licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+metadata:
+  name: "service_cpm_minute"
+  group: "sw_metric"
+tagProjection:
+  tagFamilies:
+  - name: "default"
+    tags: ["id", "entity_id"]
+fieldProjection:
+  names: ["total", "value"]
+criteria:
+  le:
+    op: "LOGICAL_OP_OR"
+    left:
+      condition:
+        name: "id"
+        op: "BINARY_OP_EQ"
+        value:
+          id:
+            value: "4"
+    right:
+      le:
+        op: "LOGICAL_OP_OR"
+        left:
+          condition:
+            name: "id"
+            op: "BINARY_OP_EQ"
+            value:
+              id:
+                value: "5"
+        right:
+          le:
+            op: "LOGICAL_OP_OR"
+            left:
+              condition:
+                name: "id"
+                op: "BINARY_OP_EQ"
+                value:
+                  id:
+                    value: "unknown"
diff --git a/test/cases/measure/data/want/linked_or.yaml 
b/test/cases/measure/data/want/linked_or.yaml
new file mode 100644
index 0000000..785dba9
--- /dev/null
+++ b/test/cases/measure/data/want/linked_or.yaml
@@ -0,0 +1,60 @@
+# Licensed to Apache Software Foundation (ASF) under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Apache Software Foundation (ASF) licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+dataPoints:
+- fields:
+  - name: total
+    value:
+      int:
+        value: "100"
+  - name: value
+    value:
+      int:
+        value: "2"
+  tagFamilies:
+  - name: default
+    tags:
+    - key: id
+      value:
+        id:
+          value: "4"
+    - key: entity_id
+      value:
+        str:
+          value: entity_2
+  timestamp: "2022-10-17T12:50:45.912Z"
+- fields:
+  - name: total
+    value:
+      int:
+        value: "100"
+  - name: value
+    value:
+      int:
+        value: "3"
+  tagFamilies:
+  - name: default
+    tags:
+    - key: id
+      value:
+        id:
+          value: "5"
+    - key: entity_id
+      value:
+        str:
+          value: entity_2
+  timestamp: "2022-10-17T12:51:45.912Z"
diff --git a/test/cases/measure/measure.go b/test/cases/measure/measure.go
index 0ada8fb..5f3bce7 100644
--- a/test/cases/measure/measure.go
+++ b/test/cases/measure/measure.go
@@ -56,4 +56,5 @@ var _ = g.DescribeTable("Scanning Measures", verify,
        g.Entry("filter by entity id and service id", helpers.Args{Input: 
"entity_service", Want: "entity", Duration: 25 * time.Minute, Offset: -20 * 
time.Minute}),
        g.Entry("without field", helpers.Args{Input: "no_field", Duration: 25 * 
time.Minute, Offset: -20 * time.Minute}),
        g.Entry("invalid logical expression", helpers.Args{Input: 
"err_invalid_le", Duration: 25 * time.Minute, Offset: -20 * time.Minute, 
WantErr: true}),
+       g.Entry("linked or expressions", helpers.Args{Input: "linked_or", 
Duration: 25 * time.Minute, Offset: -20 * time.Minute}),
 )
diff --git a/test/stress/env b/test/stress/env
index 78577df..007f541 100644
--- a/test/stress/env
+++ b/test/stress/env
@@ -13,9 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-SW_AGENT_JAVA_COMMIT=5bc1d1d1f1d9ce6a4f7fce20e8ecc330bccf47ec
-SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=34a4553e23530e8255efe6f5a0adff9e69555d64
-SW_AGENT_SATELLITE_COMMIT=1987e1d566ac90f6b58a45fd9bfa27bf8faad635
+
+SW_AGENT_JAVA_COMMIT=3f88d735ba2bfd1196aff946502447d4b14450c8
+SW_AGENT_SATELLITE_COMMIT=ea27a3f4e126a24775fe12e2aa2695bcb23d99c3
 SW_AGENT_NGINX_LUA_COMMIT=c3cee4841798a147d83b96a10914d4ac0e11d0aa
 SW_AGENT_NODEJS_COMMIT=2e7560518aff846befd4d6bc815fe5e38c704a11
 SW_AGENT_GO_COMMIT=4af380c2db6243106b0fc650b6003ce3b3eb82a0
@@ -23,10 +23,10 @@ 
SW_AGENT_PYTHON_COMMIT=c76a6ec51a478ac91abb20ec8f22a99b8d4d6a58
 SW_AGENT_CLIENT_JS_COMMIT=af0565a67d382b683c1dbd94c379b7080db61449
 SW_AGENT_CLIENT_JS_TEST_COMMIT=4f1eb1dcdbde3ec4a38534bf01dded4ab5d2f016
 SW_KUBERNETES_COMMIT_SHA=0f3ec68e5a7e1608cec8688716b848ed15e971e5
-SW_ROVER_COMMIT=90c93c706743aac1f5853b677730edae8cc32a2c
-SW_CTL_COMMIT=219876daf985fd474955834ef0b65013f0890e96
-
-SW_OAP_COMMIT=dc39ce9bb44ed33d9c2bb0d5a054b1dfd5bbd657
+SW_ROVER_COMMIT=d956eaede57b62108b78bca48045bd09ba88e653
+SW_CTL_COMMIT=e684fae0107045fc23799146d62f04cb68bd5a3b
+SW_OAP_COMMIT=d5388683322ee6a4aed2a3bc29d439aadfca9a04
+SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=828e6e2f2b57a0f06bb0d507e3296d2377943d9a
 
 TARGET=test
 VUS=10
diff --git a/test/stress/env.dev b/test/stress/env.dev
index 5234b7a..add472c 100644
--- a/test/stress/env.dev
+++ b/test/stress/env.dev
@@ -13,9 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-SW_AGENT_JAVA_COMMIT=5bc1d1d1f1d9ce6a4f7fce20e8ecc330bccf47ec
-SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=34a4553e23530e8255efe6f5a0adff9e69555d64
-SW_AGENT_SATELLITE_COMMIT=1987e1d566ac90f6b58a45fd9bfa27bf8faad635
+SW_AGENT_JAVA_COMMIT=3f88d735ba2bfd1196aff946502447d4b14450c8
+SW_AGENT_SATELLITE_COMMIT=ea27a3f4e126a24775fe12e2aa2695bcb23d99c3
 SW_AGENT_NGINX_LUA_COMMIT=c3cee4841798a147d83b96a10914d4ac0e11d0aa
 SW_AGENT_NODEJS_COMMIT=2e7560518aff846befd4d6bc815fe5e38c704a11
 SW_AGENT_GO_COMMIT=4af380c2db6243106b0fc650b6003ce3b3eb82a0
@@ -23,10 +22,10 @@ 
SW_AGENT_PYTHON_COMMIT=c76a6ec51a478ac91abb20ec8f22a99b8d4d6a58
 SW_AGENT_CLIENT_JS_COMMIT=af0565a67d382b683c1dbd94c379b7080db61449
 SW_AGENT_CLIENT_JS_TEST_COMMIT=4f1eb1dcdbde3ec4a38534bf01dded4ab5d2f016
 SW_KUBERNETES_COMMIT_SHA=0f3ec68e5a7e1608cec8688716b848ed15e971e5
-SW_ROVER_COMMIT=90c93c706743aac1f5853b677730edae8cc32a2c
-SW_CTL_COMMIT=219876daf985fd474955834ef0b65013f0890e96
-
-SW_OAP_COMMIT=dc39ce9bb44ed33d9c2bb0d5a054b1dfd5bbd657
+SW_ROVER_COMMIT=d956eaede57b62108b78bca48045bd09ba88e653
+SW_CTL_COMMIT=e684fae0107045fc23799146d62f04cb68bd5a3b
+SW_OAP_COMMIT=d5388683322ee6a4aed2a3bc29d439aadfca9a04
+SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=828e6e2f2b57a0f06bb0d507e3296d2377943d9a
 
 TARGET=dev
 VUS=1


Reply via email to