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

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


The following commit(s) were added to refs/heads/main by this push:
     new 6e99ab7e Fix querying the index on a entity tag (#579)
6e99ab7e is described below

commit 6e99ab7e8fed451d24e4d6041ec4c3db7c44f237
Author: Gao Hongtao <[email protected]>
AuthorDate: Mon Dec 23 14:10:41 2024 +0800

    Fix querying the index on a entity tag (#579)
    
    * Fix querying the index on a entity tag
    
    Signed-off-by: Gao Hongtao <[email protected]>
    
    * Remove e2e
---
 .github/workflows/e2e.storage.yml                  |  2 -
 .gitignore                                         |  1 +
 CHANGES.md                                         |  1 +
 api/proto/banyandb/measure/v1/rpc.proto            |  7 ++-
 banyand/measure/measure.go                         | 12 +++--
 banyand/measure/write.go                           |  3 ++
 pkg/index/inverted/query.go                        | 11 ++--
 test/docker/base-compose.yml                       |  5 +-
 test/e2e-v2/cases/cluster/storage-cases.yaml       | 16 ++++++
 .../cases/profiling/ebpf/oncpu/Dockerfile.sqrt     | 23 --------
 .../ebpf/oncpu/banyandb/docker-compose.yml         | 58 --------------------
 .../cases/profiling/ebpf/oncpu/banyandb/e2e.yaml   | 37 -------------
 .../cases/profiling/ebpf/oncpu/docker-compose.yml  | 62 ----------------------
 .../profiling/ebpf/oncpu/expected/instance.yml     | 22 --------
 .../ebpf/oncpu/expected/process-estimate-scale.yml | 16 ------
 .../profiling/ebpf/oncpu/expected/process.yml      | 41 --------------
 .../ebpf/oncpu/expected/profiling-create.yml       | 18 -------
 .../oncpu/expected/profiling-schedule-list.yml     | 44 ---------------
 .../ebpf/oncpu/expected/profiling-task-list.yml    | 35 ------------
 .../profiling/ebpf/oncpu/expected/service.yml      | 24 ---------
 .../profiling/ebpf/oncpu/profiling-cases.yaml      | 45 ----------------
 test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go     | 33 ------------
 .../cases/profiling/trace/expected/traces-list.yml |  1 +
 .../expected/dependency-endpoint-consumer.yml      |  3 +-
 .../expected/dependency-endpoint-provider.yml      |  3 +-
 .../cases/storage/expected/dependency-instance.yml |  3 +-
 .../expected/dependency-services-consumer.yml      |  9 +++-
 .../expected/dependency-services-provider.yml      |  9 +++-
 .../cases/storage/expected/empty-traces-list.yml   |  3 +-
 .../expected/metrics-has-value-percentile.yml      |  5 +-
 .../cases/storage/expected/metrics-has-value.yml   |  5 +-
 .../expected/topN-OP-endpoint.yml}                 | 31 ++++++-----
 .../expected/topN-OP-service.yml}                  | 25 ++++++---
 .../cases/storage/expected/trace-users-detail.yml  |  3 +-
 test/e2e-v2/cases/storage/expected/traces-list.yml |  3 +-
 test/e2e-v2/cases/storage/storage-cases.yaml       | 16 ++++++
 test/e2e-v2/script/env                             | 11 ++--
 37 files changed, 142 insertions(+), 504 deletions(-)

diff --git a/.github/workflows/e2e.storage.yml 
b/.github/workflows/e2e.storage.yml
index 1673b20a..c6fd07e2 100644
--- a/.github/workflows/e2e.storage.yml
+++ b/.github/workflows/e2e.storage.yml
@@ -43,8 +43,6 @@ jobs:
             config: test/e2e-v2/cases/storage/banyandb/e2e.yaml
           - name: Trace Profiling BanyanDB
             config: test/e2e-v2/cases/profiling/trace/banyandb/e2e.yaml
-          - name: eBPF Profiling BanyanDB
-            config: test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml
           - name: Event BanyanDB
             config: test/e2e-v2/cases/event/banyandb/e2e.yaml
           - name: BanyanDB Cluster Mode
diff --git a/.gitignore b/.gitignore
index ac4d116f..ce674e13 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,6 +54,7 @@ target
 # mock files
 *mock.go
 *mock_test.go
+gomock_reflect*
 
 # snky cache
 .dccache
