This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
The following commit(s) were added to refs/heads/main by this push:
new 342ed2da6 Collect data on e2e failure, add log test, sync lifecycle,
fix zipkin (#1030)
342ed2da6 is described below
commit 342ed2da6dc70758dfb2ee7f6c86268c2e194b4e
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Mon Mar 30 13:09:01 2026 +0800
Collect data on e2e failure, add log test, sync lifecycle, fix zipkin
(#1030)
* Collect BanyanDB data and access logs on e2e test failure
---------
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Co-authored-by: Gao Hongtao <[email protected]>
---
.github/workflows/e2e.yml | 24 +++---
AGENTS.md | 17 ----
CHANGES.md | 3 +
test/e2e-v2/cases/cluster/e2e-etcd.yaml | 14 ++++
test/e2e-v2/cases/cluster/e2e-property.yaml | 14 ++++
test/e2e-v2/cases/event/banyandb/e2e-etcd.yaml | 14 ++++
test/e2e-v2/cases/event/banyandb/e2e-property.yaml | 14 ++++
.../lifecycle/data-generator/docker-compose.yml | 4 +-
test/e2e-v2/cases/lifecycle/data-generator/gen.sh | 6 +-
test/e2e-v2/cases/lifecycle/docker-compose.yml | 97 ++++++++++++----------
test/e2e-v2/cases/lifecycle/e2e.yaml | 60 ++++++++++---
.../metrics-has-value.yml => lifecycle/nodes.yaml} | 28 ++-----
.../banyandb}/docker-compose.yml | 39 +++++----
.../e2e-v2/cases/{zipkin => log}/banyandb/e2e.yaml | 36 ++++++--
.../expected/logs.yml} | 46 +++++-----
.../expected/metrics-has-value.yml | 2 +-
.../expected/service-endpoint.yml} | 23 +----
.../e2e-v2/cases/log/expected/service-instance.yml | 40 +++++++++
.../expected/service.yml} | 28 ++-----
.../trace/banyandb/e2e-etcd.yaml => log/lal.yaml} | 42 +++++-----
.../log-base-compose.yml} | 37 ++++-----
test/e2e-v2/cases/log/log-mal.yaml | 36 ++++++++
.../cases/profiling/trace/banyandb/e2e-etcd.yaml | 14 ++++
.../profiling/trace/banyandb/e2e-property.yaml | 14 ++++
.../rover/process/istio/banyandb/e2e-banyandb.yaml | 23 +++++
test/e2e-v2/cases/storage/banyandb/e2e-etcd.yaml | 14 ++++
.../cases/storage/banyandb/e2e-property.yaml | 14 ++++
.../expected/metrics-has-value-percentile.yml | 4 +-
.../cases/storage/expected/metrics-has-value.yml | 2 +-
test/e2e-v2/cases/zipkin/banyandb/e2e.yaml | 16 +++-
test/e2e-v2/script/env | 2 +-
31 files changed, 492 insertions(+), 235 deletions(-)
diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index 168533eed..99d9576f8 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -48,7 +48,7 @@ jobs:
tag: ${{ github.sha }}
StoragePlugins:
- name: Storage E2E
+ name: ${{ matrix.test.name }}
runs-on: ${{ matrix.test.runs-on || 'ubuntu-latest' }}
timeout-minutes: 90
needs: [DockerImage]
@@ -56,23 +56,25 @@ jobs:
fail-fast: false
matrix:
test:
- - name: BanyanDB Etcd
+ - name: Storage (etcd)
config: test/e2e-v2/cases/storage/banyandb/e2e-etcd.yaml
- - name: BanyanDB Property
+ - name: Storage (native-property/dns)
config: test/e2e-v2/cases/storage/banyandb/e2e-property.yaml
- - name: Trace Profiling BanyanDB Etcd
+ - name: Trace Profiling (etcd)
config: test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
- - name: Trace Profiling BanyanDB Property
+ - name: Trace Profiling (native-property/dns)
config:
test/e2e-v2/cases/profiling/trace/banyandb/e2e-property.yaml
- - name: Event BanyanDB Etcd
+ - name: Event (etcd)
config: test/e2e-v2/cases/event/banyandb/e2e-etcd.yaml
- - name: Event BanyanDB Property
+ - name: Event (native-property/dns)
config: test/e2e-v2/cases/event/banyandb/e2e-property.yaml
- - name: BanyanDB Cluster Mode Etcd
+ - name: Log
+ config: test/e2e-v2/cases/log/banyandb/e2e.yaml
+ - name: Cluster (etcd)
config: test/e2e-v2/cases/cluster/e2e-etcd.yaml
- - name: BanyanDB Cluster Mode Property
+ - name: Cluster (native-property/dns)
config: test/e2e-v2/cases/cluster/e2e-property.yaml
- - name: Rover Istio BanyanDB
+ - name: Rover eBPF - Istio mesh, Kind
config:
test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
env: |
ISTIO_VERSION=1.28.0
@@ -117,7 +119,7 @@ jobs:
run: |
bash test/e2e-v2/cases/lifecycle/data-generator/gen.sh
- name: ${{ matrix.test.name }}
- uses:
apache/skywalking-infra-e2e@8c21e43e241a32a54bdf8eeceb9099eb27e5e9b4
+ uses:
apache/skywalking-infra-e2e@e26033e1faaf865899c486ffe17dabdf17b90aae
with:
e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
- name: Fix directory permissions
diff --git a/AGENTS.md b/AGENTS.md
index c83511260..93332e260 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,20 +1,3 @@
-# Licensed to Apache Software Foundation (ASF) under one or more contributor
-# license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright
-# ownership. Apache Software Foundation (ASF) licenses this file to you under
-# the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
# AI Assistant Rules for SkyWalking BanyanDB Go Project
# This file provides coding standards and guidelines for AI assistants
# Compatible with Claude, Cursor, GitHub Copilot, and other LLMs
diff --git a/CHANGES.md b/CHANGES.md
index f3b2df450..554063268 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -7,6 +7,9 @@ Release Notes.
### Features
- Organize access logs under a dedicated "accesslog" subdirectory to improve
log organization and separation from other application data.
+- Collect BanyanDB data on e2e test failure for CI debugging.
+- Add log query e2e test.
+- Sync lifecycle e2e test from SkyWalking stages test.
## 0.10.0
diff --git a/test/e2e-v2/cases/cluster/e2e-etcd.yaml
b/test/e2e-v2/cases/cluster/e2e-etcd.yaml
index 9cc96f83f..46292a107 100644
--- a/test/e2e-v2/cases/cluster/e2e-etcd.yaml
+++ b/test/e2e-v2/cases/cluster/e2e-etcd.yaml
@@ -48,3 +48,17 @@ verify:
cases:
- includes:
- ../storage/storage-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: data
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/cluster/e2e-property.yaml
b/test/e2e-v2/cases/cluster/e2e-property.yaml
index ac234b896..b9bcf7f35 100644
--- a/test/e2e-v2/cases/cluster/e2e-property.yaml
+++ b/test/e2e-v2/cases/cluster/e2e-property.yaml
@@ -48,3 +48,17 @@ verify:
cases:
- includes:
- ../storage/storage-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: data
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/event/banyandb/e2e-etcd.yaml
b/test/e2e-v2/cases/event/banyandb/e2e-etcd.yaml
index c44fae9db..36cfc82a8 100644
--- a/test/e2e-v2/cases/event/banyandb/e2e-etcd.yaml
+++ b/test/e2e-v2/cases/event/banyandb/e2e-etcd.yaml
@@ -35,3 +35,17 @@ verify:
cases:
- includes:
- ../event-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/event/banyandb/e2e-property.yaml
b/test/e2e-v2/cases/event/banyandb/e2e-property.yaml
index 979c98911..fd203a597 100644
--- a/test/e2e-v2/cases/event/banyandb/e2e-property.yaml
+++ b/test/e2e-v2/cases/event/banyandb/e2e-property.yaml
@@ -35,3 +35,17 @@ verify:
cases:
- includes:
- ../event-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/lifecycle/data-generator/docker-compose.yml
b/test/e2e-v2/cases/lifecycle/data-generator/docker-compose.yml
index b3f6f169e..98f1078ac 100644
--- a/test/e2e-v2/cases/lifecycle/data-generator/docker-compose.yml
+++ b/test/e2e-v2/cases/lifecycle/data-generator/docker-compose.yml
@@ -21,10 +21,10 @@ services:
ports:
- 17912:17912
- 17913:17913
- command: standalone --stream-root-path /tmp/stream-data
--measure-root-path /tmp/measure-data --measure-metadata-cache-wait-duration 1m
--stream-metadata-cache-wait-duration 1m --schema-registry-mode=etcd
+ command: standalone --measure-metadata-cache-wait-duration 1m
--stream-metadata-cache-wait-duration 1m
networks:
- e2e
-
+
oap:
extends:
file: ../../../script/docker-compose/base-compose.yml
diff --git a/test/e2e-v2/cases/lifecycle/data-generator/gen.sh
b/test/e2e-v2/cases/lifecycle/data-generator/gen.sh
index 826ba6a90..fa8a4382d 100644
--- a/test/e2e-v2/cases/lifecycle/data-generator/gen.sh
+++ b/test/e2e-v2/cases/lifecycle/data-generator/gen.sh
@@ -32,12 +32,12 @@ CONTAINER_ID=$(docker compose -f "$COMPOSE_FILE" ps -q
banyandb)
echo "⌛ monitoring segment files..."
found=false
for i in {1..60}; do
- if docker exec "$CONTAINER_ID" sh -c '[ -n "$(ls
/tmp/measure-data/measure/data/metricsDay/seg* 2>/dev/null)" ]'; then
+ if docker exec "$CONTAINER_ID" sh -c '[ -n "$(ls
/tmp/measure/data/sw_metricsDay/seg* 2>/dev/null)" ]'; then
echo "✅ found segment files"
sleep 180
# copy out data
docker cp "$CONTAINER_ID":/tmp "$DIR/tmp"
- docker cp "$CONTAINER_ID":/tmp/measure-data/measure/data/metadata
"$DIR/tmp"
+ docker cp "$CONTAINER_ID":/tmp/measure/data/sw_metadata "$DIR/tmp"
found=true
break
else
@@ -53,4 +53,4 @@ else
exit 1
fi
-docker compose -f "$COMPOSE_FILE" down -v
\ No newline at end of file
+docker compose -f "$COMPOSE_FILE" down -v
diff --git a/test/e2e-v2/cases/lifecycle/docker-compose.yml
b/test/e2e-v2/cases/lifecycle/docker-compose.yml
index e603c28f3..a5fcaee1e 100644
--- a/test/e2e-v2/cases/lifecycle/docker-compose.yml
+++ b/test/e2e-v2/cases/lifecycle/docker-compose.yml
@@ -14,34 +14,26 @@
# limitations under the License.
services:
- etcd:
- extends:
- file: ../../script/docker-compose/base-compose.yml
- service: etcd
- networks:
- - e2e
-
data-hot1:
extends:
file: ../../script/docker-compose/base-compose.yml
service: data
hostname: data-hot1
- command: data --etcd-endpoints=http://etcd:2379 --node-labels type=hot
--schema-registry-mode=etcd --node-discovery-mode=etcd
+ command: data --node-discovery-mode=file
--node-discovery-file-path=/etc/banyandb/nodes.yaml --node-labels type=hot
volumes:
- - ./data-generator/tmp/metadata:/tmp/measure/data/metadata
+ - ./data-generator/tmp/metadata:/tmp/measure/data/sw_metadata
+ - ./nodes.yaml:/etc/banyandb/nodes.yaml
networks:
- e2e
- data-hot2:
+ data-warm1:
extends:
file: ../../script/docker-compose/base-compose.yml
service: data
- hostname: data-hot2
- command: data --etcd-endpoints=http://etcd:2379 --node-labels type=hot
--schema-registry-mode=etcd --node-discovery-mode=etcd
+ hostname: data-warm1
+ command: data --node-discovery-mode=file
--node-discovery-file-path=/etc/banyandb/nodes.yaml --node-labels type=warm
volumes:
- - ./data-generator/tmp/measure-data/measure:/tmp/measure
- - ./data-generator/tmp/stream-data/stream:/tmp/stream
- - ./data-generator/tmp/property/data:/tmp/property
+ - ./nodes.yaml:/etc/banyandb/nodes.yaml
networks:
- e2e
@@ -50,11 +42,13 @@ services:
file: ../../script/docker-compose/base-compose.yml
service: data
hostname: data-cold1
- command: data --etcd-endpoints=http://etcd:2379 --node-labels type=cold
--schema-registry-mode=etcd --node-discovery-mode=etcd
+ command: data --node-discovery-mode=file
--node-discovery-file-path=/etc/banyandb/nodes.yaml --node-labels type=cold
volumes:
- - /tmp/measure/data-cold1:/tmp/measure
- - /tmp/stream/data-cold1:/tmp/stream
- - /tmp/property/data-cold1:/tmp/property
+ - ./data-generator/tmp/measure:/tmp/measure
+ - ./data-generator/tmp/stream:/tmp/stream
+ - ./data-generator/tmp/property:/tmp/property
+ - ./data-generator/tmp/trace:/tmp/trace
+ - ./nodes.yaml:/etc/banyandb/nodes.yaml
networks:
- e2e
@@ -62,7 +56,9 @@ services:
extends:
file: ../../script/docker-compose/base-compose.yml
service: liaison
- command: liaison --etcd-endpoints=http://etcd:2379 --data-node-selector
type=hot --schema-registry-mode=etcd --node-discovery-mode=etcd
+ command: liaison --node-discovery-mode=file
--node-discovery-file-path=/etc/banyandb/nodes.yaml --data-node-selector
type=hot
+ volumes:
+ - ./nodes.yaml:/etc/banyandb/nodes.yaml
networks:
- e2e
@@ -73,44 +69,57 @@ services:
environment:
SW_STORAGE: banyandb
SW_STORAGE_BANYANDB_TARGETS: "liaison:17912"
- SW_STORAGE_BANYANDB_METRICS_MINUTE_ENABLE_WARM_STAGE: "false"
+ SW_STORAGE_BANYANDB_METRICS_MINUTE_ENABLE_WARM_STAGE: "true"
SW_STORAGE_BANYANDB_METRICS_MINUTE_ENABLE_COLD_STAGE: "true"
- SW_STORAGE_BANYANDB_METRICS_HOUR_ENABLE_WARM_STAGE: "false"
+ SW_STORAGE_BANYANDB_METRICS_HOUR_ENABLE_WARM_STAGE: "true"
SW_STORAGE_BANYANDB_METRICS_HOUR_ENABLE_COLD_STAGE: "true"
- SW_STORAGE_BANYANDB_METRICS_DAY_ENABLE_WARM_STAGE: "false"
+ SW_STORAGE_BANYANDB_METRICS_DAY_ENABLE_WARM_STAGE: "true"
SW_STORAGE_BANYANDB_METRICS_DAY_ENABLE_COLD_STAGE: "true"
- SW_STORAGE_BANYANDB_RECORDS_ENABLE_WARM_STAGE: "false"
+ SW_STORAGE_BANYANDB_RECORDS_ENABLE_WARM_STAGE: "true"
SW_STORAGE_BANYANDB_RECORDS_ENABLE_COLD_STAGE: "true"
- SW_STORAGE_BANYANDB_TRACE_ENABLE_WARM_STAGE: "false"
+ SW_STORAGE_BANYANDB_TRACE_ENABLE_WARM_STAGE: "true"
SW_STORAGE_BANYANDB_TRACE_ENABLE_COLD_STAGE: "true"
- SW_STORAGE_BANYANDB_TRACE_TTL_DAYS: "1"
- SW_STORAGE_BANYANDB_RECORDS_TTL_DAYS: "1"
- SW_STORAGE_BANYANDB_METRICS_MINUTE_TTL_DAYS: "1"
- SW_STORAGE_BANYANDB_METRICS_HOUR_TTL_DAYS: "1"
- SW_STORAGE_BANYANDB_METRICS_HOUR_SI_DAYS: "1"
- SW_STORAGE_BANYANDB_METRICS_DAY_TTL_DAYS: "1"
- SW_STORAGE_BANYANDB_METRICS_DAY_SI_DAYS: "1"
ports:
- - 12800
- networks:
- - e2e
+ - 12800:12800
+ - 11800:11800
depends_on:
liaison:
condition: service_healthy
- data-hot1-lifecycle-agent:
- image: "apache/skywalking-banyandb:${TAG}-testing"
- network_mode: service:data-hot2
- volumes_from:
- - data-hot2
- entrypoint: ["/lifecycle", "--node-labels", "type=hot",
"--etcd-endpoints=http://etcd:2379"]
- volumes:
- - /tmp/lifecycle:/tmp
+ agent:
+ extends:
+ file: ../../script/docker-compose/base-compose.yml
+ service: agent
+ networks:
+ - e2e
+
+ provider:
+ extends:
+ file: ../../script/docker-compose/base-compose.yml
+ service: provider
+ ports:
+ - 9090
+ networks:
+ - e2e
depends_on:
- data-hot2:
+ oap:
condition: service_healthy
+ agent:
+ condition: service_completed_successfully
+
+ consumer:
+ extends:
+ file: ../../script/docker-compose/base-compose.yml
+ service: consumer
+ ports:
+ - 9092
+ depends_on:
oap:
condition: service_healthy
+ provider:
+ condition: service_healthy
+ agent:
+ condition: service_completed_successfully
networks:
e2e:
diff --git a/test/e2e-v2/cases/lifecycle/e2e.yaml
b/test/e2e-v2/cases/lifecycle/e2e.yaml
index a219f5513..92cd88966 100644
--- a/test/e2e-v2/cases/lifecycle/e2e.yaml
+++ b/test/e2e-v2/cases/lifecycle/e2e.yaml
@@ -28,14 +28,29 @@ setup:
- name: install swctl
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+trigger:
+ action: http
+ interval: 5s
+ times: -1
+ url: http://${consumer_host}:${consumer_9092}/users
+ method: POST
+ body: '{"id":"123","name":"skywalking"}'
+ headers:
+ "Content-Type": "application/json"
+
verify:
# verify with retry strategy
retry:
# max retry count
- count: 3
+ count: 20
# the interval between two retries, in millisecond.
interval: 10s
cases:
+ - includes:
+ - ../storage/storage-cases.yaml
+ - query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec
--expression="top_n(service_resp_time,3,des,attr0='GENERAL',attr1!='Not_exist')/100"
+ expected: ../storage/expected/topN-OP-service.yml
+
# cold data test
- query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec
--expression=service_resp_time --service-name=mock_a_service --start="-96h"
--end="-48h" --cold=true --step=DAY
expected: ../storage/expected/metrics-has-value.yml
@@ -45,18 +60,39 @@ verify:
expected: ./expected/dependency-instance.yml
- query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql dependency endpoint
--service-name=mock_a_service
--endpoint-name=/dubbox-case/case/dubbox-rest/404-test --start="-96h"
--end="-48h" --cold=true --step=DAY
expected: ./expected/dependency-endpoint.yml
- # TODO:// enabled below when file based sync is supported
- # trace segment list
- # - query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql trace ls --tags
http.method=get --start="-96h" --end="-48h" --cold=true
- # expected: ./expected/traces-list.yml
- # - query: |
- # swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql trace ls --trace-id=$( \
- # swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql trace ls --tags
http.method=get --start="-96h" --end="-48h" --cold=true \
- # | yq e '.traces |
select(.[].endpointnames[0]=="/dubbox-case/case/dubbox-rest/404-test") |
.[0].traceids[0]' -
- # ) --start="-96h" --end="-48h" --cold=true
- # expected: ./expected/trace-detail.yml
+ # trace list
+ - query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls
--service-name=mock_a_service
--endpoint-name=/dubbox-case/case/dubbox-rest/404-test --tags http.method=get
--start="-96h" --end="-48h" --cold=true
+ expected: ./expected/traces-list.yml
## topN
- query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec
--expression="top_n(service_resp_time,3,des,attr0='GENERAL')" --start="-96h"
--end="-48h" --cold=true --step=DAY
expected: ./expected/topN-OP-service.yml
- query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql metrics exec
--expression="top_n(endpoint_resp_time,3,des)" --start="-96h" --end="-48h"
--cold=true --step=DAY
- expected: ./expected/topN-OP-endpoint.yml
\ No newline at end of file
+ expected: ./expected/topN-OP-endpoint.yml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: data-hot1
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
+ - service: data-warm1
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
+ - service: data-cold1
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
b/test/e2e-v2/cases/lifecycle/nodes.yaml
similarity index 66%
copy from test/e2e-v2/cases/storage/expected/metrics-has-value.yml
copy to test/e2e-v2/cases/lifecycle/nodes.yaml
index 37b19de24..fcc72ce89 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/lifecycle/nodes.yaml
@@ -13,22 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-debuggingtrace: null
-type: TIME_SERIES_VALUES
-results:
- {{- contains .results }}
- - metric:
- labels: []
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- owner: null
- traceid: null
- - id: {{ notEmpty .id }}
- value: null
- owner: null
- traceid: null
- {{- end}}
- {{- end}}
-error: null
+nodes:
+ - name: data-hot1
+ grpc_address: data-hot1:17912
+ - name: data-warm1
+ grpc_address: data-warm1:17912
+ - name: data-cold1
+ grpc_address: data-cold1:17912
+ - name: liaison
+ grpc_address: liaison:17912
diff --git a/test/e2e-v2/cases/lifecycle/data-generator/docker-compose.yml
b/test/e2e-v2/cases/log/banyandb/docker-compose.yml
similarity index 72%
copy from test/e2e-v2/cases/lifecycle/data-generator/docker-compose.yml
copy to test/e2e-v2/cases/log/banyandb/docker-compose.yml
index b3f6f169e..79eb59a3c 100644
--- a/test/e2e-v2/cases/lifecycle/data-generator/docker-compose.yml
+++ b/test/e2e-v2/cases/log/banyandb/docker-compose.yml
@@ -13,44 +13,53 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+version: '2.1'
+
services:
banyandb:
extends:
file: ../../../script/docker-compose/base-compose.yml
service: banyandb
- ports:
- - 17912:17912
- - 17913:17913
- command: standalone --stream-root-path /tmp/stream-data
--measure-root-path /tmp/measure-data --measure-metadata-cache-wait-duration 1m
--stream-metadata-cache-wait-duration 1m --schema-registry-mode=etcd
networks:
- e2e
-
+
oap:
extends:
- file: ../../../script/docker-compose/base-compose.yml
+ file: ../log-base-compose.yml
service: oap
environment:
SW_STORAGE: banyandb
- SW_STORAGE_BANYANDB_RECORDS_TTL_DAYS: 5
- SW_STORAGE_BANYANDB_TRACE_TTL_DAYS: 5
ports:
- 12800
- networks:
- - e2e
depends_on:
banyandb:
condition: service_healthy
+ networks:
+ - e2e
- trace-mocker:
- image: "ghcr.io/apache/skywalking/trace-mocker:${SW_TRACE_MOCKER_COMMIT}"
- environment:
- OAP_HOST: oap
- MINUS_DAYS: 3
+ agent:
+ extends:
+ file: ../../../script/docker-compose/base-compose.yml
+ service: agent
networks:
- e2e
+
+ provider:
+ extends:
+ file: ../../../script/docker-compose/base-compose.yml
+ service: provider
+ ports:
+ - 9090
depends_on:
oap:
condition: service_healthy
+ agent:
+ condition: service_completed_successfully
+ networks:
+ - e2e
networks:
e2e:
+
+volumes:
+ sw_agent:
diff --git a/test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
b/test/e2e-v2/cases/log/banyandb/e2e.yaml
similarity index 51%
copy from test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
copy to test/e2e-v2/cases/log/banyandb/e2e.yaml
index 8749cd70d..0891e8f5d 100644
--- a/test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
+++ b/test/e2e-v2/cases/log/banyandb/e2e.yaml
@@ -31,9 +31,9 @@ setup:
trigger:
action: http
interval: 3s
- times: 10
- url: http://${frontend_host}:${frontend_8081}
- method: POST
+ times: -1
+ url: http://${provider_host}:${provider_9090}/logs/trigger
+ method: GET
verify:
# verify with retry strategy
@@ -43,5 +43,31 @@ verify:
# the interval between two retries, in millisecond.
interval: 10s
cases:
- - includes:
- - ../zipkin-cases.yaml
+ # service list
+ - query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql service layer GENERAL
+ expected: ../expected/service.yml
+ # service endpoint
+ - query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql endpoint list --keyword=logs
--service-name=e2e-service-provider
+ expected: ../expected/service-endpoint.yml
+ # service instance list
+ - query: swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql instance list
--service-name=e2e-service-provider
+ expected: ../expected/service-instance.yml
+ - query: |
+ swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql logs list
--service-name=e2e-service-provider --tags level=INFO --trace-id=$( \
+ swctl --display yaml
--base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls | yq e '.traces |
map(select(.spans[0].endpointname == "GET:/logs/trigger")) |
.[0].spans[0].traceid' -
+ )
+ expected: ../expected/logs.yml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git
a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
b/test/e2e-v2/cases/log/expected/logs.yml
similarity index 54%
copy from test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
copy to test/e2e-v2/cases/log/expected/logs.yml
index cfce15019..8cb1e6569 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
+++ b/test/e2e-v2/cases/log/expected/logs.yml
@@ -14,25 +14,27 @@
# limitations under the License.
debuggingtrace: null
-type: TIME_SERIES_VALUES
-results:
- {{- contains .results }}
- - metric:
- labels:
- {{- contains .metric.labels }}
- - key: p
- value: {{ .value }}
- {{- end}}
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- owner: null
- traceid: null
- - id: {{ notEmpty .id }}
- value: null
- owner: null
- traceid: null
- {{- end}}
- {{- end}}
-error: null
+errorreason: null
+logs:
+{{- contains .logs }}
+- servicename: e2e-service-provider
+ serviceid: {{ b64enc "e2e-service-provider" }}.1
+ serviceinstancename: provider1
+ serviceinstanceid: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc
"provider1" }}
+ endpointname: GET:/logs/trigger
+ endpointid: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc
"GET:/logs/trigger" }}
+ traceid: {{ .traceid }}
+ timestamp: {{ gt .timestamp 0 }}
+ contenttype: TEXT
+ content: |
+ {{ notEmpty .content }}
+ tags:
+ {{- contains .tags }}
+ - key: level
+ value: INFO
+ - key: logger
+ value: {{ notEmpty .value }}
+ - key: thread
+ value: {{ notEmpty .value }}
+ {{- end }}
+{{- end }}
diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
b/test/e2e-v2/cases/log/expected/metrics-has-value.yml
similarity index 96%
copy from test/e2e-v2/cases/storage/expected/metrics-has-value.yml
copy to test/e2e-v2/cases/log/expected/metrics-has-value.yml
index 37b19de24..cae6688ae 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/log/expected/metrics-has-value.yml
@@ -22,7 +22,7 @@ results:
values:
{{- contains .values }}
- id: {{ notEmpty .id }}
- value: {{ .value }}
+ value: {{ notEmpty .value }}
owner: null
traceid: null
- id: {{ notEmpty .id }}
diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
b/test/e2e-v2/cases/log/expected/service-endpoint.yml
similarity index 66%
copy from test/e2e-v2/cases/storage/expected/metrics-has-value.yml
copy to test/e2e-v2/cases/log/expected/service-endpoint.yml
index 37b19de24..4efc7bb8a 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/log/expected/service-endpoint.yml
@@ -13,22 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-debuggingtrace: null
-type: TIME_SERIES_VALUES
-results:
- {{- contains .results }}
- - metric:
- labels: []
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- owner: null
- traceid: null
- - id: {{ notEmpty .id }}
- value: null
- owner: null
- traceid: null
- {{- end}}
- {{- end}}
-error: null
+{{- contains .}}
+- id: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc "GET:/logs/trigger" }}
+ name: GET:/logs/trigger
+{{- end}}
diff --git a/test/e2e-v2/cases/log/expected/service-instance.yml
b/test/e2e-v2/cases/log/expected/service-instance.yml
new file mode 100644
index 000000000..5f03bc18e
--- /dev/null
+++ b/test/e2e-v2/cases/log/expected/service-instance.yml
@@ -0,0 +1,40 @@
+# Licensed to Apache Software Foundation (ASF) under one or more contributor
+# license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright
+# ownership. Apache Software Foundation (ASF) licenses this file to you under
+# the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+{{- contains .}}
+- id: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc "provider1" }}
+ name: {{ notEmpty .name }}
+ attributes:
+ {{- contains .attributes }}
+ - name: OS Name
+ value: Linux
+ - name: hostname
+ value: {{ notEmpty .value }}
+ - name: Process No.
+ value: "1"
+ - name: Start Time
+ value: {{ notEmpty .value }}
+ - name: JVM Arguments
+ value: '{{ notEmpty .value }}'
+ - name: Jar Dependencies
+ value: '{{ notEmpty .value }}'
+ - name: ipv4s
+ value: {{ notEmpty .value }}
+ {{- end}}
+ language: JAVA
+ instanceuuid: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc "provider1" }}
+{{- end}}
diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
b/test/e2e-v2/cases/log/expected/service.yml
similarity index 66%
copy from test/e2e-v2/cases/storage/expected/metrics-has-value.yml
copy to test/e2e-v2/cases/log/expected/service.yml
index 37b19de24..75d0916f0 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/log/expected/service.yml
@@ -13,22 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-debuggingtrace: null
-type: TIME_SERIES_VALUES
-results:
- {{- contains .results }}
- - metric:
- labels: []
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- owner: null
- traceid: null
- - id: {{ notEmpty .id }}
- value: null
- owner: null
- traceid: null
- {{- end}}
- {{- end}}
-error: null
+{{- contains . }}
+- id: {{ b64enc "e2e-service-provider" }}.1
+ name: e2e-service-provider
+ group: ""
+ shortname: e2e-service-provider
+ normal: true
+ layers:
+ - GENERAL
+{{- end }}
diff --git a/test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
b/test/e2e-v2/cases/log/lal.yaml
similarity index 55%
copy from test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
copy to test/e2e-v2/cases/log/lal.yaml
index 32ab481a9..4d98c9316 100644
--- a/test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
+++ b/test/e2e-v2/cases/log/lal.yaml
@@ -13,25 +13,23 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# This file is used to show how to write configuration files and can be used
to test.
-
-setup:
- env: compose
- file: docker-compose-etcd.yml
- timeout: 20m
- init-system-environment: ../../../../script/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
- retry:
- count: 20
- interval: 3s
- cases:
- - includes:
- - ../profiling-cases.yaml
+rules:
+ - name: example
+ layer: GENERAL
+ dsl: |
+ filter {
+ text {
+ abortOnFailure false // for test purpose, we want to persist all logs
+ regexp $/(?s)(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3})
\[TID:(?<tid>.+?)] \[(?<thread>.+?)] (?<level>\w{4,}) (?<logger>.{1,36})
(?<msg>.+)/$
+ }
+ extractor {
+ metrics {
+ timestamp log.timestamp as Long
+ labels level: parsed.level, service: log.service, instance:
log.serviceInstance
+ name "log_count"
+ value 1
+ }
+ }
+ sink {
+ }
+ }
diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
b/test/e2e-v2/cases/log/log-base-compose.yml
similarity index 66%
copy from test/e2e-v2/cases/storage/expected/metrics-has-value.yml
copy to test/e2e-v2/cases/log/log-base-compose.yml
index 37b19de24..8aebe75dd 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/log/log-base-compose.yml
@@ -13,22 +13,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-debuggingtrace: null
-type: TIME_SERIES_VALUES
-results:
- {{- contains .results }}
- - metric:
- labels: []
- values:
- {{- contains .values }}
- - id: {{ notEmpty .id }}
- value: {{ .value }}
- owner: null
- traceid: null
- - id: {{ notEmpty .id }}
- value: null
- owner: null
- traceid: null
- {{- end}}
- {{- end}}
-error: null
+version: '2.1'
+
+services:
+ oap:
+ extends:
+ file: ../../script/docker-compose/base-compose.yml
+ service: oap
+ environment:
+ SW_LOG_LAL_FILES: test
+ SW_LOG_MAL_FILES: test
+ volumes:
+ - ./lal.yaml:/skywalking/config/lal/test.yaml
+ - ./log-mal.yaml:/skywalking/config/log-mal-rules/test.yaml
+ networks:
+ - e2e
+
+networks:
+ e2e:
diff --git a/test/e2e-v2/cases/log/log-mal.yaml
b/test/e2e-v2/cases/log/log-mal.yaml
new file mode 100644
index 000000000..1021b85e3
--- /dev/null
+++ b/test/e2e-v2/cases/log/log-mal.yaml
@@ -0,0 +1,36 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This will parse a textual representation of a duration. The formats
+# accepted are based on the ISO-8601 duration format {@code PnDTnHnMn.nS}
+# with days considered to be exactly 24 hours.
+# <p>
+# Examples:
+# <pre>
+# "PT20.345S" -- parses as "20.345 seconds"
+# "PT15M" -- parses as "15 minutes" (where a minute is 60 seconds)
+# "PT10H" -- parses as "10 hours" (where an hour is 3600 seconds)
+# "P2D" -- parses as "2 days" (where a day is 24 hours or 86400
seconds)
+# "P2DT3H4M" -- parses as "2 days, 3 hours and 4 minutes"
+# "P-6H3M" -- parses as "-6 hours and +3 minutes"
+# "-P6H3M" -- parses as "-6 hours and -3 minutes"
+# "-P-6H+3M" -- parses as "+6 hours and -3 minutes"
+# </pre>
+
+expSuffix: instance(['service'], ['instance'], Layer.GENERAL)
+metricPrefix: log
+metricsRules:
+ - name: count_info
+ exp: log_count.tagEqual('level', 'INFO').sum(['service',
'instance']).downsampling(SUM)
diff --git a/test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
b/test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
index 32ab481a9..940e1b19d 100644
--- a/test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
+++ b/test/e2e-v2/cases/profiling/trace/banyandb/e2e-etcd.yaml
@@ -35,3 +35,17 @@ verify:
cases:
- includes:
- ../profiling-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/profiling/trace/banyandb/e2e-property.yaml
b/test/e2e-v2/cases/profiling/trace/banyandb/e2e-property.yaml
index b92258adf..40ab8648a 100644
--- a/test/e2e-v2/cases/profiling/trace/banyandb/e2e-property.yaml
+++ b/test/e2e-v2/cases/profiling/trace/banyandb/e2e-property.yaml
@@ -35,3 +35,17 @@ verify:
cases:
- includes:
- ../profiling-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
b/test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
index a6eb6f79b..200167081 100644
--- a/test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
@@ -52,6 +52,14 @@ setup:
- name: Wait for BanyanDB
command: kubectl rollout status deployment/banyandb -n istio-system
--timeout=120s
- name: Install SkyWalking
+ # To enable BanyanDB access logs for debugging, add the following --set
flags to the helm install command:
+ # --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"
+ # Note: access logs use Go channels with internal mutex locks, which
adds contention to the request path.
command: |
rm -rf skywalking-helm
helm pull oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
@@ -101,3 +109,18 @@ verify:
swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
instance list --service-name=productpage.default | yq e '.[0].name' - \
)
expected: expected/process.yml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - namespace: istio-system
+ label-selector: app=banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/storage/banyandb/e2e-etcd.yaml
b/test/e2e-v2/cases/storage/banyandb/e2e-etcd.yaml
index 2b3c65806..02b072ead 100644
--- a/test/e2e-v2/cases/storage/banyandb/e2e-etcd.yaml
+++ b/test/e2e-v2/cases/storage/banyandb/e2e-etcd.yaml
@@ -48,3 +48,17 @@ verify:
cases:
- includes:
- ../storage-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/cases/storage/banyandb/e2e-property.yaml
b/test/e2e-v2/cases/storage/banyandb/e2e-property.yaml
index ec682c7cf..7438a3da8 100644
--- a/test/e2e-v2/cases/storage/banyandb/e2e-property.yaml
+++ b/test/e2e-v2/cases/storage/banyandb/e2e-property.yaml
@@ -48,3 +48,17 @@ verify:
cases:
- includes:
- ../storage-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git
a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
b/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
index cfce15019..2ca902c8b 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
+++ b/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml
@@ -21,12 +21,12 @@ results:
labels:
{{- contains .metric.labels }}
- key: p
- value: {{ .value }}
+ value: {{ notEmpty .value }}
{{- end}}
values:
{{- contains .values }}
- id: {{ notEmpty .id }}
- value: {{ .value }}
+ value: {{ notEmpty .value }}
owner: null
traceid: null
- id: {{ notEmpty .id }}
diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
b/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
index 37b19de24..cae6688ae 100644
--- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/storage/expected/metrics-has-value.yml
@@ -22,7 +22,7 @@ results:
values:
{{- contains .values }}
- id: {{ notEmpty .id }}
- value: {{ .value }}
+ value: {{ notEmpty .value }}
owner: null
traceid: null
- id: {{ notEmpty .id }}
diff --git a/test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
b/test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
index 8749cd70d..2e2f9dad8 100644
--- a/test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
+++ b/test/e2e-v2/cases/zipkin/banyandb/e2e.yaml
@@ -31,7 +31,7 @@ setup:
trigger:
action: http
interval: 3s
- times: 10
+ times: -1
url: http://${frontend_host}:${frontend_8081}
method: POST
@@ -45,3 +45,17 @@ verify:
cases:
- includes:
- ../zipkin-cases.yaml
+
+cleanup:
+ on: always
+ collect:
+ on: failure
+ output-dir: $SW_INFRA_E2E_LOG_DIR/banyandb-data
+ items:
+ - service: banyandb
+ paths:
+ - /tmp/trace/
+ - /tmp/stream/
+ - /tmp/measure/
+ - /tmp/property/
+ - /tmp/schema-property/
diff --git a/test/e2e-v2/script/env b/test/e2e-v2/script/env
index ac6f7da59..33b27fad2 100644
--- a/test/e2e-v2/script/env
+++ b/test/e2e-v2/script/env
@@ -26,7 +26,7 @@ SW_ROVER_COMMIT=4c0cb8429a96f190ea30eac1807008d523c749c3
SW_AGENT_PHP_COMMIT=3192c553002707d344bd6774cfab5bc61f67a1d3
SW_PREDICTOR_COMMIT=54a0197654a3781a6f73ce35146c712af297c994
-SW_OAP_COMMIT=4325e74919d0bf8496e9d861e3bbde99cffff597
+SW_OAP_COMMIT=6248d1b7259dd24cc8218a8513d14cf018c519f0
SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=a2a67ca63084cddf82303155c185e3c24cf07eef
SW_CTL_COMMIT=3b675df73824bbb80e6aabf6a95d110feb37b6b1
SW_TRACE_MOCKER_COMMIT=a2a67ca63084cddf82303155c185e3c24cf07eef