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

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new c87e4df98d Add BanyanDB cluster mode e2e tests for Istio (ALS + 
metrics) (#13768)
c87e4df98d is described below

commit c87e4df98da0458f8f4c6cba58cb41f9eb2ec972
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Mon Mar 30 09:26:01 2026 +0800

    Add BanyanDB cluster mode e2e tests for Istio (ALS + metrics) (#13768)
    
    Adds BanyanDB cluster mode variants for Istio ALS and Envoy Metrics Service 
e2e tests.
    
    **BanyanDB cluster configuration:**
    - 2 liaison nodes + 2 data nodes (hot only)
    - DNS service discovery (no etcd)
    - Native metadata storage (property mode)
    - Access log flags commented out (available for debugging, not enabled by 
default)
    
    **New files:**
    - `test/e2e-v2/cases/istio/als/banyandb/e2e.yaml` — ALS with BanyanDB 
cluster
    - `test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml` — Envoy metrics 
service with BanyanDB cluster
    - `test/e2e-v2/cases/istio/als/als-cases.yaml` — shared verify cases 
(extracted from als/e2e.yaml)
    - `test/e2e-v2/cases/istio/metrics/metrics-cases.yaml` — shared verify 
cases (extracted from metrics/e2e.yaml)
    
    **Workflow improvements:**
    - `e2e-test-istio` job: added `storage` matrix dimension (`ES`/`BanyanDB`) 
for ALS tests
    - `e2e-test` job: added `Istio Metrics Service BanyanDB 1.29.0` to matrix
    - **Default docker images switched from JDK 11 to JDK 25** for all e2e tests
      (JDK 11/17 compatibility covered by `e2e-test-java-versions` only)
    - **Clean job names**: removed e2e YAML paths from display names
      - `e2e-test`: uses `${{ matrix.test.name }}` directly (e.g., `Cluster ZK 
ES`, `Agent PHP`)
      - `e2e-test-istio`: `Istio ALS (k8s-mesh, ES, 1.29.0, 28)`
      - `e2e-test-istio-ambient`: `Istio Ambient ALS (k8s-mesh, 1.29.0, 28)`
      - `e2e-test-java-versions`: `Java 11`, `Java 17`, `Java 25`
      - `e2e-test-banyandb-stages`: `BanyanDB Stages`
    - Access log flags commented out in all BanyanDB configs (Compose + Kind)
      with instructions for enabling during debugging
    
    **Data collection on failure:**
    
    Collects from all BanyanDB pods via `label-selector: 
app.kubernetes.io/name=banyandb`:
    
    | Pod | Collected |
    |---|---|
    | `skywalking-banyandb-liaison-{0,1}` | `/tmp/accesslog/` (when access logs 
enabled) |
    | `skywalking-banyandb-data-hot-{0,1}` | 
`/tmp/{trace,stream,measure,property,schema-property}/` |
---
 .github/workflows/skywalking.yaml                  |  48 ++++---
 test/e2e-v2/cases/istio/als/als-cases.yaml         | 154 +++++++++++++++++++++
 .../access_log => istio/als}/banyandb/e2e.yaml     |  66 +++++----
 test/e2e-v2/cases/istio/als/e2e.yaml               | 138 +-----------------
 test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml  | 132 ++++++++++++++++++
 test/e2e-v2/cases/istio/metrics/e2e.yaml           | 110 +--------------
 .../istio/metrics/{e2e.yaml => metrics-cases.yaml} |  99 +------------
 .../profiling/ebpf/access_log/banyandb/e2e.yaml    |  13 +-
 .../profiling/ebpf/continuous/banyandb/e2e.yaml    |  13 +-
 .../cases/profiling/ebpf/network/banyandb/e2e.yaml |  13 +-
 .../cases/profiling/ebpf/oncpu/banyandb/e2e.yaml   |  13 +-
 .../banyandb/data-generate/docker-compose.yml      |   2 +-
 .../cases/storage/banyandb/docker-compose.yml      |   2 +-
 .../cases/storage/banyandb/tls/docker-compose.yml  |   2 +-
 test/e2e-v2/script/docker-compose/base-compose.yml |   4 +-
 15 files changed, 396 insertions(+), 413 deletions(-)

diff --git a/.github/workflows/skywalking.yaml 
b/.github/workflows/skywalking.yaml
index fcc2a11b7b..241427afb7 100644
--- a/.github/workflows/skywalking.yaml
+++ b/.github/workflows/skywalking.yaml
@@ -336,7 +336,7 @@ jobs:
     if: |
       ( always() && ! cancelled() ) &&
       ((github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || needs.changes.outputs.oap == 'true')
-    name: E2E test
+    name: ${{ matrix.test.name }}
     needs: [docker, dist-tar]
     runs-on: ${{ matrix.test.runs-on || 'ubuntu-latest' }}
     timeout-minutes: 60
@@ -536,51 +536,56 @@ jobs:
           - name: Kafka Log
             config: test/e2e-v2/cases/kafka/log/e2e.yaml
 
-          - name: Istio Metrics Service 1.21.0
+          - name: Istio Metrics Service ES 1.21.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.21.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.22.0
+          - name: Istio Metrics Service ES 1.22.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.22.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.23.0
+          - name: Istio Metrics Service ES 1.23.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.23.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.24.0
+          - name: Istio Metrics Service ES 1.24.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.24.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.25.0
+          - name: Istio Metrics Service ES 1.25.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.25.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.26.0
+          - name: Istio Metrics Service ES 1.26.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.26.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.27.0
+          - name: Istio Metrics Service ES 1.27.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.27.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.28.0
+          - name: Istio Metrics Service ES 1.28.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.28.0
               KUBERNETES_VERSION=28
-          - name: Istio Metrics Service 1.29.0
+          - name: Istio Metrics Service ES 1.29.0
             config: test/e2e-v2/cases/istio/metrics/e2e.yaml
             env: |
               ISTIO_VERSION=1.29.0
               KUBERNETES_VERSION=28
+          - name: Istio Metrics Service BanyanDB 1.29.0
+            config: test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml
+            env: |
+              ISTIO_VERSION=1.29.0
+              KUBERNETES_VERSION=28
 
           - name: Rover with Istio Process 1.28.0
             config: test/e2e-v2/cases/rover/process/istio/e2e.yaml
@@ -725,7 +730,7 @@ jobs:
       - uses: actions/download-artifact@v4
         name: Download docker images
         with:
-          name: docker-images-11
+          name: docker-images-25
           path: docker-images
       - name: Load docker images
         run: |
@@ -778,7 +783,7 @@ jobs:
     if: |
       ( always() && ! cancelled() ) &&
       ((github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || needs.changes.outputs.oap == 'true')
-    name: E2E test
+    name: Istio ALS
     needs: [docker]
     runs-on: ubuntu-24.04
     timeout-minutes: 60
@@ -786,6 +791,7 @@ jobs:
       fail-fast: false
       matrix:
         analyzer: [k8s-mesh, mx-mesh]
+        storage: [ES, BanyanDB]
         versions:
           - istio: 1.21.0
             kubernetes: 28
@@ -818,7 +824,7 @@ jobs:
       - uses: actions/download-artifact@v4
         name: Download docker images
         with:
-          name: docker-images-11
+          name: docker-images-25
           path: docker-images
       - name: Load docker images
         run: |
@@ -830,14 +836,14 @@ jobs:
           registry: ghcr.io
           username: ${{ github.repository_owner }}
           password: ${{ secrets.GITHUB_TOKEN }}
-      - name: ${{ matrix.test.name }}
+      - name: ALS ${{ matrix.storage }}, ${{ matrix.analyzer }}, istio-${{ 
matrix.versions.istio }}, k8s-${{ matrix.versions.kubernetes }}
         uses: 
apache/skywalking-infra-e2e@e26033e1faaf865899c486ffe17dabdf17b90aae
         env:
           ISTIO_VERSION: ${{ matrix.versions.istio }}
           KUBERNETES_VERSION: ${{ matrix.versions.kubernetes }}
           ALS_ANALYZER: ${{ matrix.analyzer }}
         with:
-          e2e-file: test/e2e-v2/cases/istio/als/e2e.yaml
+          e2e-file: ${{ matrix.storage == 'BanyanDB' && 
'test/e2e-v2/cases/istio/als/banyandb/e2e.yaml' || 
'test/e2e-v2/cases/istio/als/e2e.yaml' }}
       - if: ${{ failure() }}
         run: |
           df -h
@@ -847,7 +853,7 @@ jobs:
         if: ${{ failure() }}
         name: Upload Logs
         with:
-          name: test-logs-${{ matrix.test.name }}
+          name: test-istio-als-logs-${{ matrix.storage }}-${{ matrix.analyzer 
}}-istio-${{ matrix.versions.istio }}-k8s-${{ matrix.versions.kubernetes }}
           path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
           overwrite: true
 
@@ -855,7 +861,7 @@ jobs:
     if: |
       ( always() && ! cancelled() ) &&
       ((github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || needs.changes.outputs.oap == 'true')
-    name: E2E test
+    name: Istio Ambient ALS
     needs: [docker]
     runs-on: ubuntu-24.04
     timeout-minutes: 60
@@ -890,7 +896,7 @@ jobs:
       - uses: actions/download-artifact@v4
         name: Download docker images
         with:
-          name: docker-images-11
+          name: docker-images-25
           path: docker-images
       - name: Load docker images
         run: |
@@ -927,7 +933,7 @@ jobs:
     if: |
       ( always() && ! cancelled() ) &&
       ((github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || needs.changes.outputs.oap == 'true')
-    name: E2E test
+    name: Java ${{ matrix.java-version }}
     needs: [docker]
     runs-on: ubuntu-latest
     timeout-minutes: 60
@@ -977,7 +983,7 @@ jobs:
     if: |
       ( always() && ! cancelled() ) &&
       ((github.event_name == 'schedule' && github.repository == 
'apache/skywalking') || needs.changes.outputs.oap == 'true')
-    name: E2E test
+    name: ${{ matrix.test.name }}
     needs: [docker, dist-tar]
     runs-on: ${{ matrix.test.runs-on || 'ubuntu-latest' }}
     timeout-minutes: 60
@@ -1001,7 +1007,7 @@ jobs:
       - uses: actions/download-artifact@v4
         name: Download docker images
         with:
-          name: docker-images-11
+          name: docker-images-25
           path: docker-images
       - name: Load docker images
         run: |
diff --git a/test/e2e-v2/cases/istio/als/als-cases.yaml 
b/test/e2e-v2/cases/istio/als/als-cases.yaml
new file mode 100644
index 0000000000..0f298a2410
--- /dev/null
+++ b/test/e2e-v2/cases/istio/als/als-cases.yaml
@@ -0,0 +1,154 @@
+# 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.
+
+# Shared verify cases for Istio ALS tests (ES and BanyanDB variants)
+
+cases:
+  # service list
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 service ls
+    expected: expected/service.yml
+  # service instance list
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage
+    expected: expected/service-instance.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews
+    expected: expected/service-instance.yml
+  # service endpoint
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 endpoint list --service-name=e2e::productpage
+    expected: expected/service-endpoint-productpage.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 endpoint list --service-name=e2e::reviews
+    expected: expected/service-endpoint-reviews.yml
+
+  # service metrics: e2e::productpage
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sla --service-name=e2e::productpage
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_cpm --service-name=e2e::productpage
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_resp_time --service-name=e2e::productpage
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_apdex --service-name=e2e::productpage
+    expected: expected/metrics-has-value.yml
+  # service metrics: e2e::reviews
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sla --service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_cpm --service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_resp_time --service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_apdex --service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sidecar_internal_req_latency_nanos 
--service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sidecar_internal_resp_latency_nanos 
--service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  # service instance metrics: e2e::productpage
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_resp_time 
--service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_cpm --service-name=e2e::productpage 
--instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sla --service-name=e2e::productpage 
--instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+  # service instance metrics: e2e::reviews
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_resp_time 
--service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_cpm --service-name=e2e::reviews 
--instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sla --service-name=e2e::reviews 
--instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sidecar_internal_req_latency_nanos 
--service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sidecar_internal_resp_latency_nanos 
--service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
+      )
+    expected: expected/metrics-has-value.yml
+
+  # service endpoint metrics: e2e::productpage GET:/productpage
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_cpm --endpoint-name=GET:/productpage 
--service-name=e2e::productpage
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_resp_time --endpoint-name=GET:/productpage 
--service-name=e2e::productpage
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sla --endpoint-name=GET:/productpage 
--service-name=e2e::productpage
+    expected: expected/metrics-has-value.yml
+  # service endpoint metrics: e2e::reviews GET:/reviews/0
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_cpm --endpoint-name=GET:/reviews/0 
--service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_resp_time --endpoint-name=GET:/reviews/0 
--service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sla --endpoint-name=GET:/reviews/0 
--service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sidecar_internal_req_latency_nanos 
--endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sidecar_internal_resp_latency_nanos 
--endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+
+  # dependency service
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 dependency service --service-name=e2e::productpage
+    expected: expected/dependency-services-productpage.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 dependency service --service-name=e2e::reviews
+    expected: expected/dependency-services-reviews.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 dependency instance --service-name=e2e::productpage 
--dest-service-name=e2e::reviews
+    expected: expected/dependency-services-instance-productpage.yml
+
+  # service relation metrics
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_relation_client_cpm  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_relation_server_cpm  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_client_sidecar_internal_req_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_server_sidecar_internal_req_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_client_sidecar_internal_resp_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_server_sidecar_internal_resp_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+    expected: expected/metrics-has-value.yml
+  # service instance relation metrics, e2e::productpage -> e2e::reviews
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_relation_client_cpm \
+        --service-name=e2e::productpage --instance-name=$( \
+          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' - ) \
+        --dest-service-name=e2e::reviews --dest-instance-name=$( \
+          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' - ) \
+
+    expected: expected/metrics-has-value.yml
+  - query: |
+      swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_relation_server_cpm \
+        --service-name=e2e::productpage --instance-name=$( \
+          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' - ) \
+        --dest-service-name=e2e::reviews --dest-instance-name=$( \
+          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' - ) \
+
+    expected: expected/metrics-has-value.yml
diff --git a/test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml 
b/test/e2e-v2/cases/istio/als/banyandb/e2e.yaml
similarity index 54%
copy from test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml
copy to test/e2e-v2/cases/istio/als/banyandb/e2e.yaml
index 269367aa58..dd4c874901 100644
--- a/test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml
+++ b/test/e2e-v2/cases/istio/als/banyandb/e2e.yaml
@@ -13,12 +13,12 @@
 # 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.
+# Istio ALS test with BanyanDB cluster mode (liaison x2, data x2, DNS 
discovery, native metadata)
 
 setup:
   env: kind
-  file: ../../kind.yaml
-  init-system-environment: ../../../../../script/env
+  file: ../../kind.k${KUBERNETES_VERSION}.yaml
+  init-system-environment: ../../../../script/env
   kind:
     import-images:
       - skywalking/ui:latest
@@ -36,49 +36,67 @@ setup:
       command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
     - name: install kubectl
       command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
+    - name: install istio
+      command: |
+        bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh istioctl
+        istioctl install -y --set profile=demo \
+          --set 
meshConfig.defaultConfig.envoyAccessLogService.address=skywalking-oap.istio-system:11800
 \
+          --set meshConfig.enableEnvoyAccessLogService=true
+        kubectl label namespace default istio-injection=enabled
     - name: Install helm
       command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh helm
-    - name: Install kubectl
-      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
-    - name: Install SkyWalking
+    - name: Install SkyWalking with BanyanDB cluster
+      # To enable BanyanDB access logs for debugging, add these flags to the 
helm install:
+      #   --set 
"banyandb.cluster.liaison.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
+      #   --set "banyandb.cluster.liaison.env[0].value=\"true\"" \
+      #   --set 
"banyandb.cluster.liaison.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" \
+      #   --set "banyandb.cluster.liaison.env[1].value=\"true\"" \
+      #   --set 
"banyandb.cluster.liaison.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
+      #   --set "banyandb.cluster.liaison.env[2].value=/tmp"
       command: |
-        kubectl create namespace istio-system
         helm -n istio-system install skywalking \
           oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
           --version "0.0.0-${SW_KUBERNETES_COMMIT_SHA}" \
           --set fullnameOverride=skywalking \
           --set elasticsearch.enabled=false \
-          --set banyandb.enabled=true \
-          --set banyandb.image.tag=${SW_BANYANDB_COMMIT} \
-          --set banyandb.image.repository=ghcr.io/apache/skywalking-banyandb \
+          --set oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=$ALS_ANALYZER \
+          --set oap.env.SW_ENVOY_METRIC_ALS_TCP_ANALYSIS=$ALS_ANALYZER \
+          --set oap.env.K8S_SERVICE_NAME_RULE='e2e::${service.metadata.name}' \
+          --set oap.env.SW_HEALTH_CHECKER=default \
+          --set oap.envoy.als.enabled=true \
           --set oap.replicas=1 \
           --set ui.image.repository=skywalking/ui \
           --set ui.image.tag=latest \
           --set oap.image.tag=latest \
           --set oap.image.repository=skywalking/oap \
           --set oap.storageType=banyandb \
-          --set oap.env.SW_HEALTH_CHECKER=default \
-          --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
-          --set "banyandb.standalone.env[0].value=\"true\"" \
-          --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
-          --set "banyandb.standalone.env[1].value=\"true\"" \
-          --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
-          --set "banyandb.standalone.env[2].value=/tmp" \
-          -f test/e2e-v2/cases/profiling/ebpf/kubernetes-values.yaml
+          --set banyandb.enabled=true \
+          --set banyandb.standalone.enabled=false \
+          --set banyandb.cluster.enabled=true \
+          --set banyandb.cluster.liaison.replicas=2 \
+          --set banyandb.cluster.data.nodeTemplate.replicas=2 \
+          --set banyandb.image.tag=${SW_BANYANDB_COMMIT} \
+          --set banyandb.image.repository=ghcr.io/apache/skywalking-banyandb \
+          -f test/e2e-v2/cases/istio/values.yaml
       wait:
         - namespace: istio-system
           resource: deployments/skywalking-oap
           for: condition=available
-    - name: Deploy rover services
+    - name: Deploy demo services
       command: |
-        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/1.18.0/samples/bookinfo/platform/kube/bookinfo.yaml
-        envsubst < test/e2e-v2/cases/profiling/ebpf/access_log/rover.yaml | 
kubectl apply -f -
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/bookinfo-gateway.yaml
+        # Enable TCP services
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo-ratings-v2.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo-db.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/destination-rule-all.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/virtual-service-ratings-db.yaml
       wait:
         - namespace: default
           resource: pod
           for: condition=Ready
     - name: Generate traffic
-      path: ../traffic-gen.yaml
+      path: ../../traffic-gen.yaml
       wait:
         - namespace: default
           resource: pod
@@ -88,10 +106,10 @@ setup:
 verify:
   retry:
     count: 20
-    interval: 10s
+    interval: 15s
   cases:
     - includes:
-        - ../accesslog-cases.yaml
+        - ../als-cases.yaml
 
 cleanup:
   on: always
diff --git a/test/e2e-v2/cases/istio/als/e2e.yaml 
b/test/e2e-v2/cases/istio/als/e2e.yaml
index cd7957e886..6ff8d1b526 100644
--- a/test/e2e-v2/cases/istio/als/e2e.yaml
+++ b/test/e2e-v2/cases/istio/als/e2e.yaml
@@ -102,139 +102,5 @@ verify:
     count: 20
     interval: 15s
   cases:
-    # service list
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 service ls
-      expected: expected/service.yml
-    # service instance list
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage
-      expected: expected/service-instance.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews
-      expected: expected/service-instance.yml
-    # service endpoint
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 endpoint list --service-name=e2e::productpage
-      expected: expected/service-endpoint-productpage.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 endpoint list --service-name=e2e::reviews
-      expected: expected/service-endpoint-reviews.yml
-
-    # service metrics: e2e::productpage
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sla --service-name=e2e::productpage
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_cpm --service-name=e2e::productpage
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_resp_time --service-name=e2e::productpage
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_apdex --service-name=e2e::productpage
-      expected: expected/metrics-has-value.yml
-    # service metrics: e2e::reviews
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sla --service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_cpm --service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_resp_time --service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_apdex --service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sidecar_internal_req_latency_nanos 
--service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_sidecar_internal_resp_latency_nanos 
--service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    # service instance metrics: e2e::productpage
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_resp_time 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_cpm --service-name=e2e::productpage 
--instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sla --service-name=e2e::productpage 
--instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    # service instance metrics: e2e::reviews
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_resp_time 
--service-name=e2e::reviews --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_cpm --service-name=e2e::reviews 
--instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sla --service-name=e2e::reviews 
--instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sidecar_internal_req_latency_nanos 
--service-name=e2e::reviews --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_sidecar_internal_resp_latency_nanos 
--service-name=e2e::reviews --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-
-    # service endpoint metrics: e2e::productpage GET:/productpage
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_cpm --endpoint-name=GET:/productpage 
--service-name=e2e::productpage
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_resp_time --endpoint-name=GET:/productpage 
--service-name=e2e::productpage
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sla --endpoint-name=GET:/productpage 
--service-name=e2e::productpage
-      expected: expected/metrics-has-value.yml
-    # service endpoint metrics: e2e::reviews GET:/reviews/0
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_cpm --endpoint-name=GET:/reviews/0 
--service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_resp_time --endpoint-name=GET:/reviews/0 
--service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sla --endpoint-name=GET:/reviews/0 
--service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sidecar_internal_req_latency_nanos 
--endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=endpoint_sidecar_internal_resp_latency_nanos 
--endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-
-    # dependency service
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 dependency service --service-name=e2e::productpage
-      expected: expected/dependency-services-productpage.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 dependency service --service-name=e2e::reviews
-      expected: expected/dependency-services-reviews.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 dependency instance --service-name=e2e::productpage 
--dest-service-name=e2e::reviews
-      expected: expected/dependency-services-instance-productpage.yml
-
-    # service relation metrics
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_relation_client_cpm  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_relation_server_cpm  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_client_sidecar_internal_req_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_server_sidecar_internal_req_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_client_sidecar_internal_resp_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_server_sidecar_internal_resp_latency_nanos  
--service-name=e2e::productpage --dest-service-name=e2e::reviews
-      expected: expected/metrics-has-value.yml
-    # service instance relation metrics, e2e::productpage -> e2e::reviews
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_relation_client_cpm \
-          --service-name=e2e::productpage --instance-name=$( \
-            swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' - ) \
-          --dest-service-name=e2e::reviews --dest-instance-name=$( \
-            swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' - ) \
-
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=service_instance_relation_server_cpm \
-          --service-name=e2e::productpage --instance-name=$( \
-            swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' - ) \
-          --dest-service-name=e2e::reviews --dest-instance-name=$( \
-            swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::reviews | yq e '.[0].name' - ) \
-
-      expected: expected/metrics-has-value.yml
+    - includes:
+        - als-cases.yaml
diff --git a/test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml 
b/test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml
new file mode 100644
index 0000000000..84489087ab
--- /dev/null
+++ b/test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml
@@ -0,0 +1,132 @@
+# 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.
+
+# Istio Envoy Metrics Service test with BanyanDB cluster mode (liaison x2, 
data x2, DNS discovery, native metadata)
+
+setup:
+  env: kind
+  file: ../../kind.k${KUBERNETES_VERSION}.yaml
+  init-system-environment: ../../../../script/env
+  kind:
+    import-images:
+      - skywalking/ui:latest
+      - skywalking/oap:latest
+    expose-ports:
+      - namespace: istio-system
+        resource: service/skywalking-ui
+        port: 80
+  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
+    - name: install kubectl
+      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
+    - name: install istio
+      command: |
+        bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh istioctl
+        istioctl install -y --set profile=demo \
+                  --set 
meshConfig.defaultConfig.envoyMetricsService.address=skywalking-oap.istio-system:11800
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[0]=.*membership_healthy.*'
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[1]=.*upstream_cx_active.*'
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[2]=.*upstream_cx_total.*'
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[3]=.*upstream_rq_active.*'
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[4]=.*upstream_rq_total.*'
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[5]=.*upstream_rq_pending_active.*'
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[6]=.*lb_healthy_panic.*'
 \
+                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[7]=.*upstream_cx_none_healthy.*'
 \
+                  --set values.telemetry.v2.enabled=false
+        kubectl label namespace default istio-injection=enabled
+    - name: Install helm
+      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh helm
+    - name: Install SkyWalking with BanyanDB cluster
+      # To enable BanyanDB access logs for debugging, add these flags to the 
helm install:
+      #   --set 
"banyandb.cluster.liaison.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
+      #   --set "banyandb.cluster.liaison.env[0].value=\"true\"" \
+      #   --set 
"banyandb.cluster.liaison.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" \
+      #   --set "banyandb.cluster.liaison.env[1].value=\"true\"" \
+      #   --set 
"banyandb.cluster.liaison.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
+      #   --set "banyandb.cluster.liaison.env[2].value=/tmp"
+      command: |
+        helm -n istio-system install skywalking \
+          oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
+          --version "0.0.0-${SW_KUBERNETES_COMMIT_SHA}" \
+          --set fullnameOverride=skywalking \
+          --set elasticsearch.enabled=false \
+          --set oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=$ALS_ANALYZER \
+          --set oap.env.SW_ENVOY_METRIC_ALS_TCP_ANALYSIS=$ALS_ANALYZER \
+          --set oap.env.K8S_SERVICE_NAME_RULE='e2e::${service.metadata.name}' \
+          --set oap.env.SW_HEALTH_CHECKER=default \
+          --set oap.replicas=1 \
+          --set ui.image.repository=skywalking/ui \
+          --set ui.image.tag=latest \
+          --set oap.image.tag=latest \
+          --set oap.image.repository=skywalking/oap \
+          --set oap.storageType=banyandb \
+          --set banyandb.enabled=true \
+          --set banyandb.standalone.enabled=false \
+          --set banyandb.cluster.enabled=true \
+          --set banyandb.cluster.liaison.replicas=2 \
+          --set banyandb.cluster.data.nodeTemplate.replicas=2 \
+          --set banyandb.image.tag=${SW_BANYANDB_COMMIT} \
+          --set banyandb.image.repository=ghcr.io/apache/skywalking-banyandb \
+          -f test/e2e-v2/cases/istio/values.yaml
+      wait:
+        - namespace: istio-system
+          resource: deployments/skywalking-oap
+          for: condition=available
+    - name: Deploy demo services
+      command: |
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/bookinfo-gateway.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/destination-rule-all.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/virtual-service-all-v1.yaml
+      wait:
+        - namespace: default
+          resource: pod
+          for: condition=Ready
+    - name: Generate traffic
+      path: ../../traffic-gen.yaml
+      wait:
+        - namespace: default
+          resource: pod
+          for: condition=Ready
+  timeout: 25m
+
+verify:
+  retry:
+    count: 20
+    interval: 15s
+  cases:
+    - includes:
+        - ../metrics-cases.yaml
+
+cleanup:
+  on: always
+  collect:
+    on: failure
+    output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+    items:
+      - namespace: istio-system
+        label-selector: app.kubernetes.io/name=banyandb
+        paths:
+          - /tmp/trace/
+          - /tmp/stream/
+          - /tmp/measure/
+          - /tmp/property/
+          - /tmp/schema-property/
+          - /tmp/accesslog/
diff --git a/test/e2e-v2/cases/istio/metrics/e2e.yaml 
b/test/e2e-v2/cases/istio/metrics/e2e.yaml
index f11d083caf..2097661d45 100644
--- a/test/e2e-v2/cases/istio/metrics/e2e.yaml
+++ b/test/e2e-v2/cases/istio/metrics/e2e.yaml
@@ -109,111 +109,5 @@ verify:
     count: 20
     interval: 10s
   cases:
-    # service list
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 service ls
-      expected: expected/service.yml
-    # service instance list
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage
-      expected: expected/service-instance.yml
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway
-      expected: expected/service-instance.yml
-
-    # service instance metrics: e2e::productpage
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_heap_memory_used 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_heap_memory_max_used 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_allocated 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_allocated_max 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_physical_size 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_physical_size_max 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_worker_threads --service-name=e2e::productpage 
--instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_worker_threads_max 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    # service instance metrics: e2e::istio-ingressgateway
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_heap_memory_used 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_heap_memory_max_used 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_allocated 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_allocated_max 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_physical_size 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_memory_physical_size_max 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_worker_threads 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec --expression=envoy_worker_threads_max 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value.yml
-
-    # service instance labeled metrics: e2e::productpage, label: e2e::details
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec 
--expression=envoy_cluster_membership_healthy{cluster_name=\"e2e::details\"} 
--service-name=e2e::productpage --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value-label.yml
-    # service instance labeled metrics: e2e::productpage, label: e2e::details
-    - query: |
-        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec 
--expression=envoy_cluster_membership_healthy{cluster_name=\"e2e::details\"} 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
-          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )
-      expected: expected/metrics-has-value-label.yml
-
-    # dependency service
-    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 dependency service --service-name=e2e::productpage
-      expected: expected/dependency-services-productpage.yml
+    - includes:
+        - metrics-cases.yaml
diff --git a/test/e2e-v2/cases/istio/metrics/e2e.yaml 
b/test/e2e-v2/cases/istio/metrics/metrics-cases.yaml
similarity index 68%
copy from test/e2e-v2/cases/istio/metrics/e2e.yaml
copy to test/e2e-v2/cases/istio/metrics/metrics-cases.yaml
index f11d083caf..35134426aa 100644
--- a/test/e2e-v2/cases/istio/metrics/e2e.yaml
+++ b/test/e2e-v2/cases/istio/metrics/metrics-cases.yaml
@@ -13,102 +13,9 @@
 # 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.
+# Shared verify cases for Istio metrics tests (ES and BanyanDB variants)
 
-setup:
-  env: kind
-  file: ../kind.k${KUBERNETES_VERSION}.yaml
-  init-system-environment: ../../../script/env
-  kind:
-    import-images:
-      - skywalking/ui:latest
-      - skywalking/oap:latest
-    expose-ports:
-      - namespace: istio-system
-        resource: service/skywalking-ui
-        port: 80
-  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
-    - name: install kubectl
-      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
-    - name: install istio
-      command: |
-        bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh istioctl
-        istioctl install -y --set profile=demo \
-                  --set 
meshConfig.defaultConfig.envoyMetricsService.address=skywalking-oap.istio-system:11800
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[0]=.*membership_healthy.*'
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[1]=.*upstream_cx_active.*'
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[2]=.*upstream_cx_total.*'
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[3]=.*upstream_rq_active.*'
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[4]=.*upstream_rq_total.*'
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[5]=.*upstream_rq_pending_active.*'
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[6]=.*lb_healthy_panic.*'
 \
-                  --set 
'meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[7]=.*upstream_cx_none_healthy.*'
 \
-                  --set values.telemetry.v2.enabled=false # disable the 
metadata-exchange extension intentionally to make sure metrics service doesn't 
rely on it
-        kubectl label namespace default istio-injection=enabled
-    - name: Install helm
-      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh helm
-    - name: Install kubectl
-      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
-    - name: Install ECK operator
-      command: |
-        helm pull oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
-          --version "0.0.0-${SW_KUBERNETES_COMMIT_SHA}" --untar
-        helm dep up skywalking-helm
-        helm -n istio-system install eck-operator 
skywalking-helm/charts/eck-operator-*.tgz \
-          --create-namespace
-        kubectl -n istio-system rollout status --watch --timeout=120s 
statefulset/elastic-operator
-    - name: Install SkyWalking
-      command: |
-        helm -n istio-system install skywalking \
-          oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
-          --version "0.0.0-${SW_KUBERNETES_COMMIT_SHA}" \
-          --set fullnameOverride=skywalking \
-          --set eckOperator.enabled=false \
-          --set oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=$ALS_ANALYZER \
-          --set oap.env.SW_ENVOY_METRIC_ALS_TCP_ANALYSIS=$ALS_ANALYZER \
-          --set oap.env.K8S_SERVICE_NAME_RULE='e2e::${service.metadata.name}' \
-          --set oap.env.SW_HEALTH_CHECKER=default \
-          --set oap.envoy.als.enabled=true \
-          --set oap.replicas=1 \
-          --set ui.image.repository=skywalking/ui \
-          --set ui.image.tag=latest \
-          --set oap.image.tag=latest \
-          --set oap.image.repository=skywalking/oap \
-          --set oap.storageType=elasticsearch \
-          -f test/e2e-v2/cases/istio/values.yaml
-      wait:
-        - namespace: istio-system
-          resource: deployments/skywalking-oap
-          for: condition=available
-    - name: Deploy demo services
-      command: |
-        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo.yaml
-        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/bookinfo-gateway.yaml
-        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/destination-rule-all.yaml
-        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/virtual-service-all-v1.yaml
-      wait:
-        - namespace: default
-          resource: pod
-          for: condition=Ready
-    - name: Generate traffic
-      path: ../traffic-gen.yaml
-      wait:
-        - namespace: default
-          resource: pod
-          for: condition=Ready
-  timeout: 25m
-
-verify:
-  retry:
-    count: 20
-    interval: 10s
-  cases:
+cases:
     # service list
     - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 service ls
       expected: expected/service.yml
@@ -207,7 +114,7 @@ verify:
           swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::productpage | yq e '.[0].name' -
         )
       expected: expected/metrics-has-value-label.yml
-    # service instance labeled metrics: e2e::productpage, label: e2e::details
+    # service instance labeled metrics: e2e::istio-ingressgateway, label: 
e2e::details
     - query: |
         swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 metrics exec 
--expression=envoy_cluster_membership_healthy{cluster_name=\"e2e::details\"} 
--service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
diff --git a/test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml 
b/test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml
index 269367aa58..f563f9ded2 100644
--- a/test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml
+++ b/test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml
@@ -41,6 +41,13 @@ setup:
     - name: Install kubectl
       command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
     - name: Install SkyWalking
+      # To enable BanyanDB access logs for debugging, add these flags to the 
helm install:
+      #   --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
+      #   --set "banyandb.standalone.env[0].value=\"true\"" \
+      #   --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
+      #   --set "banyandb.standalone.env[1].value=\"true\"" \
+      #   --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
+      #   --set "banyandb.standalone.env[2].value=/tmp"
       command: |
         kubectl create namespace istio-system
         helm -n istio-system install skywalking \
@@ -58,12 +65,6 @@ setup:
           --set oap.image.repository=skywalking/oap \
           --set oap.storageType=banyandb \
           --set oap.env.SW_HEALTH_CHECKER=default \
-          --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
-          --set "banyandb.standalone.env[0].value=\"true\"" \
-          --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
-          --set "banyandb.standalone.env[1].value=\"true\"" \
-          --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
-          --set "banyandb.standalone.env[2].value=/tmp" \
           -f test/e2e-v2/cases/profiling/ebpf/kubernetes-values.yaml
       wait:
         - namespace: istio-system
diff --git a/test/e2e-v2/cases/profiling/ebpf/continuous/banyandb/e2e.yaml 
b/test/e2e-v2/cases/profiling/ebpf/continuous/banyandb/e2e.yaml
index 691f6e830e..618e14c4fc 100644
--- a/test/e2e-v2/cases/profiling/ebpf/continuous/banyandb/e2e.yaml
+++ b/test/e2e-v2/cases/profiling/ebpf/continuous/banyandb/e2e.yaml
@@ -42,6 +42,13 @@ setup:
     - name: Install kubectl
       command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
     - name: Install SkyWalking
+      # To enable BanyanDB access logs for debugging, add these flags to the 
helm install:
+      #   --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
+      #   --set "banyandb.standalone.env[0].value=\"true\"" \
+      #   --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
+      #   --set "banyandb.standalone.env[1].value=\"true\"" \
+      #   --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
+      #   --set "banyandb.standalone.env[2].value=/tmp"
       command: |
         kubectl create namespace istio-system
         helm -n istio-system install skywalking \
@@ -59,12 +66,6 @@ setup:
           --set oap.image.repository=skywalking/oap \
           --set oap.storageType=banyandb \
           --set oap.env.SW_HEALTH_CHECKER=default \
-          --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
-          --set "banyandb.standalone.env[0].value=\"true\"" \
-          --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
-          --set "banyandb.standalone.env[1].value=\"true\"" \
-          --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
-          --set "banyandb.standalone.env[2].value=/tmp" \
           -f test/e2e-v2/cases/profiling/ebpf/kubernetes-values.yaml
       wait:
         - namespace: istio-system
diff --git a/test/e2e-v2/cases/profiling/ebpf/network/banyandb/e2e.yaml 
b/test/e2e-v2/cases/profiling/ebpf/network/banyandb/e2e.yaml
index e6bdb0aea1..584bf001c7 100644
--- a/test/e2e-v2/cases/profiling/ebpf/network/banyandb/e2e.yaml
+++ b/test/e2e-v2/cases/profiling/ebpf/network/banyandb/e2e.yaml
@@ -45,6 +45,13 @@ setup:
     - name: Install kubectl
       command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
     - name: Install SkyWalking
+      # To enable BanyanDB access logs for debugging, add these flags to the 
helm install:
+      #   --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
+      #   --set "banyandb.standalone.env[0].value=\"true\"" \
+      #   --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
+      #   --set "banyandb.standalone.env[1].value=\"true\"" \
+      #   --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
+      #   --set "banyandb.standalone.env[2].value=/tmp"
       command: |
         kubectl create namespace istio-system
         helm -n istio-system install skywalking \
@@ -62,12 +69,6 @@ setup:
           --set oap.image.repository=skywalking/oap \
           --set oap.storageType=banyandb \
           --set oap.env.SW_HEALTH_CHECKER=default \
-          --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
-          --set "banyandb.standalone.env[0].value=\"true\"" \
-          --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
-          --set "banyandb.standalone.env[1].value=\"true\"" \
-          --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
-          --set "banyandb.standalone.env[2].value=/tmp" \
           -f test/e2e-v2/cases/profiling/ebpf/network/kubernetes-values.yaml
       wait:
         - namespace: istio-system
diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml 
b/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml
index 184d80df80..b990a2e446 100644
--- a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml
+++ b/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml
@@ -42,6 +42,13 @@ setup:
     - name: Install kubectl
       command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
     - name: Install SkyWalking
+      # To enable BanyanDB access logs for debugging, add these flags to the 
helm install:
+      #   --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
+      #   --set "banyandb.standalone.env[0].value=\"true\"" \
+      #   --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
+      #   --set "banyandb.standalone.env[1].value=\"true\"" \
+      #   --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
+      #   --set "banyandb.standalone.env[2].value=/tmp"
       command: |
         kubectl create namespace istio-system
         helm -n istio-system install skywalking \
@@ -59,12 +66,6 @@ setup:
           --set oap.image.repository=skywalking/oap \
           --set oap.storageType=banyandb \
           --set oap.env.SW_HEALTH_CHECKER=default \
-          --set 
"banyandb.standalone.env[0].name=BYDB_ENABLE_INGESTION_ACCESS_LOG" \
-          --set "banyandb.standalone.env[0].value=\"true\"" \
-          --set "banyandb.standalone.env[1].name=BYDB_ENABLE_QUERY_ACCESS_LOG" 
\
-          --set "banyandb.standalone.env[1].value=\"true\"" \
-          --set "banyandb.standalone.env[2].name=BYDB_ACCESS_LOG_ROOT_PATH" \
-          --set "banyandb.standalone.env[2].value=/tmp" \
           -f test/e2e-v2/cases/profiling/ebpf/kubernetes-values.yaml
       wait:
         - namespace: istio-system
diff --git 
a/test/e2e-v2/cases/storage/banyandb/data-generate/docker-compose.yml 
b/test/e2e-v2/cases/storage/banyandb/data-generate/docker-compose.yml
index 10c048ffaf..d61a317c5a 100644
--- a/test/e2e-v2/cases/storage/banyandb/data-generate/docker-compose.yml
+++ b/test/e2e-v2/cases/storage/banyandb/data-generate/docker-compose.yml
@@ -21,7 +21,7 @@ services:
     ports:
       - 17912:17912
       - 17913:17913
-    command: standalone --measure-metadata-cache-wait-duration 1m 
--stream-metadata-cache-wait-duration 1m --enable-ingestion-access-log 
--enable-query-access-log --access-log-root-path /tmp
+    command: standalone --measure-metadata-cache-wait-duration 1m 
--stream-metadata-cache-wait-duration 1m
     networks:
       - e2e
     healthcheck:
diff --git a/test/e2e-v2/cases/storage/banyandb/docker-compose.yml 
b/test/e2e-v2/cases/storage/banyandb/docker-compose.yml
index 32b44ec207..f51dabc4eb 100644
--- a/test/e2e-v2/cases/storage/banyandb/docker-compose.yml
+++ b/test/e2e-v2/cases/storage/banyandb/docker-compose.yml
@@ -25,7 +25,7 @@ services:
     entrypoint: /bin/sh -c
     command: |
       "chmod 600 /auth-config.yaml &&
-       /banyand standalone --measure-metadata-cache-wait-duration 1m 
--stream-metadata-cache-wait-duration 1m --enable-ingestion-access-log 
--enable-query-access-log --access-log-root-path /tmp 
--auth-config-file=/auth-config.yaml"
+       /banyand standalone --measure-metadata-cache-wait-duration 1m 
--stream-metadata-cache-wait-duration 1m --auth-config-file=/auth-config.yaml"
     networks:
       - e2e
 
diff --git a/test/e2e-v2/cases/storage/banyandb/tls/docker-compose.yml 
b/test/e2e-v2/cases/storage/banyandb/tls/docker-compose.yml
index fe842021b6..1218179a63 100644
--- a/test/e2e-v2/cases/storage/banyandb/tls/docker-compose.yml
+++ b/test/e2e-v2/cases/storage/banyandb/tls/docker-compose.yml
@@ -22,7 +22,7 @@ services:
       service: banyandb
     volumes:
       - ./tls:/tls
-    command: standalone --tls=true --key-file=/tls/cert.key 
--cert-file=/tls/cert.crt --http-grpc-cert-file=/tls/ca.crt 
--enable-ingestion-access-log --enable-query-access-log --access-log-root-path 
/tmp
+    command: standalone --tls=true --key-file=/tls/cert.key 
--cert-file=/tls/cert.crt --http-grpc-cert-file=/tls/ca.crt
     networks:
       - e2e
 
diff --git a/test/e2e-v2/script/docker-compose/base-compose.yml 
b/test/e2e-v2/script/docker-compose/base-compose.yml
index d421ea6d28..2ed82f1c7a 100644
--- a/test/e2e-v2/script/docker-compose/base-compose.yml
+++ b/test/e2e-v2/script/docker-compose/base-compose.yml
@@ -60,7 +60,9 @@ services:
     ports:
       - 17912:17912
       - 17913:17913
-    command: standalone --measure-metadata-cache-wait-duration 1m 
--stream-metadata-cache-wait-duration 1m --enable-ingestion-access-log 
--enable-query-access-log --access-log-root-path /tmp
+    # Access log flags are for debugging only. Uncomment when investigating 
e2e failures:
+    # --enable-ingestion-access-log --enable-query-access-log 
--access-log-root-path /tmp
+    command: standalone --measure-metadata-cache-wait-duration 1m 
--stream-metadata-cache-wait-duration 1m
     healthcheck:
       test: [ "CMD", "sh", "-c", "nc -nz 127.0.0.1 17912" ]
       interval: 5s

Reply via email to