diff --git a/CHANGES.md b/CHANGES.md
index fba1df83..6742fc3b 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -41,6 +41,7 @@ Release Notes.
 ### Chores
 
 - Fix metrics system typo.
+- Bump up OAP in CI to 6d262cce62e156bd197177abb3640ea65bb2d38e.
 
 ### CVEs
 
diff --git a/api/proto/banyandb/measure/v1/rpc.proto 
b/api/proto/banyandb/measure/v1/rpc.proto
index 31ad2f28..5f216834 100644
--- a/api/proto/banyandb/measure/v1/rpc.proto
+++ b/api/proto/banyandb/measure/v1/rpc.proto
@@ -38,5 +38,10 @@ service MeasureService {
   }
 
   rpc Write(stream WriteRequest) returns (stream WriteResponse);
-  rpc TopN(TopNRequest) returns (TopNResponse);
+  rpc TopN(TopNRequest) returns (TopNResponse) {
+    option (google.api.http) = {
+      post: "/v1/measure/topn"
+      body: "*"
+    };
+  }
 }
diff --git a/banyand/measure/measure.go b/banyand/measure/measure.go
index 40a10898..4c4f85bd 100644
--- a/banyand/measure/measure.go
+++ b/banyand/measure/measure.go
@@ -51,14 +51,15 @@ type option struct {
 
 type measure struct {
        databaseSupplier   schema.Supplier
+       indexTagMap        map[string]struct{}
        l                  *logger.Logger
        schema             *databasev1.Measure
        processorManager   *topNProcessorManager
+       fieldIndexLocation partition.FieldIndexLocation
        name               string
        group              string
-       indexRules         []*databasev1.IndexRule
        indexRuleLocators  partition.IndexRuleLocator
-       fieldIndexLocation partition.FieldIndexLocation
+       indexRules         []*databasev1.IndexRule
        topNAggregations   []*databasev1.TopNAggregation
        interval           time.Duration
        shardNum           uint32
@@ -104,7 +105,12 @@ func (s *measure) parseSpec() (err error) {
                s.interval, err = timestamp.ParseDuration(s.schema.Interval)
        }
        s.indexRuleLocators, s.fieldIndexLocation = 
partition.ParseIndexRuleLocators(s.schema.GetEntity(), 
s.schema.GetTagFamilies(), s.indexRules, s.schema.IndexMode)
-
+       s.indexTagMap = make(map[string]struct{})
+       for j := range s.indexRules {
+               for k := range s.indexRules[j].Tags {
+                       s.indexTagMap[s.indexRules[j].Tags[k]] = struct{}{}
+               }
+       }
        return err
 }
 
diff --git a/banyand/measure/write.go b/banyand/measure/write.go
index 35ac5a14..5aa18042 100644
--- a/banyand/measure/write.go
+++ b/banyand/measure/write.go
@@ -284,6 +284,9 @@ func (w *writeCallback) 
appendEntityTagsToIndexFields(fields []index.Field, stm
        f.NoSort = true
        fields = append(fields, f)
        for i := range stm.schema.Entity.TagNames {
+               if _, exists := stm.indexTagMap[stm.schema.Entity.TagNames[i]]; 
exists {
+                       continue
+               }
                tagName := stm.schema.Entity.TagNames[i]
                var t *databasev1.TagSpec
                for j := range stm.schema.TagFamilies {
diff --git a/pkg/index/inverted/query.go b/pkg/index/inverted/query.go
index d15b4485..c74cdae0 100644
--- a/pkg/index/inverted/query.go
+++ b/pkg/index/inverted/query.go
@@ -197,14 +197,14 @@ func buildIndexModeCriteria(criteria *modelv1.Criteria, 
schema logical.Schema, e
                if err != nil {
                        return nil, err
                }
-               if _, ok := entityDict[cond.Name]; ok {
-                       fk := index.FieldKey{TagName: 
index.IndexModeEntityTagPrefix + cond.Name}
-                       return parseConditionToQuery(cond, nil, expr, 
fk.Marshal())
-               }
                if ok, indexRule := schema.IndexDefined(cond.Name); ok {
                        fk := index.FieldKey{IndexRuleID: indexRule.Metadata.Id}
                        return parseConditionToQuery(cond, indexRule, expr, 
fk.Marshal())
                }
+               if _, ok := entityDict[cond.Name]; ok {
+                       fk := index.FieldKey{TagName: 
index.IndexModeEntityTagPrefix + cond.Name}
+                       return parseConditionToQuery(cond, nil, expr, 
fk.Marshal())
+               }
                return nil, errors.Wrapf(logical.ErrUnsupportedConditionOp, 
"mandatory index rule conf:%s", cond)
        case *modelv1.Criteria_Le:
                le := criteria.GetLe()
@@ -301,6 +301,9 @@ func parseConditionToQuery(cond *modelv1.Condition, 
indexRule *databasev1.IndexR
                node := newTermNode(str, indexRule)
                return &queryNode{query, node}, nil
        case modelv1.Condition_BINARY_OP_MATCH:
+               if indexRule == nil {
+                       return nil, 
errors.WithMessagef(logical.ErrUnsupportedConditionOp, "index rule is mandatory 
for match operation: %s", cond)
+               }
                bb := expr.Bytes()
                if len(bb) != 1 {
                        return nil, 
errors.WithMessagef(logical.ErrUnsupportedConditionOp, "don't support multiple 
or null value: %s", cond)
diff --git a/test/docker/base-compose.yml b/test/docker/base-compose.yml
index ebf9eac5..9fcb81f9 100644
--- a/test/docker/base-compose.yml
+++ b/test/docker/base-compose.yml
@@ -67,9 +67,6 @@ services:
       - 5005
     environment:
       SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
-      SW_CONFIG_ETCD_PERIOD: 1
-      SW_CONFIG_ETCD_ENDPOINTS: http://etcd:2379
-      SW_CLUSTER_ETCD_ENDPOINTS: http://etcd:2379
     healthcheck:
       test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/11800"]
       interval: 5s
@@ -98,6 +95,7 @@ services:
       SW_AGENT_INSTANCE_NAME: provider1
       SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL: 1
       SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL: 1
+      SW_METER_ACTIVE: 'false'
     healthcheck:
       test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9090"]
       interval: 5s
@@ -120,6 +118,7 @@ services:
       SW_AGENT_INSTANCE_NAME: consumer1
       SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL: 1
       SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL: 1
+      SW_METER_ACTIVE: 'false'
     healthcheck:
       test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9092"]
       interval: 5s
diff --git a/test/e2e-v2/cases/cluster/storage-cases.yaml 
b/test/e2e-v2/cases/cluster/storage-cases.yaml
index 28c128b0..8ce1e5c7 100644
--- a/test/e2e-v2/cases/cluster/storage-cases.yaml
+++ b/test/e2e-v2/cases/cluster/storage-cases.yaml
@@ -160,3 +160,19 @@ cases:
           | yq e '.traces[0].traceids[0]' - \
       )
     expected: ../storage/expected/trace-users-detail.yml
+  # topN-OP-service Global
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(service_sla,3,des)/100"
+    expected: ../storage/expected/topN-OP-service.yml
+    # topN-OP-service Global with attrs
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(service_sla,3,des,attr0='GENERAL')/100"
+    expected: ../storage/expected/topN-OP-service.yml
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(service_sla,3,des,attr0!='Not_GENERAL')/100"
+    expected: ../storage/expected/topN-OP-service.yml
+  # topN-OP-endpoint Global
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(endpoint_sla,3,des)/100"
+    expected: ../storage/expected/topN-OP-endpoint.yml
+    # topN-OP-endpoint Global with attrs
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(endpoint_sla,3,des,attr0='GENERAL')/100"
+    expected: ../storage/expected/topN-OP-endpoint.yml
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(endpoint_sla,3,des,attr0!='Not_GENERAL')/100"
+    expected: ../storage/expected/topN-OP-endpoint.yml
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/Dockerfile.sqrt 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/Dockerfile.sqrt
deleted file mode 100644
index 432e6961..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/Dockerfile.sqrt
+++ /dev/null
@@ -1,23 +0,0 @@
-# Licensed to the 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.  The 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.
-
-FROM golang:1.17
-
-WORKDIR /
-COPY sqrt.go /sqrt.go
-RUN go build -o sqrt sqrt.go
-
-CMD ["/sqrt"]
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/docker-compose.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/docker-compose.yml
deleted file mode 100644
index 617c1a20..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/docker-compose.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-version: '2.1'
-
-services:
-  banyandb:
-    extends:
-      file: ../docker-compose.yml
-      service: banyandb
-    networks:
-      - e2e
-
-  oap:
-    extends:
-      file: ../docker-compose.yml
-      service: oap
-    networks:
-      - e2e
-    environment:
-      SW_STORAGE: banyandb
-    depends_on:
-      banyandb:
-        condition: service_healthy
-    ports:
-    - 12800
-
-  sqrt:
-    extends:
-      file: ../docker-compose.yml
-      service: sqrt
-    networks:
-      - e2e
-
-  rover:
-    extends:
-      file: ../docker-compose.yml
-      service: rover
-    networks:
-      - e2e
-    depends_on:
-      oap:
-        condition: service_healthy
-
-networks:
-  e2e:
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml
deleted file mode 100644
index f8fdca0f..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-# This file is used to show how to write configuration files and can be used 
to test.
-
-setup:
-  env: compose
-  file: docker-compose.yml
-  timeout: 20m
-  init-system-environment: ../../../../../script/env
-  steps:
-    - name: set PATH
-      command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
-    - name: install yq
-      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
-    - name: install swctl
-      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
-  retry:
-    count: 20
-    interval: 10s
-  cases:
-    - includes:
-        - ../profiling-cases.yaml
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/docker-compose.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/docker-compose.yml
deleted file mode 100644
index a41db1f3..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/docker-compose.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-version: '2.1'
-
-services:
-  oap:
-    extends:
-      file: ../../../../script/docker-compose/base-compose.yml
-      service: oap
-
-  banyandb:
-    extends:
-      file: ../../../../script/docker-compose/base-compose.yml
-      service: banyandb
-
-  sqrt:
-    build:
-      context: .
-      dockerfile: Dockerfile.sqrt
-    networks:
-      - e2e
-
-  rover:
-    image: 
"ghcr.io/apache/skywalking-rover/skywalking-rover:${SW_ROVER_COMMIT}"
-    networks:
-      - e2e
-    privileged: true
-    pid: host
-    environment:
-      ROVER_HOST_MAPPING: /host
-      ROVER_BACKEND_ADDR: oap:11800
-      ROVER_PROCESS_DISCOVERY_HEARTBEAT_PERIOD: 2s
-      ROVER_PROCESS_DISCOVERY_VM_ACTIVE: "true"
-      ROVER_PROCESS_DISCOVERY_SCAN_MODE: REGEX
-      ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: sqrt
-      ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LAYER: OS_LINUX
-      ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: sqrt
-      ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_INSTANCE_NAME: test-instance
-      ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_PROCESS_NAME: 
"{{.Process.ExeName}}"
-      ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LABELS: e2e-label1,e2e-label2
-      ROVER_PROFILING_ACTIVE: "true"
-      ROVER_PROFILING_CHECK_INTERVAL: 2s
-      ROVER_PROFILING_FLUSH_INTERVAL: 5s
-      ROVER_PROFILING_TASK_ON_CPU_DUMP_PERIOD: 9ms
-    volumes:
-      - /:/host
-
-networks:
-  e2e:
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/instance.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/instance.yml
deleted file mode 100644
index 5f276502..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/instance.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-{{- contains . }}
-- id: {{ b64enc "sqrt" }}.1_{{ b64enc "test-instance" }}
-  name: test-instance
-  attributes: []
-  language: UNKNOWN
-  instanceuuid: {{ notEmpty .instanceuuid }}
-{{- end }}
diff --git 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process-estimate-scale.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process-estimate-scale.yml
deleted file mode 100644
index a4bfca0c..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process-estimate-scale.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-1
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process.yml
deleted file mode 100644
index b9696316..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-{{- contains . }}
-- id: {{ notEmpty .id }}
-  name: sqrt
-  serviceid: {{ b64enc "sqrt" }}.1
-  servicename: sqrt
-  instanceid: {{ b64enc "sqrt" }}.1_{{ b64enc "test-instance" }}
-  instancename: test-instance
-  agentid: {{ notEmpty .agentid }}
-  detecttype: VM
-  attributes:
-    {{- contains .attributes }}
-    - name: host_ip
-      value: {{ notEmpty .value }}
-    - name: pid
-      value: {{ notEmpty .value }}
-    - name: command_line
-      value: /sqrt
-    - name: support_ebpf_profiling
-      value: "true"
-    {{- end }}
-  labels:
-    {{- contains .labels }}
-    - e2e-label1
-    - e2e-label2
-    {{- end }}
-{{- end }}
diff --git 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create.yml
deleted file mode 100644
index 176b195a..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-status: true
-errorreason: null
-id: {{ notEmpty .id }}
\ No newline at end of file
diff --git 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-schedule-list.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-schedule-list.yml
deleted file mode 100644
index 728a68d5..00000000
--- 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-schedule-list.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-{{- contains . }}
-- scheduleid: {{ notEmpty .scheduleid }}
-  taskid: {{ notEmpty .taskid }}
-  process:
-    id: {{ notEmpty .process.id }}
-    name: sqrt
-    serviceid: {{ b64enc "sqrt" }}.1
-    servicename: sqrt
-    instanceid: {{ b64enc "sqrt" }}.1_{{ b64enc "test-instance" }}
-    instancename: test-instance
-    agentid: {{ notEmpty .process.agentid }}
-    detecttype: VM
-    attributes:
-      {{- contains .process.attributes }}
-      - name: host_ip
-        value: {{ notEmpty .value }}
-      - name: pid
-        value: {{ notEmpty .value }}
-      - name: command_line
-        value: /sqrt
-      {{- end }}
-    labels:
-      {{- contains .process.labels }}
-      - e2e-label1
-      - e2e-label2
-      {{- end }}
-  starttime: {{ gt .starttime 0 }}
-  endtime: {{ gt .endtime 0 }}
-{{- end }}
diff --git 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-task-list.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-task-list.yml
deleted file mode 100644
index f357fd6f..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-task-list.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
-  serviceid: {{ b64enc "sqrt" }}.1
-  servicename: sqrt
-  serviceinstanceid: null
-  serviceinstancename: null
-  processid: null
-  processname: null
-  processlabels:
-    {{- contains .processlabels }}
-    - e2e-label1
-    - e2e-label2
-    {{- end }}
-  taskstarttime: {{ gt .taskstarttime 0 }}
-  triggertype: FIXED_TIME
-  fixedtriggerduration: 60
-  targettype: ON_CPU
-  createtime: {{ gt .createtime 0 }}
-  continuousprofilingcauses: []
-{{- end }}
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/service.yml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/service.yml
deleted file mode 100644
index 4c0ee2b0..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/service.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-{{- contains . }}
-- id: {{ b64enc "sqrt" }}.1
-  name: sqrt
-  group: ""
-  shortname: sqrt
-  layers:
-    - OS_LINUX
-  normal: true
-{{- end }}
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/profiling-cases.yaml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/profiling-cases.yaml
deleted file mode 100644
index 902a3be9..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/profiling-cases.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# Licensed to the 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.
-# The 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.
-
-# This file is used to show how to write configuration files and can be used 
to test.
-
-cases:
-  - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml service ls
-    expected: expected/service.yml
-  - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml instance ls --service-name sqrt
-    expected: expected/instance.yml
-  - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml process ls --service-name sqrt --instance-name test-instance
-    expected: expected/process.yml
-  - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml profiling ebpf create prepare --service-name sqrt
-    expected: expected/profiling-create-prepare.yml
-  - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml process estimate scale --service-name sqrt --labels e2e-label1,e2e-label2
-    expected: expected/process-estimate-scale.yml
-  - query: |
-      swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml 
profiling ebpf create fixed --service-name sqrt --labels e2e-label1,e2e-label2 
--duration 1m
-    expected: expected/profiling-create.yml
-  - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml profiling ebpf list --service-name sqrt
-    expected: expected/profiling-task-list.yml
-  - query: |
-      swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml 
profiling ebpf schedules --task-id=$( \
-        swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml profiling ebpf list --service-name sqrt |yq e '.[0].taskid' -
-      )
-    expected: expected/profiling-schedule-list.yml
-  - query: |
-      taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql 
--display yaml profiling ebpf list --service-name sqrt |yq e '.[0].taskid' -)
-      scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql 
--display yaml profiling ebpf schedules --task-id=$taskid |yq e 
'.[0].scheduleid' -);
-      start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql 
--display yaml profiling ebpf schedules --task-id=$taskid | yq e 
'.[0].starttime' -)
-      end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display 
yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -)
-      swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml 
profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end
-    expected: expected/profiling-analysis.yml
\ No newline at end of file
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go
deleted file mode 100644
index eb3dbc05..00000000
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go
+++ /dev/null
@@ -1,33 +0,0 @@
-// Licensed to the 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.  The 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.
-
-// Package main is the entry point of the process for EBPF profiling.
-package main
-
-import (
-       "math"
-)
-
-//go:noinline
-func sqrtInGolang() {
-       for {
-               math.Sqrt(10000)
-       }
-}
-
-func main() {
-       sqrtInGolang()
-}
diff --git a/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml 
b/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml
index 196d87a0..c9a97166 100644
--- a/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml
+++ b/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 traces:
 {{- contains .traces }}
 - segmentid: {{ notEmpty .segmentid }}
diff --git 
a/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml 
b/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml
index 8f5a8b26..d79834ff 100644
--- a/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml
+++ b/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 nodes:
 {{- contains .nodes }}
 - id: {{ b64enc "User" }}.0_{{ b64enc "User" }}
@@ -50,4 +51,4 @@ calls:
   id: {{ b64enc "e2e-service-consumer" }}.1-{{ b64enc "POST:/users" }}-{{ 
b64enc "e2e-service-provider" }}.1-{{ b64enc "POST:/users" }}
   detectpoints:
     - SERVER
-{{- end }}
+{{- end }}
\ No newline at end of file
diff --git 
a/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml 
b/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml
index 3835336b..87cd0f80 100644
--- a/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml
+++ b/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 nodes:
 {{- contains .nodes }}
 - id: {{ b64enc "e2e-service-consumer" }}.1_{{ b64enc "POST:/users" }}
@@ -37,4 +38,4 @@ calls:
   id: {{ b64enc "e2e-service-consumer" }}.1-{{ b64enc "POST:/users" }}-{{ 
b64enc "e2e-service-provider" }}.1-{{ b64enc "POST:/users" }}
   detectpoints:
     - SERVER
-{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/test/e2e-v2/cases/storage/expected/dependency-instance.yml 
b/test/e2e-v2/cases/storage/expected/dependency-instance.yml
index 61cc1cad..8be014ed 100644
--- a/test/e2e-v2/cases/storage/expected/dependency-instance.yml
+++ b/test/e2e-v2/cases/storage/expected/dependency-instance.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 nodes:
 {{- contains .nodes }}
 - id: {{ b64enc "e2e-service-consumer" }}.1_{{ b64enc "consumer1" }}
@@ -38,4 +39,4 @@ calls:
   detectpoints:
     - CLIENT
     - SERVER
-{{- end }}
+{{- end }}
\ No newline at end of file
diff --git 
a/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml 
b/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml
index 106faf57..1d377051 100644
--- a/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml
+++ b/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml
@@ -13,20 +13,27 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 nodes:
 {{- contains .nodes }}
 - id: {{ b64enc "User"}}.0
   name: User
   type: USER
   isreal: false
+  layers:
+    - UNDEFINED
 - id: {{ b64enc "e2e-service-consumer"}}.1
   name: e2e-service-consumer
   type: Tomcat
   isreal: true
+  layers:
+    - GENERAL
 - id: {{ b64enc "e2e-service-provider"}}.1
   name: e2e-service-provider
   type: Tomcat
   isreal: true
+  layers:
+    - GENERAL
 {{- end }}
 calls:
 {{- contains .calls }}
@@ -48,4 +55,4 @@ calls:
   id: {{ b64enc "User" }}.0-{{ b64enc "e2e-service-consumer"}}.1
   detectpoints:
     - SERVER
-{{- end }}
+{{- end }}
\ No newline at end of file
diff --git 
a/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml 
b/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml
index 63646974..8d8d8bf9 100644
--- a/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml
+++ b/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml
@@ -13,20 +13,27 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 nodes:
 {{- contains .nodes }}
 - id: {{ b64enc "e2e-service-provider"}}.1
   name: e2e-service-provider
   type: Tomcat
   isreal: true
+  layers:
+    - GENERAL
 - id: {{ b64enc "e2e-service-consumer"}}.1
   name: e2e-service-consumer
   type: Tomcat
   isreal: true
+  layers:
+    - GENERAL
 - id: {{ b64enc "localhost:-1" }}.0
   name: localhost:-1
   type: H2
   isreal: false
+  layers:
+    - VIRTUAL_DATABASE
 {{- end }}
 calls:
 {{- contains .calls }}
@@ -48,4 +55,4 @@ calls:
   id: {{ b64enc "e2e-service-provider" }}.1-{{ b64enc "localhost:-1"}}.0
   detectpoints:
     - CLIENT
-{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/test/e2e-v2/cases/storage/expected/empty-traces-list.yml 
b/test/e2e-v2/cases/storage/expected/empty-traces-list.yml
index 294a89e0..747725eb 100644
--- a/test/e2e-v2/cases/storage/expected/empty-traces-list.yml
+++ b/test/e2e-v2/cases/storage/expected/empty-traces-list.yml
@@ -13,4 +13,5 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-traces: []
+debuggingtrace: null
+traces: []
\ No newline at end of file
diff --git 
a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml 
b/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
index 0e662e43..f89e729b 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
+++ b/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 type: TIME_SERIES_VALUES
 results:
   {{- contains .results }}
@@ -26,10 +27,12 @@ results:
       {{- contains .values }}
       - id: {{ notEmpty .id }}
         value: {{ .value }}
+        owner: null
         traceid: null
       - id: {{ notEmpty .id }}
         value: null
+        owner: null
         traceid: null
       {{- end}}
   {{- end}}
-error: null
+error: null
\ No newline at end of file
diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml 
b/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
index dc71f566..d228fd61 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 type: TIME_SERIES_VALUES
 results:
   {{- contains .results }}
@@ -22,10 +23,12 @@ results:
       {{- contains .values }}
       - id: {{ notEmpty .id }}
         value: {{ .value }}
+        owner: null
         traceid: null
       - id: {{ notEmpty .id }}
         value: null
+        owner: null
         traceid: null
       {{- end}}
   {{- end}}
-error: null
+error: null
\ No newline at end of file
diff --git 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-analysis.yml 
b/test/e2e-v2/cases/storage/expected/topN-OP-endpoint.yml
similarity index 67%
rename from 
test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-analysis.yml
rename to test/e2e-v2/cases/storage/expected/topN-OP-endpoint.yml
index fdabcce9..8e21a0a0 100644
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-analysis.yml
+++ b/test/e2e-v2/cases/storage/expected/topN-OP-endpoint.yml
@@ -13,15 +13,22 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-tip: null
-trees:
-{{- contains .trees }}
-- elements:
-  {{- contains .elements }}
-  - id: "{{ notEmpty .id }}"
-    parentid: "{{ notEmpty .parentid }}"
-    symbol: "main.sqrtInGolang"
-    stacktype: USER_SPACE
-    dumpcount: {{ gt .dumpcount 0 }}
-{{- end }}
-{{- end }}
\ No newline at end of file
+debuggingtrace: null
+type: SORTED_LIST
+results:
+  {{- contains .results }}
+  - metric:
+      labels: []
+    values:
+      {{- contains .values }}
+      - id: {{ notEmpty .id }}
+        value: "100"
+        owner: null
+        traceid: null
+      - id: {{ notEmpty .id }}
+        value: "100"
+        owner: null
+        traceid: null
+      {{- end }}
+  {{- end }}
+error: null
\ No newline at end of file
diff --git 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create-prepare.yml 
b/test/e2e-v2/cases/storage/expected/topN-OP-service.yml
similarity index 67%
rename from 
test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create-prepare.yml
rename to test/e2e-v2/cases/storage/expected/topN-OP-service.yml
index b1226a33..b7bb99a4 100644
--- 
a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create-prepare.yml
+++ b/test/e2e-v2/cases/storage/expected/topN-OP-service.yml
@@ -13,9 +13,22 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-couldprofiling: true
-processlabels:
-  {{- contains .processlabels }}
-  - e2e-label1
-  - e2e-label2
-  {{- end }}
\ No newline at end of file
+debuggingtrace: null
+type: SORTED_LIST
+results:
+  {{- contains .results }}
+  - metric:
+      labels: []
+    values:
+      {{- contains .values }}
+      - id: {{ notEmpty .id }}
+        owner: null
+        value: "100"
+        traceid: null
+      - id: {{ notEmpty .id }}
+        owner: null
+        value: "100"
+        traceid: null
+      {{- end }}
+  {{- end }}
+error: null
\ No newline at end of file
diff --git a/test/e2e-v2/cases/storage/expected/trace-users-detail.yml 
b/test/e2e-v2/cases/storage/expected/trace-users-detail.yml
index 437b9dd1..3164a569 100644
--- a/test/e2e-v2/cases/storage/expected/trace-users-detail.yml
+++ b/test/e2e-v2/cases/storage/expected/trace-users-detail.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 spans:
   {{- contains .spans }}
   - traceid: {{ .traceid }}
@@ -93,4 +94,4 @@ spans:
       {{- end }}
     logs: []
     attachedevents: []
-  {{- end }}
+  {{- end }}
\ No newline at end of file
diff --git a/test/e2e-v2/cases/storage/expected/traces-list.yml 
b/test/e2e-v2/cases/storage/expected/traces-list.yml
index 4d5a1e5f..e6b01d4c 100644
--- a/test/e2e-v2/cases/storage/expected/traces-list.yml
+++ b/test/e2e-v2/cases/storage/expected/traces-list.yml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+debuggingtrace: null
 traces:
 {{- contains .traces }}
 - segmentid: {{ notEmpty .segmentid }}
@@ -23,4 +24,4 @@ traces:
   iserror: false
   traceids:
     - {{ index .traceids 0 }}
-{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/test/e2e-v2/cases/storage/storage-cases.yaml 
b/test/e2e-v2/cases/storage/storage-cases.yaml
index f7a06f39..71b40e06 100644
--- a/test/e2e-v2/cases/storage/storage-cases.yaml
+++ b/test/e2e-v2/cases/storage/storage-cases.yaml
@@ -160,3 +160,19 @@ cases:
           | yq e '.traces[0].traceids[0]' - \
       )
     expected: expected/trace-users-detail.yml
+  # topN-OP-service Global
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(service_sla,3,des)/100"
+    expected: expected/topN-OP-service.yml
+    # topN-OP-service Global with attrs
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(service_sla,3,des,attr0='GENERAL')/100"
+    expected: expected/topN-OP-service.yml
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(service_sla,3,des,attr0!='Not_GENERAL')/100"
+    expected: expected/topN-OP-service.yml
+  # topN-OP-endpoint Global
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(endpoint_sla,3,des)/100"
+    expected: expected/topN-OP-endpoint.yml
+    # topN-OP-endpoint Global with attrs
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(endpoint_sla,3,des,attr0='GENERAL')/100"
+    expected: expected/topN-OP-endpoint.yml
+  - query: swctl --display yaml 
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec 
--expression="top_n(endpoint_sla,3,des,attr0!='Not_GENERAL')/100"
+    expected: expected/topN-OP-endpoint.yml
\ No newline at end of file
diff --git a/test/e2e-v2/script/env b/test/e2e-v2/script/env
index 971a4327..efe6f63e 100644
--- a/test/e2e-v2/script/env
+++ b/test/e2e-v2/script/env
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-SW_AGENT_JAVA_COMMIT=c82287e1dd1593cf3e7dbc390b92f9224943252a
+SW_AGENT_JAVA_COMMIT=f0245864e4388a388fe7445b56b6ce7cedc94aaf
 SW_AGENT_SATELLITE_COMMIT=ea27a3f4e126a24775fe12e2aa2695bcb23d99c3
 SW_AGENT_NGINX_LUA_COMMIT=c3cee4841798a147d83b96a10914d4ac0e11d0aa
 SW_AGENT_NODEJS_COMMIT=4f9a91dad3dfd8cfe5ba8f7bd06b39e11eb5e65e
@@ -22,8 +22,9 @@ 
SW_AGENT_PYTHON_COMMIT=c76a6ec51a478ac91abb20ec8f22a99b8d4d6a58
 SW_AGENT_CLIENT_JS_COMMIT=af0565a67d382b683c1dbd94c379b7080db61449
 SW_AGENT_CLIENT_JS_TEST_COMMIT=4f1eb1dcdbde3ec4a38534bf01dded4ab5d2f016
 SW_KUBERNETES_COMMIT_SHA=1335f15bf821a40a7cd71448fa805f0be265afcc
-SW_ROVER_COMMIT=fc8d074c6d34ecfee585a7097cbd5aef1ca680a5
-SW_CTL_COMMIT=d5f3597733aa5217373986d776a3ee5ee8b3c468
+SW_ROVER_COMMIT=0ae8f12d6eb6cc9fa125c603ee57d0b21fc8c6d0
+SW_AGENT_PHP_COMMIT=3192c553002707d344bd6774cfab5bc61f67a1d3
+SW_CTL_COMMIT=6210a3b79089535af782ca51359ce6c5b68890b2
 
-SW_OAP_COMMIT=ceaa88f378d40bedf40e40c33169b9804fc96aae
-SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=5d0bd0569b23bcd40a3c9ea0898e27d6aefd1e84
+SW_OAP_COMMIT=6d262cce62e156bd197177abb3640ea65bb2d38e
+SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=d3f8fe894d1a206164b73f5b523d2eb62d9e9965


Reply via email to