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

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


The following commit(s) were added to refs/heads/main by this push:
     new 31465f3  Add 13 e2e test cases for infrastructure monitoring and TLS 
(#23)
31465f3 is described below

commit 31465f39f3ce164982efd1b2e9fe4247dedccae7
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Fri Mar 20 15:13:12 2026 +0800

    Add 13 e2e test cases for infrastructure monitoring and TLS (#23)
    
    New E2E Tests (13)
    
      - mTLS (mutual TLS with client certificates)
      - RabbitMQ, RocketMQ, ActiveMQ, Pulsar, Kafka, Redis, MongoDB, Flink 
(OTEL metrics collection)
      - AWS DynamoDB, S3, EKS, API Gateway (mock sender metrics)
    
      Bug Fix
    
      - Fix Rules.loadRules() glob matching: patterns like rabbitmq/* were 
matched as exact strings, failing to load any sub-directory OTEL rules. Only 5 
of 55 rules loaded. Now
      dir/* patterns match any rule name starting with the directory prefix.
    
      Documentation
    
      - Add docs/version-mapping.md: maps each distro release to upstream 
Apache SkyWalking version.
      - Add test/doc-scripts/verify-version-mapping.sh: CI verification that 
the dev row matches the actual submodule commit.
    
      CI
    
      - Add OTEL_COLLECTOR_VERSION and SW_AGENT_JDK_VERSION to e2e env file.
      - Extend JDK/Maven cache conditions for AWS mock-sender tests.
      - Add version-mapping doc verification to Build & Test job.
      - Total e2e tests: 22 → 35.
---
 .github/workflows/ci.yml                           |  39 +++-
 changes/changes.md                                 |   3 +
 docs/version-mapping.md                            |  18 ++
 .../meter/analyzer/v2/prometheus/rule/Rules.java   |  22 ++-
 test/doc-scripts/verify-version-mapping.sh         | 121 ++++++++++++
 test/e2e/cases/activemq/docker-compose.yml         | 118 ++++++++++++
 test/e2e/cases/activemq/e2e.yaml                   |  35 ++++
 test/e2e/cases/aws-api-gateway/docker-compose.yml  |  70 +++++++
 test/e2e/cases/aws-api-gateway/e2e.yaml            |  42 +++++
 test/e2e/cases/aws-dynamodb/docker-compose.yml     |  70 +++++++
 test/e2e/cases/aws-dynamodb/e2e.yaml               |  42 +++++
 test/e2e/cases/aws-eks/docker-compose.yml          |  70 +++++++
 test/e2e/cases/aws-eks/e2e.yaml                    |  42 +++++
 test/e2e/cases/aws-s3/docker-compose.yml           |  70 +++++++
 test/e2e/cases/aws-s3/e2e.yaml                     |  42 +++++
 test/e2e/cases/flink/docker-compose.yml            | 113 +++++++++++
 test/e2e/cases/flink/e2e.yaml                      |  42 +++++
 test/e2e/cases/kafka-monitoring/docker-compose.yml | 141 ++++++++++++++
 test/e2e/cases/kafka-monitoring/e2e.yaml           |  35 ++++
 test/e2e/cases/mongodb/docker-compose.yml          | 119 ++++++++++++
 test/e2e/cases/mongodb/e2e.yaml                    |  35 ++++
 test/e2e/cases/mtls/docker-compose.yml             | 144 ++++++++++++++
 test/e2e/cases/mtls/e2e.yaml                       |  45 +++++
 test/e2e/cases/pulsar/docker-compose.yml           | 156 +++++++++++++++
 test/e2e/cases/pulsar/e2e.yaml                     |  35 ++++
 test/e2e/cases/rabbitmq/docker-compose.yml         | 210 +++++++++++++++++++++
 test/e2e/cases/rabbitmq/e2e.yaml                   |  35 ++++
 test/e2e/cases/redis/docker-compose.yml            | 137 ++++++++++++++
 test/e2e/cases/redis/e2e.yaml                      |  35 ++++
 test/e2e/cases/rocketmq/docker-compose.yml         | 135 +++++++++++++
 test/e2e/cases/rocketmq/e2e.yaml                   |  35 ++++
 test/e2e/script/env                                |   6 +
 32 files changed, 2257 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1d93dc6..c8392bd 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -140,6 +140,11 @@ jobs:
       - name: Test
         run: make test
 
+      - name: Verify version-mapping doc
+        run: |
+          git fetch --tags --no-recurse-submodules origin
+          bash test/doc-scripts/verify-version-mapping.sh
+
       - name: Build distribution
         run: make build-distro
 
@@ -339,6 +344,32 @@ jobs:
             case: exporter
           - name: SSL
             case: ssl
+          - name: mTLS
+            case: mtls
+          - name: RabbitMQ
+            case: rabbitmq
+          - name: RocketMQ
+            case: rocketmq
+          - name: ActiveMQ
+            case: activemq
+          - name: Pulsar
+            case: pulsar
+          - name: Kafka Monitoring
+            case: kafka-monitoring
+          - name: Redis
+            case: redis
+          - name: MongoDB
+            case: mongodb
+          - name: Flink
+            case: flink
+          - name: AWS DynamoDB
+            case: aws-dynamodb
+          - name: AWS S3
+            case: aws-s3
+          - name: AWS EKS
+            case: aws-eks
+          - name: AWS API Gateway
+            case: aws-api-gateway
           - name: Self Observability
             case: so11y
           - name: MQE
@@ -359,22 +390,22 @@ jobs:
         run: docker load -i /tmp/skywalking-oap-native.tar
 
       - name: Set up JDK 17 (test service build)
-        if: matrix.test.case == 'baseline' || matrix.test.case == 'mqe'
+        if: 
contains(fromJSON('["baseline","mqe","aws-dynamodb","aws-s3","aws-eks","aws-api-gateway"]'),
 matrix.test.case)
         uses: actions/setup-java@v4
         with:
           java-version: '17'
           distribution: 'temurin'
 
       - name: Restore Maven cache (test service build)
-        if: matrix.test.case == 'baseline' || matrix.test.case == 'mqe'
+        if: 
contains(fromJSON('["baseline","mqe","aws-dynamodb","aws-s3","aws-eks","aws-api-gateway"]'),
 matrix.test.case)
         uses: actions/cache/restore@v5
         with:
           path: ~/.m2/repository
           key: ${{ needs.init-skywalking.outputs.cache-key }}
           restore-keys: m2-skywalking-
 
-      - name: Build mock sender jar (baseline only)
-        if: matrix.test.case == 'baseline'
+      - name: Build mock sender jar
+        if: 
contains(fromJSON('["baseline","aws-dynamodb","aws-s3","aws-eks","aws-api-gateway"]'),
 matrix.test.case)
         run: |
           cd skywalking && ./mvnw -B -q \
             -f test/e2e-v2/java-test-service/pom.xml \
diff --git a/changes/changes.md b/changes/changes.md
index c2d7a5e..564aa6e 100644
--- a/changes/changes.md
+++ b/changes/changes.md
@@ -17,6 +17,9 @@
 ### E2E Tests
 
 - Add SSL e2e test case (gRPC TLS with JDK SSL provider in native image).
+- Add mTLS e2e test case (mutual TLS with client certificates).
+- Add RabbitMQ, RocketMQ, ActiveMQ, Pulsar, Kafka, Redis, MongoDB, Flink 
monitoring e2e test cases (OTEL metrics collection).
+- Add AWS DynamoDB, S3, EKS, API Gateway e2e test cases (mock sender metrics).
 - Add Auth e2e test case (token-based agent-to-OAP authentication).
 - Add OTLP Traces e2e test case (OpenTelemetry trace ingestion via Zipkin API).
 - Add Virtual MQ e2e test case (Kafka-instrumented virtual MQ layer metrics).
diff --git a/docs/version-mapping.md b/docs/version-mapping.md
new file mode 100644
index 0000000..910d8f3
--- /dev/null
+++ b/docs/version-mapping.md
@@ -0,0 +1,18 @@
+# Version Mapping
+
+Maps each distro release to the upstream Apache SkyWalking version it is built 
from.
+
+When the submodule commit matches an upstream release tag, the upstream 
version is shown directly.
+Otherwise, it is shown as `{commit-id}-SNAPSHOT` indicating a development 
build ahead of the last release.
+
+<!-- DOC-CHECK: version-mapping-table -->
+| Distro Version | Apache SkyWalking Version |
+|---|---|
+| 0.1.0-rc0 | `2709c94ab3cc`-SNAPSHOT |
+| 0.1.0-rc1 | `2709c94ab3cc`-SNAPSHOT |
+| 0.1.0 | `64a1795d8a58`-SNAPSHOT |
+| 0.1.1 | `64a1795d8a58`-SNAPSHOT |
+| 0.2.0 | `64a1795d8a58`-SNAPSHOT |
+| 0.2.1 | `64a1795d8a58`-SNAPSHOT |
+| 0.3.0-SNAPSHOT (dev) | `726ebcc321db`-SNAPSHOT |
+<!-- END DOC-CHECK -->
diff --git 
a/oap-libs-for-graalvm/meter-analyzer-for-graalvm/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/prometheus/rule/Rules.java
 
b/oap-libs-for-graalvm/meter-analyzer-for-graalvm/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/prometheus/rule/Rules.java
index 69dd0de..c17e5be 100644
--- 
a/oap-libs-for-graalvm/meter-analyzer-for-graalvm/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/prometheus/rule/Rules.java
+++ 
b/oap-libs-for-graalvm/meter-analyzer-for-graalvm/src/main/java/org/apache/skywalking/oap/meter/analyzer/v2/prometheus/rule/Rules.java
@@ -82,7 +82,7 @@ public class Rules {
                 .collect(Collectors.toSet());
 
             List<Rule> result = allRules.stream()
-                .filter(r -> normalizedEnabled.contains(r.getName()))
+                .filter(r -> matchesAny(r.getName(), normalizedEnabled))
                 .collect(Collectors.toList());
 
             LOG.info("Loaded {} pre-compiled rules from {} (filtered from {} 
available, enabled: {})",
@@ -90,4 +90,24 @@ public class Rules {
             return result;
         }
     }
+
+    /**
+     * Check if a rule name matches any of the enabled patterns.
+     * Supports glob patterns: {@code rabbitmq/*} matches {@code 
rabbitmq/rabbitmq-cluster}.
+     * A pattern ending with {@code /*} matches any rule whose name starts 
with the prefix before {@code /*}.
+     * Patterns without wildcards require exact match.
+     */
+    private static boolean matchesAny(final String ruleName, final Set<String> 
patterns) {
+        for (final String pattern : patterns) {
+            if (pattern.endsWith("/*")) {
+                String prefix = pattern.substring(0, pattern.length() - 1);
+                if (ruleName.startsWith(prefix)) {
+                    return true;
+                }
+            } else if (pattern.equals(ruleName)) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
diff --git a/test/doc-scripts/verify-version-mapping.sh 
b/test/doc-scripts/verify-version-mapping.sh
new file mode 100755
index 0000000..798150d
--- /dev/null
+++ b/test/doc-scripts/verify-version-mapping.sh
@@ -0,0 +1,121 @@
+#!/usr/bin/env bash
+# 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.
+
+# Verify docs/version-mapping.md is consistent with actual git state.
+#
+# Checks:
+# 1. The dev row's upstream version matches the current submodule commit.
+# 2. Each released version row matches the submodule commit at that git tag.
+#
+# Exit 0 on success, 1 on any mismatch.
+
+set -euo pipefail
+
+REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
+DOC="$REPO_ROOT/docs/version-mapping.md"
+
+if [ ! -f "$DOC" ]; then
+    echo "ERROR: $DOC not found"
+    exit 1
+fi
+
+errors=0
+
+# Resolve upstream version string for a submodule commit.
+# If the commit has an upstream tag (vX.Y.Z), return that version.
+# Otherwise, return "{short-commit}-SNAPSHOT".
+resolve_upstream_version() {
+    local commit="$1"
+    local short
+    short=$(echo "$commit" | cut -c1-12)
+    local tag
+    tag=$(cd "$REPO_ROOT/skywalking" && git tag --points-at "$commit" 
2>/dev/null | grep "^v" | head -1)
+    if [ -n "$tag" ]; then
+        # Strip leading 'v' from tag
+        echo "${tag#v}"
+    else
+        echo "\`${short}\`-SNAPSHOT"
+    fi
+}
+
+# Parse table rows between DOC-CHECK markers.
+# Expected format: | Distro Version | Apache SkyWalking Version |
+in_table=0
+while IFS= read -r line; do
+    # Detect marker boundaries
+    if echo "$line" | grep -q "DOC-CHECK: version-mapping-table"; then
+        in_table=1
+        continue
+    fi
+    if echo "$line" | grep -q "END DOC-CHECK"; then
+        in_table=0
+        continue
+    fi
+    [ "$in_table" -eq 0 ] && continue
+
+    # Skip header and separator rows
+    echo "$line" | grep -qE "^\|.*\|$" || continue
+    echo "$line" | grep -q "\-\-\-" && continue
+    echo "$line" | grep -q "Distro Version" && continue
+
+    # Extract columns
+    distro_ver=$(echo "$line" | awk -F'|' '{print $2}' | xargs)
+    doc_upstream=$(echo "$line" | awk -F'|' '{print $3}' | xargs)
+
+    if echo "$distro_ver" | grep -q "(dev)"; then
+        # Dev row: verify against current submodule commit
+        actual_commit=$(git -C "$REPO_ROOT" ls-tree HEAD skywalking | awk 
'{print $3}')
+        expected=$(resolve_upstream_version "$actual_commit")
+
+        if [ "$doc_upstream" != "$expected" ]; then
+            echo "MISMATCH [dev]: doc says '$doc_upstream' but submodule is at 
'$expected'"
+            errors=$((errors + 1))
+        else
+            echo "OK [dev]: $distro_ver -> $doc_upstream"
+        fi
+    else
+        # Released version: verify against git tag
+        tag="v$distro_ver"
+        if ! git -C "$REPO_ROOT" rev-parse "$tag" >/dev/null 2>&1; then
+            echo "WARN [$distro_ver]: tag $tag not found (skipping — may not 
exist in shallow clone)"
+            continue
+        fi
+
+        actual_commit=$(git -C "$REPO_ROOT" ls-tree "$tag" skywalking | awk 
'{print $3}')
+        if [ -z "$actual_commit" ]; then
+            echo "WARN [$distro_ver]: no submodule entry at tag $tag"
+            continue
+        fi
+
+        expected=$(resolve_upstream_version "$actual_commit")
+        if [ "$doc_upstream" != "$expected" ]; then
+            echo "MISMATCH [$distro_ver]: doc says '$doc_upstream' but tag 
$tag has '$expected'"
+            errors=$((errors + 1))
+        else
+            echo "OK [$distro_ver]: $tag -> $doc_upstream"
+        fi
+    fi
+done < "$DOC"
+
+if [ "$errors" -gt 0 ]; then
+    echo ""
+    echo "FAILED: $errors version mapping mismatch(es) found."
+    echo "Update docs/version-mapping.md to match actual submodule state."
+    exit 1
+fi
+
+echo ""
+echo "All version mappings verified."
diff --git a/test/e2e/cases/activemq/docker-compose.yml 
b/test/e2e/cases/activemq/docker-compose.yml
new file mode 100644
index 0000000..6b395bc
--- /dev/null
+++ b/test/e2e/cases/activemq/docker-compose.yml
@@ -0,0 +1,118 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  amq:
+    image: apache/activemq-classic:6.0.1
+    hostname: amq
+    ports:
+      - "61616:61616"
+      - "8161:8161"
+    expose:
+      - 1616
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/activemq/config/amq/activemq.xml:/opt/apache-activemq/conf/activemq.xml
+    environment:
+      ACTIVEMQ_SUNJMX_START: "-Dcom.sun.management.jmxremote.port=1616 
-Dcom.sun.management.jmxremote.rmi.port=1616 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false"
+      ACTIVEMQ_BROKER_NAME: activemq-broker
+    healthcheck:
+      test: [ "CMD-SHELL", "curl --silent --fail localhost:8161 || exit 1" ]
+      interval: 15s
+      timeout: 10s
+      retries: 120
+    networks:
+      - e2e
+
+  amqexporter:
+    image: bitnamilegacy/jmx-exporter:0.20.0
+    hostname: amqexporter
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/activemq/config/amq/config.yaml:/opt/bitnami/jmx-exporter/example_configs/httpserver_sample_config.yml
+    expose:
+      - 5556
+    depends_on:
+      - amq
+    networks:
+      - e2e
+
+  amq-consumer-mock:
+    image: apache/activemq-classic:6.0.1
+    hostname: amq-consumer-mock
+    entrypoint: bash
+    command:
+      - -c
+      - "/opt/apache-activemq/bin/activemq consumer --brokerUrl 
tcp://amq:61616 --destination queue://testQueue --messageCount 10 
--parallelThreads 2 && /opt/apache-activemq/bin/activemq consumer --brokerUrl 
tcp://amq:61616 --destination topic://testTopic --messageCount 10 
--parallelThreads 2"
+    depends_on:
+      amq:
+        condition: service_healthy
+    networks:
+      - e2e
+
+  amq-producer-mock:
+    image: apache/activemq-classic:6.0.1
+    hostname: amq-producer-mock
+    entrypoint: bash
+    command:
+      - -c
+      - "/opt/apache-activemq/bin/activemq producer --brokerUrl 
tcp://amq:61616 --destination queue://testQueue --messageCount 50 --persistent 
true --message hello && /opt/apache-activemq/bin/activemq producer --brokerUrl 
tcp://amq:61616 --destination topic://testTopic --messageCount 50 --persistent 
true --message world"
+    depends_on:
+      - amq-consumer-mock
+    networks:
+      - e2e
+
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/activemq/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/activemq/e2e.yaml b/test/e2e/cases/activemq/e2e.yaml
new file mode 100644
index 0000000..4902c44
--- /dev/null
+++ b/test/e2e/cases/activemq/e2e.yaml
@@ -0,0 +1,35 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+  retry:
+    count: 60
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/activemq/activemq-cases.yaml
diff --git a/test/e2e/cases/aws-api-gateway/docker-compose.yml 
b/test/e2e/cases/aws-api-gateway/docker-compose.yml
new file mode 100644
index 0000000..6ff2c9c
--- /dev/null
+++ b/test/e2e/cases/aws-api-gateway/docker-compose.yml
@@ -0,0 +1,70 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  sender:
+    image: "eclipse-temurin:8-jre"
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/java-test-service/e2e-mock-sender/target/e2e-mock-sender-2.0.0.jar:/e2e-mock-sender-2.0.0.jar
+      - 
../../../../skywalking/test/e2e-v2/cases/aws/api-gateway/mock-data:/data/otel-metrics
+    command: ["java", "-jar", "/e2e-mock-sender-2.0.0.jar"]
+    environment:
+      OAP_HOST: oap
+      OAP_GRPC_PORT: 11800
+      OTEL_METRICS_DATA_PATH: /data/otel-metrics
+    networks:
+      - e2e
+    ports:
+      - 9093:9093
+    healthcheck:
+      test: ["CMD", "sh", "-c", "nc -nz 127.0.0.1 9093"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/aws-api-gateway/e2e.yaml 
b/test/e2e/cases/aws-api-gateway/e2e.yaml
new file mode 100644
index 0000000..abf0a5a
--- /dev/null
+++ b/test/e2e/cases/aws-api-gateway/e2e.yaml
@@ -0,0 +1,42 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+  action: http
+  interval: 3s
+  times: -1
+  url: http://localhost:9093/otel-metrics/send
+  method: GET
+
+verify:
+  retry:
+    count: 20
+    interval: 10s
+  cases:
+    - includes:
+        - 
../../../../skywalking/test/e2e-v2/cases/aws/api-gateway/gateway-cases.yaml
diff --git a/test/e2e/cases/aws-dynamodb/docker-compose.yml 
b/test/e2e/cases/aws-dynamodb/docker-compose.yml
new file mode 100644
index 0000000..2634d95
--- /dev/null
+++ b/test/e2e/cases/aws-dynamodb/docker-compose.yml
@@ -0,0 +1,70 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  sender:
+    image: "eclipse-temurin:8-jre"
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/java-test-service/e2e-mock-sender/target/e2e-mock-sender-2.0.0.jar:/e2e-mock-sender-2.0.0.jar
+      - 
../../../../skywalking/test/e2e-v2/cases/aws/dynamodb/mock-data:/data/otel-metrics
+    command: ["java", "-jar", "/e2e-mock-sender-2.0.0.jar"]
+    environment:
+      OAP_HOST: oap
+      OAP_GRPC_PORT: 11800
+      OTEL_METRICS_DATA_PATH: /data/otel-metrics
+    networks:
+      - e2e
+    ports:
+      - 9093:9093
+    healthcheck:
+      test: ["CMD", "sh", "-c", "nc -nz 127.0.0.1 9093"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/aws-dynamodb/e2e.yaml 
b/test/e2e/cases/aws-dynamodb/e2e.yaml
new file mode 100644
index 0000000..001be1a
--- /dev/null
+++ b/test/e2e/cases/aws-dynamodb/e2e.yaml
@@ -0,0 +1,42 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+  action: http
+  interval: 3s
+  times: -1
+  url: http://localhost:9093/otel-metrics/send
+  method: GET
+
+verify:
+  retry:
+    count: 20
+    interval: 10s
+  cases:
+    - includes:
+        - 
../../../../skywalking/test/e2e-v2/cases/aws/dynamodb/dynamodb-cases.yaml
diff --git a/test/e2e/cases/aws-eks/docker-compose.yml 
b/test/e2e/cases/aws-eks/docker-compose.yml
new file mode 100644
index 0000000..3760cca
--- /dev/null
+++ b/test/e2e/cases/aws-eks/docker-compose.yml
@@ -0,0 +1,70 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  sender:
+    image: "eclipse-temurin:8-jre"
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/java-test-service/e2e-mock-sender/target/e2e-mock-sender-2.0.0.jar:/e2e-mock-sender-2.0.0.jar
+      - 
../../../../skywalking/test/e2e-v2/cases/aws/eks/mock-data:/data/otel-metrics
+    command: ["java", "-jar", "/e2e-mock-sender-2.0.0.jar"]
+    environment:
+      OAP_HOST: oap
+      OAP_GRPC_PORT: 11800
+      OTEL_METRICS_DATA_PATH: /data/otel-metrics
+    networks:
+      - e2e
+    ports:
+      - 9093:9093
+    healthcheck:
+      test: ["CMD", "sh", "-c", "nc -nz 127.0.0.1 9093"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/aws-eks/e2e.yaml b/test/e2e/cases/aws-eks/e2e.yaml
new file mode 100644
index 0000000..f260a87
--- /dev/null
+++ b/test/e2e/cases/aws-eks/e2e.yaml
@@ -0,0 +1,42 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+  action: http
+  interval: 3s
+  times: -1
+  url: http://localhost:9093/otel-metrics/send
+  method: GET
+
+verify:
+  retry:
+    count: 20
+    interval: 10s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/aws/eks/eks-cases.yaml
diff --git a/test/e2e/cases/aws-s3/docker-compose.yml 
b/test/e2e/cases/aws-s3/docker-compose.yml
new file mode 100644
index 0000000..703632e
--- /dev/null
+++ b/test/e2e/cases/aws-s3/docker-compose.yml
@@ -0,0 +1,70 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  sender:
+    image: "eclipse-temurin:8-jre"
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/java-test-service/e2e-mock-sender/target/e2e-mock-sender-2.0.0.jar:/e2e-mock-sender-2.0.0.jar
+      - 
../../../../skywalking/test/e2e-v2/cases/aws/s3/mock-data:/data/otel-metrics
+    command: ["java", "-jar", "/e2e-mock-sender-2.0.0.jar"]
+    environment:
+      OAP_HOST: oap
+      OAP_GRPC_PORT: 11800
+      OTEL_METRICS_DATA_PATH: /data/otel-metrics
+    networks:
+      - e2e
+    ports:
+      - 9093:9093
+    healthcheck:
+      test: ["CMD", "sh", "-c", "nc -nz 127.0.0.1 9093"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/aws-s3/e2e.yaml b/test/e2e/cases/aws-s3/e2e.yaml
new file mode 100644
index 0000000..b2310d3
--- /dev/null
+++ b/test/e2e/cases/aws-s3/e2e.yaml
@@ -0,0 +1,42 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+  action: http
+  interval: 3s
+  times: -1
+  url: http://localhost:9093/otel-metrics/send
+  method: GET
+
+verify:
+  retry:
+    count: 20
+    interval: 10s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/aws/s3/s3-cases.yaml
diff --git a/test/e2e/cases/flink/docker-compose.yml 
b/test/e2e/cases/flink/docker-compose.yml
new file mode 100644
index 0000000..92f976f
--- /dev/null
+++ b/test/e2e/cases/flink/docker-compose.yml
@@ -0,0 +1,113 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  jobmanager:
+    image: flink:2.0-preview1
+    environment:
+      - |
+        FLINK_PROPERTIES=
+        jobmanager.rpc.address: jobmanager
+        metrics.reporter.prom.factory.class: 
org.apache.flink.metrics.prometheus.PrometheusReporterFactory
+        metrics.reporter.prom.port: 9260
+    ports:
+      - "8081:8081"
+      - "9260:9260"
+    command: jobmanager
+    healthcheck:
+      test: ["CMD", "curl", "-f", "http://localhost:8081";]
+      interval: 30s
+      timeout: 10s
+      retries: 3
+    networks:
+      - e2e
+
+  taskmanager:
+    image: flink:2.0-preview1
+    environment:
+      - |
+        FLINK_PROPERTIES=
+        jobmanager.rpc.address: jobmanager
+        metrics.reporter.prom.factory.class: 
org.apache.flink.metrics.prometheus.PrometheusReporterFactory
+        metrics.reporter.prom.port: 9261
+    depends_on:
+      jobmanager:
+        condition: service_healthy
+    ports:
+      - "9261:9261"
+    command: taskmanager
+    healthcheck:
+      test: ["CMD", "curl", "-f", "http://localhost:9261/metrics";]
+      interval: 30s
+      timeout: 10s
+      retries: 3
+    networks:
+      - e2e
+
+  executeJob:
+    image: flink:2.0-preview1
+    depends_on:
+      taskmanager:
+        condition: service_healthy
+    command: >
+      bash -c "
+      ./bin/flink run -m jobmanager:8081 examples/streaming/WindowJoin.jar"
+    networks:
+      - e2e
+
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/flink/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/flink/e2e.yaml b/test/e2e/cases/flink/e2e.yaml
new file mode 100644
index 0000000..91b06db
--- /dev/null
+++ b/test/e2e/cases/flink/e2e.yaml
@@ -0,0 +1,42 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+  action: http
+  interval: 3s
+  times: -1
+  url: http://${jobmanager_host}:${jobmanager_9260}/metrics
+  method: GET
+
+verify:
+  retry:
+    count: 60
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/flink/flink-cases.yaml
diff --git a/test/e2e/cases/kafka-monitoring/docker-compose.yml 
b/test/e2e/cases/kafka-monitoring/docker-compose.yml
new file mode 100644
index 0000000..d77fb26
--- /dev/null
+++ b/test/e2e/cases/kafka-monitoring/docker-compose.yml
@@ -0,0 +1,141 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  zookeeper:
+    image: zookeeper:3.4
+    expose:
+      - 2181
+    networks:
+      - e2e
+    environment:
+      - ALLOW_ANONYMOUS_LOGIN=yes
+    healthcheck:
+      test: ["CMD", "sh", "-c", "nc -nz 127.0.0.1 2181"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  broker1:
+    build:
+      context: ../../../../skywalking/test/e2e-v2/cases/kafka/kafka-monitoring
+    expose:
+      - 9092
+      - 7071
+    networks:
+      - e2e
+    environment:
+      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
+      - ALLOW_PLAINTEXT_LISTENER=yes
+      - 
KAFKA_OPTS=-javaagent:/etc/jmx_prometheus_javaagent-0.18.0.jar=7071:/etc/kafka-2_0_0.yml
+    depends_on:
+      zookeeper:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD", "kafka-topics.sh", "--list", "--zookeeper", 
"zookeeper:2181"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  broker2:
+    build:
+      context: ../../../../skywalking/test/e2e-v2/cases/kafka/kafka-monitoring
+    expose:
+      - 9093
+      - 7072
+    networks:
+      - e2e
+    environment:
+      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
+      - ALLOW_PLAINTEXT_LISTENER=yes
+      - 
KAFKA_OPTS=-javaagent:/etc/jmx_prometheus_javaagent-0.18.0.jar=7072:/etc/kafka-2_0_0.yml
+    depends_on:
+      zookeeper:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD", "kafka-topics.sh", "--list", "--zookeeper", 
"zookeeper:2181"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  kafka-producer-perf-test:
+    image: bitnamilegacy/kafka:2.4.1
+    networks:
+      - e2e
+    depends_on:
+      - broker1
+      - broker2
+    command:
+      - bash
+      - -c
+      - >
+        kafka-producer-perf-test.sh --topic perftest --num-records 100000 
--record-size 100 --throughput 500 --producer-props 
bootstrap.servers=broker1:9092,broker2:9093
+
+  kafka-consumer-perf-test:
+    image: bitnamilegacy/kafka:2.4.1
+    networks:
+      - e2e
+    depends_on:
+      - kafka-producer-perf-test
+    command:
+      - bash
+      - -c
+      - >
+        kafka-consumer-perf-test.sh --broker-list broker1:9092,broker2:9093 
--topic perftest --messages 100000
+
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: ["--config=/etc/otel-collector-config.yaml"]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/kafka/kafka-monitoring/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      - broker1
+      - broker2
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/kafka-monitoring/e2e.yaml 
b/test/e2e/cases/kafka-monitoring/e2e.yaml
new file mode 100644
index 0000000..e832f7e
--- /dev/null
+++ b/test/e2e/cases/kafka-monitoring/e2e.yaml
@@ -0,0 +1,35 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+  retry:
+    count: 20
+    interval: 10s
+  cases:
+    - includes:
+        - 
../../../../skywalking/test/e2e-v2/cases/kafka/kafka-monitoring/kafka-cases.yaml
diff --git a/test/e2e/cases/mongodb/docker-compose.yml 
b/test/e2e/cases/mongodb/docker-compose.yml
new file mode 100644
index 0000000..09baa52
--- /dev/null
+++ b/test/e2e/cases/mongodb/docker-compose.yml
@@ -0,0 +1,119 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  mongodb-1: &mongodb
+    image: mongo:6.0.8
+    networks:
+      - e2e
+    command: mongod --replSet rs1 --shardsvr --port 27017
+    healthcheck:
+      test: [ "CMD", "bash", "-c", "cat < /dev/null > 
/dev/tcp/127.0.0.1/27017" ]
+      interval: 10s
+      timeout: 10s
+      retries: 120
+  mongodb-2: *mongodb
+  mongodb-repl-setup:
+    image: mongo:6.0.8
+    networks:
+      - e2e
+    depends_on:
+      mongodb-1:
+        condition: service_healthy
+      mongodb-2:
+        condition: service_healthy
+    volumes:
+      - ../../../../skywalking/test/e2e-v2/cases/mongodb/setup.sh:/setup.sh
+    entrypoint: [ "bash", "/setup.sh" ]
+  mongodb-exporter-1:
+    image: percona/mongodb_exporter:0.39
+    expose:
+      - 9216
+    networks:
+      - e2e
+    depends_on:
+      mongodb-1:
+        condition: service_healthy
+    command:
+      - '--mongodb.uri=mongodb://mongodb-1:27017'
+      - '--discovering-mode'
+      - '--compatible-mode'
+      - '--collector.dbstats'
+      - '--collector.diagnosticdata'
+      - '--collector.replicasetstatus'
+  mongodb-exporter-2:
+    image: percona/mongodb_exporter:0.39
+    expose:
+      - 9216
+    networks:
+      - e2e
+    depends_on:
+      mongodb-2:
+        condition: service_healthy
+    command:
+      - '--mongodb.uri=mongodb://mongodb-2:27017'
+      - '--discovering-mode'
+      - '--compatible-mode'
+      - '--collector.dbstats'
+      - '--collector.diagnosticdata'
+      - '--collector.replicasetstatus'
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/mongodb/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+      mongodb-exporter-1:
+        condition: service_started
+      mongodb-exporter-2:
+        condition: service_started
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/mongodb/e2e.yaml b/test/e2e/cases/mongodb/e2e.yaml
new file mode 100644
index 0000000..a0c9dca
--- /dev/null
+++ b/test/e2e/cases/mongodb/e2e.yaml
@@ -0,0 +1,35 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+  retry:
+    count: 60
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/mongodb/mongodb-cases.yaml
diff --git a/test/e2e/cases/mtls/docker-compose.yml 
b/test/e2e/cases/mtls/docker-compose.yml
new file mode 100644
index 0000000..d34509f
--- /dev/null
+++ b/test/e2e/cases/mtls/docker-compose.yml
@@ -0,0 +1,144 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/simple/mtls/server:/skywalking/certs
+    expose:
+      - 11800
+      - 12800
+      - 11811
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+      SW_RECEIVER_GRPC_PORT: 11811
+      SW_RECEIVER_GRPC_SSL_ENABLED: "true"
+      SW_RECEIVER_GRPC_SSL_KEY_PATH: /skywalking/certs/server.pem
+      SW_RECEIVER_GRPC_SSL_CERT_CHAIN_PATH: /skywalking/certs/server.crt
+      SW_RECEIVER_GRPC_SSL_TRUSTED_CAS_PATH: /skywalking/certs/ca.crt
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  # Init containers: copy pre-built service JARs into a shared volume
+  provider-jar:
+    image: 
"ghcr.io/apache/skywalking/e2e-service-provider:${SW_E2E_SERVICE_COMMIT}"
+    entrypoint: ["cp", "/app.jar", "/jars/services_provider.jar"]
+    volumes:
+      - service-jars:/jars
+    networks:
+      - e2e
+
+  consumer-jar:
+    image: 
"ghcr.io/apache/skywalking/e2e-service-consumer:${SW_E2E_SERVICE_COMMIT}"
+    entrypoint: ["cp", "/app.jar", "/jars/services_consumer.jar"]
+    volumes:
+      - service-jars:/jars
+    networks:
+      - e2e
+
+  provider:
+    image: 
"ghcr.io/apache/skywalking-java/skywalking-java:${SW_AGENT_JAVA_COMMIT}-java${SW_AGENT_JDK_VERSION}"
+    command: ["java", "-jar", "/jars/services_provider.jar"]
+    volumes:
+      - service-jars:/jars
+      - 
../../../../skywalking/test/e2e-v2/cases/simple/mtls/client:/skywalking/agent/certs
+    networks:
+      - e2e
+    expose:
+      - 9090
+    ports:
+      - 9090
+    environment:
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11811
+      SW_AGENT_SSL_KEY_PATH: /certs/client.pem
+      SW_AGENT_SSL_CERT_CHAIN_PATH: /certs/client.crt
+      SW_AGENT_SSL_TRUSTED_CA_PATH: /certs/ca.crt
+      SW_LOGGING_OUTPUT: CONSOLE
+      SW_AGENT_NAME: e2e-service-provider
+      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
+      timeout: 60s
+      retries: 120
+    depends_on:
+      oap:
+        condition: service_healthy
+      provider-jar:
+        condition: service_completed_successfully
+
+  consumer:
+    image: 
"ghcr.io/apache/skywalking-java/skywalking-java:${SW_AGENT_JAVA_COMMIT}-java${SW_AGENT_JDK_VERSION}"
+    command: ["java", "-jar", "/jars/services_consumer.jar"]
+    volumes:
+      - service-jars:/jars
+      - 
../../../../skywalking/test/e2e-v2/cases/simple/mtls/client:/skywalking/agent/certs
+    networks:
+      - e2e
+    expose:
+      - 9092
+    ports:
+      - 9092
+    environment:
+      SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11811
+      SW_AGENT_SSL_KEY_PATH: /certs/client.pem
+      SW_AGENT_SSL_CERT_CHAIN_PATH: /certs/client.crt
+      SW_AGENT_SSL_TRUSTED_CA_PATH: /certs/ca.crt
+      SW_LOGGING_OUTPUT: CONSOLE
+      PROVIDER_URL: http://provider:9090
+      SW_AGENT_NAME: e2e-service-consumer
+      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
+      timeout: 60s
+      retries: 120
+    depends_on:
+      provider:
+        condition: service_healthy
+      consumer-jar:
+        condition: service_completed_successfully
+
+volumes:
+  service-jars:
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/mtls/e2e.yaml b/test/e2e/cases/mtls/e2e.yaml
new file mode 100644
index 0000000..3d881d8
--- /dev/null
+++ b/test/e2e/cases/mtls/e2e.yaml
@@ -0,0 +1,45 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+  action: http
+  interval: 3s
+  times: -1
+  url: http://${consumer_host}:${consumer_9092}/users
+  method: POST
+  body: '{"id":"123","name":"skywalking"}'
+  headers:
+    "Content-Type": "application/json"
+
+verify:
+  retry:
+    count: 20
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/simple/simple-cases.yaml
diff --git a/test/e2e/cases/pulsar/docker-compose.yml 
b/test/e2e/cases/pulsar/docker-compose.yml
new file mode 100644
index 0000000..8097a3d
--- /dev/null
+++ b/test/e2e/cases/pulsar/docker-compose.yml
@@ -0,0 +1,156 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  # Start zookeeper
+  zookeeper:
+    image: zookeeper:3.9.1
+    expose:
+      - 2181
+    networks:
+      - e2e
+    environment:
+      - ALLOW_ANONYMOUS_LOGIN=yes
+    healthcheck:
+      test: ["CMD", "nc", "-nz", "127.0.0.1", "2181"]
+      interval: 15s
+      timeout: 10s
+      retries: 120
+
+  # Start bookie
+  bookie:
+    image: apachepulsar/pulsar:3.1.1
+    restart: on-failure
+    hostname: bookie
+    networks:
+      - e2e
+    environment:
+      - clusterName=pulsar-cluster
+      - zkServers=zookeeper:2181
+      - metadataServiceUri=metadata-store:zk:zookeeper:2181
+      - advertisedAddress=bookie
+      - BOOKIE_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m
+      - allowLoopback=true
+    depends_on:
+      zookeeper:
+        condition: service_healthy
+    expose:
+      - 8000
+    ports:
+      - "8000:8000"
+    command: bash -c "bin/apply-config-from-env.py conf/bookkeeper.conf && 
exec bin/pulsar bookie"
+    healthcheck:
+      test: ["CMD", "nc", "-nz", "127.0.0.1", "8000"]
+      interval: 15s
+      timeout: 10s
+      retries: 120
+
+  # Start broker
+  broker:
+    image: apachepulsar/pulsar:3.1.1
+    restart: on-failure
+    hostname: broker
+    networks:
+      - e2e
+    environment:
+      - metadataStoreUrl=zk:zookeeper:2181
+      - zookeeperServers=zookeeper:2181
+      - clusterName=pulsar-cluster
+      - managedLedgerDefaultEnsembleSize=1
+      - managedLedgerDefaultWriteQuorum=1
+      - managedLedgerDefaultAckQuorum=1
+      - advertisedAddress=broker
+      - advertisedListeners=external:pulsar://127.0.0.1:6650
+      - PULSAR_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=256m
+    depends_on:
+      zookeeper:
+        condition: service_healthy
+    expose:
+      - 8080
+      - 6650
+    ports:
+      - "6650:6650"
+      - "8080:8080"
+    command: bash -c "bin/pulsar initialize-cluster-metadata --cluster 
pulsar-cluster --zookeeper zookeeper:2181 --configuration-store zookeeper:2181 
--web-service-url http://broker:8080 --broker-service-url pulsar://broker:6650 
&& bin/apply-config-from-env.py conf/broker.conf && exec bin/pulsar broker"
+    healthcheck:
+      test: ["CMD", "nc", "-nz", "127.0.0.1", "8080"]
+      interval: 15s
+      timeout: 10s
+      retries: 120
+
+  consume-perf:
+    image: apachepulsar/pulsar:3.1.1
+    networks:
+      - e2e
+    depends_on:
+      broker:
+        condition: service_healthy
+    command: bash -c "bin/pulsar-perf consume -m 100000 my-topic"
+
+  produce-perf:
+    image: apachepulsar/pulsar:3.1.1
+    networks:
+      - e2e
+    depends_on:
+      broker:
+        condition: service_healthy
+      consume-perf:
+        condition: service_started
+    command: bash -c "bin/pulsar-perf produce -m 100000 my-topic"
+
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/pulsar/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/pulsar/e2e.yaml b/test/e2e/cases/pulsar/e2e.yaml
new file mode 100644
index 0000000..eada6ba
--- /dev/null
+++ b/test/e2e/cases/pulsar/e2e.yaml
@@ -0,0 +1,35 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+  retry:
+    count: 60
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/pulsar/pulsar-cases.yaml
diff --git a/test/e2e/cases/rabbitmq/docker-compose.yml 
b/test/e2e/cases/rabbitmq/docker-compose.yml
new file mode 100644
index 0000000..2e9c49d
--- /dev/null
+++ b/test/e2e/cases/rabbitmq/docker-compose.yml
@@ -0,0 +1,210 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  rmq0: &rabbitmq
+    image: rabbitmq:3.11.14-management
+    networks:
+      - "e2e"
+    ports:
+      - "15673:15672"
+      - "15693:15692"
+    cap_add:
+      - ALL
+    hostname: rmq0
+    environment:
+      RABBITMQ_ERLANG_COOKIE: rabbitmq-prometheus
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/rabbitmq/rabbitmq-overview.conf:/etc/rabbitmq/rabbitmq.conf:ro
+      - 
../../../../skywalking/test/e2e-v2/cases/rabbitmq/rabbitmq-overview-definitions.json:/etc/rabbitmq/rabbitmq-definitions.json:ro
+    ulimits:
+      nofile:
+        soft: 2000
+        hard: 2000
+  rmq1:
+    <<: *rabbitmq
+    hostname: rmq1
+    ports:
+      - "15674:15672"
+      - "15694:15692"
+  rmq2:
+    <<: *rabbitmq
+    hostname: rmq2
+    ports:
+      - "15675:15672"
+      - "15695:15692"
+
+  # The following services are used for mocking test data
+  basic-get:
+    image: &perf-test-image pivotalrabbitmq/perf-test:2.15.0-ubuntu
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: basic-get
+      ROUTING_KEY: basic-get
+      VARIABLE_RATE: "1:1,0:30"
+      POLLING: "true"
+      POLLING_INTERVAL: 5000
+      AUTOACK: "false"
+      SERVERS_STARTUP_TIMEOUT: &startup_timeout 60
+      METRICS_PROMETHEUS: "true"
+  basic-get-auto:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: basic-get
+      ROUTING_KEY: basic-get
+      PRODUCERS: 0
+      POLLING: "true"
+      POLLING_INTERVAL: 5000
+      AUTOACK: "true"
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  greedy-consumer:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq0:5672/%2f"
+      QUEUE: greedy-consumer
+      ROUTING_KEY: greedy-consumer
+      VARIABLE_RATE: "100:20,0:20"
+      CONSUMER_RATE: 50
+      QOS: 2000
+      AUTOACK: "false"
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  publisher-confirms:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq1:5672/%2f"
+      QUEUE: publisher-confirms
+      ROUTING_KEY: publisher-confirms
+      AUTOACK: "true"
+      VARIABLE_RATE: "12:30,25:30,50:30,100:30"
+      CONFIRM: 1
+      CONFIRM_TIMEOUT: 1
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  slow-consumer-persistent:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq1:5672/%2f"
+      QUEUE: ha3-slow-consumer-persistent
+      ROUTING_KEY: slow-consumer-persistent
+      QUEUE_ARGS: x-max-length=10000
+      FLAG: persistent
+      AUTO_DELETE: "false"
+      SIZE: 51200
+      VARIABLE_RATE: "100:20,0:20"
+      CONSUMER_RATE: 50
+      QOS: 50
+      AUTOACK: "false"
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  nack:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    entrypoint: []
+    command: /bin/bash -c "while true; do bin/runjava 
com.rabbitmq.perf.PerfTest; sleep 10; done"
+    environment:
+      TIME: 60
+      URI: "amqp://guest:guest@rmq2:5672/%2f"
+      VARIABLE_RATE: "1:10,0:20"
+      QUEUE: nack
+      QUEUE_ARGS: x-max-length=100
+      ROUTING_KEY: nack
+      AUTOACK: "false"
+      NACK: "true"
+      QOS: 5
+      CONSUMER_LATENCY: 3000000
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  unroutable-return:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq2:5672/%2f"
+      VARIABLE_RATE: "2:30,4:30,10:30"
+      VARIABLE_SIZE: "100:30,200:30"
+      CONSUMERS: 0
+      FLAG: mandatory
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+  unroutable-drop:
+    image: *perf-test-image
+    networks:
+      - "e2e"
+    environment:
+      URI: "amqp://guest:guest@rmq2:5672/%2f"
+      VARIABLE_RATE: "5:30,10:30,20:30"
+      VARIABLE_SIZE: "100:30,200:30"
+      CONSUMERS: 0
+      SERVERS_STARTUP_TIMEOUT: *startup_timeout
+      METRICS_PROMETHEUS: "true"
+
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/rabbitmq/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/rabbitmq/e2e.yaml b/test/e2e/cases/rabbitmq/e2e.yaml
new file mode 100644
index 0000000..748989f
--- /dev/null
+++ b/test/e2e/cases/rabbitmq/e2e.yaml
@@ -0,0 +1,35 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+  retry:
+    count: 60
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/rabbitmq/rabbitmq-cases.yaml
diff --git a/test/e2e/cases/redis/docker-compose.yml 
b/test/e2e/cases/redis/docker-compose.yml
new file mode 100644
index 0000000..71b6172
--- /dev/null
+++ b/test/e2e/cases/redis/docker-compose.yml
@@ -0,0 +1,137 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+      TZ: Asia/Shanghai
+      SW_CORE_TOPN_REPORT_PERIOD: 2
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  redis_1: &redis
+    image: redis:6.0
+    networks:
+      - e2e
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/redis.conf:/etc/redis/redis.conf
+    ports:
+      - 6379
+    command:
+      redis-server /etc/redis/redis.conf
+    healthcheck:
+      test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/6379"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+  redis_2:
+    <<: *redis
+  redis_3:
+    <<: *redis
+
+  redis_mock:
+    <<: *redis
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/redis.conf:/etc/redis/redis.conf
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/mock.txt:/etc/redis/mock.txt
+    depends_on:
+      - otel-collector
+      - redis_1
+      - redis_exporter_1
+    entrypoint: bash
+    command:
+      - -c
+      - "cat /etc/redis/mock.txt | redis-cli -h redis_1 -p 6379 &&  
redis-server /etc/redis/redis.conf "
+
+  redis_exporter_1: &redis_exporter
+    image: oliver006/redis_exporter:v1.48.0-alpine
+    networks:
+      - e2e
+    ports:
+      - 9121
+    environment:
+      - REDIS_ADDR=redis_1:6379
+  redis_exporter_2:
+    <<: *redis_exporter
+    ports:
+      - 9121
+    environment:
+      - REDIS_ADDR=redis_2:6379
+  redis_exporter_3:
+    <<: *redis_exporter
+    environment:
+      - REDIS_ADDR=redis_3:6379
+
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: ["--config=/etc/otel-collector-config.yaml"]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+
+  fluentbit:
+    image: fluent/fluent-bit:1.9
+    environment:
+      - TZ=Asia/Shanghai
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/scripts:/scripts
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/fluent-bit-parser.conf:/fluent-bit/etc/fluent-bit-parser.conf
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/fluent-bit-script.lua:/fluent-bit/etc/fluent-bit-script.lua
+    networks:
+      - e2e
+    depends_on:
+      - slowlog
+
+  slowlog:
+    image: redis:6.0
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/redis/redis-exporter/scripts:/scripts
+    networks:
+      - e2e
+    command: sh -c "chmod 777 /scripts/start.sh /scripts/slowlog.sh 
/scripts/slowlog.log && /scripts/start.sh"
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/redis/e2e.yaml b/test/e2e/cases/redis/e2e.yaml
new file mode 100644
index 0000000..b4e7f94
--- /dev/null
+++ b/test/e2e/cases/redis/e2e.yaml
@@ -0,0 +1,35 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+  retry:
+    count: 60
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/redis/redis-cases.yaml
diff --git a/test/e2e/cases/rocketmq/docker-compose.yml 
b/test/e2e/cases/rocketmq/docker-compose.yml
new file mode 100644
index 0000000..5a8d28b
--- /dev/null
+++ b/test/e2e/cases/rocketmq/docker-compose.yml
@@ -0,0 +1,135 @@
+# 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.
+
+services:
+  banyandb:
+    extends:
+      file: 
../../../../skywalking/test/e2e-v2/script/docker-compose/base-compose.yml
+      service: banyandb
+    ports:
+      - 17912
+
+  oap:
+    image: skywalking-oap-native:latest
+    expose:
+      - 11800
+      - 12800
+    networks:
+      - e2e
+    ports:
+      - 12800
+    environment:
+      SW_HEALTH_CHECKER: default
+      SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
+      SW_CONFIGURATION: none
+    depends_on:
+      banyandb:
+        condition: service_healthy
+    healthcheck:
+      test: ["CMD-SHELL", "nc -nz 127.0.0.1 11800 || exit 1"]
+      interval: 5s
+      timeout: 60s
+      retries: 120
+
+  rocketmq-namesrv-1:
+    image: apache/rocketmq:4.9.4
+    hostname: rocketmq-namesrv-1
+    ports:
+      - "9876:9876"
+    environment:
+      TZ: Asia/Shanghai
+    command: sh mqnamesrv
+    healthcheck:
+      test: [ "CMD", "nc", "-nz", "127.0.0.1", "9876" ]
+      interval: 15s
+      timeout: 10s
+      retries: 120
+    networks:
+      - e2e
+
+  rocketmq-broker-1:
+    image: apache/rocketmq:4.9.4
+    hostname: rocketmq-broker-1
+    ports:
+      - "10911:10911"
+      - "10909:10909"
+    environment:
+      TZ: Asia/Shanghai
+      NAMESRV_ADDR: "rocketmq-namesrv-1:9876"
+    command: sh mqbroker
+    healthcheck:
+      test: [ "CMD", "nc", "-nz", "127.0.0.1", "10911" ]
+      interval: 15s
+      timeout: 10s
+      retries: 120
+    depends_on:
+      rocketmq-namesrv-1:
+        condition: service_healthy
+    networks:
+      - e2e
+
+  rocketmq-producer-perf-test:
+    image: apache/rocketmq:4.9.4
+    hostname: rocketmq-producer-perf-test
+    environment:
+      TZ: Asia/Shanghai
+      NAMESRV_ADDR: "rocketmq-namesrv-1:9876"
+    command: sh tools.sh org.apache.rocketmq.example.quickstart.Producer
+    depends_on:
+      rocketmq-broker-1:
+        condition: service_healthy
+    networks:
+      - e2e
+
+  rocketmq-consumer-perf-test:
+    image: apache/rocketmq:4.9.4
+    hostname: rocketmq-consumer-perf-test
+    environment:
+      TZ: Asia/Shanghai
+      NAMESRV_ADDR: "rocketmq-namesrv-1:9876"
+    command: sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
+    depends_on:
+      - rocketmq-producer-perf-test
+    networks:
+      - e2e
+
+  rocketmq-exporter:
+    image: apache/rocketmq-exporter:0.0.2
+    hostname: rocketmq-exporter
+    ports:
+      - "5557:5557"
+    environment:
+      TZ: Asia/Shanghai
+      rocketmq.config.namesrvAddr: "rocketmq-namesrv-1:9876"
+    depends_on:
+      - rocketmq-consumer-perf-test
+    networks:
+      - e2e
+
+  otel-collector:
+    image: otel/opentelemetry-collector:${OTEL_COLLECTOR_VERSION}
+    networks:
+      - e2e
+    command: [ "--config=/etc/otel-collector-config.yaml" ]
+    volumes:
+      - 
../../../../skywalking/test/e2e-v2/cases/rocketmq/otel-collector-config.yaml:/etc/otel-collector-config.yaml
+    expose:
+      - 55678
+    depends_on:
+      oap:
+        condition: service_healthy
+
+networks:
+  e2e:
diff --git a/test/e2e/cases/rocketmq/e2e.yaml b/test/e2e/cases/rocketmq/e2e.yaml
new file mode 100644
index 0000000..049e8b7
--- /dev/null
+++ b/test/e2e/cases/rocketmq/e2e.yaml
@@ -0,0 +1,35 @@
+# 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.
+
+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 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+  retry:
+    count: 60
+    interval: 3s
+  cases:
+    - includes:
+        - ../../../../skywalking/test/e2e-v2/cases/rocketmq/rocketmq-cases.yaml
diff --git a/test/e2e/script/env b/test/e2e/script/env
index cac6d57..e89faf7 100644
--- a/test/e2e/script/env
+++ b/test/e2e/script/env
@@ -26,6 +26,12 @@ SW_UPSTREAM_COMMIT=a0cec0ca237792497d2da0b65757d11f58c3f342
 # Last upstream commit that touched test/e2e-v2/java-test-service/
 SW_E2E_SERVICE_COMMIT=5e3b3853f5742f906655f3e332459c74b58cfb43
 
+# OTEL collector version for infrastructure monitoring tests
+OTEL_COLLECTOR_VERSION=0.102.1
+
+# Java agent JDK version for agent-based tests (ssl, mtls)
+SW_AGENT_JDK_VERSION=8
+
 # Not used by distro tests, but defined to silence docker-compose warnings
 # from upstream base-compose.yml which references it for skypredictor service.
 SW_PREDICTOR_COMMIT=54a0197654a3781a6f73ce35146c712af297c994

Reply via email to