From 6e99ab7e8fed451d24e4d6041ec4c3db7c44f237 Mon Sep 17 00:00:00 2001 From: Gao Hongtao Date: Mon, 23 Dec 2024 14:10:41 +0800 Subject: [PATCH] Fix querying the index on a entity tag (#579) * Fix querying the index on a entity tag Signed-off-by: Gao Hongtao * Remove e2e --- .github/workflows/e2e.storage.yml | 2 - .gitignore | 1 + CHANGES.md | 1 + api/proto/banyandb/measure/v1/rpc.proto | 7 ++- banyand/measure/measure.go | 12 +++- banyand/measure/write.go | 3 + pkg/index/inverted/query.go | 11 ++-- test/docker/base-compose.yml | 5 +- test/e2e-v2/cases/cluster/storage-cases.yaml | 16 +++++ .../profiling/ebpf/oncpu/Dockerfile.sqrt | 23 ------- .../ebpf/oncpu/banyandb/docker-compose.yml | 58 ----------------- .../profiling/ebpf/oncpu/banyandb/e2e.yaml | 37 ----------- .../profiling/ebpf/oncpu/docker-compose.yml | 62 ------------------- .../oncpu/expected/process-estimate-scale.yml | 16 ----- .../profiling/ebpf/oncpu/expected/process.yml | 41 ------------ .../expected/profiling-create-prepare.yml | 21 ------- .../ebpf/oncpu/expected/profiling-create.yml | 18 ------ .../expected/profiling-schedule-list.yml | 44 ------------- .../oncpu/expected/profiling-task-list.yml | 35 ----------- .../profiling/ebpf/oncpu/expected/service.yml | 24 ------- .../profiling/ebpf/oncpu/profiling-cases.yaml | 45 -------------- .../e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go | 33 ---------- .../profiling/trace/expected/traces-list.yml | 1 + .../expected/dependency-endpoint-consumer.yml | 3 +- .../expected/dependency-endpoint-provider.yml | 3 +- .../storage/expected/dependency-instance.yml | 3 +- .../expected/dependency-services-consumer.yml | 9 ++- .../expected/dependency-services-provider.yml | 9 ++- .../storage/expected/empty-traces-list.yml | 3 +- .../expected/metrics-has-value-percentile.yml | 5 +- .../storage/expected/metrics-has-value.yml | 5 +- .../expected/topN-OP-endpoint.yml} | 26 +++++--- .../expected/topN-OP-service.yml} | 31 ++++++---- .../storage/expected/trace-users-detail.yml | 3 +- .../cases/storage/expected/traces-list.yml | 3 +- test/e2e-v2/cases/storage/storage-cases.yaml | 16 +++++ test/e2e-v2/script/env | 11 ++-- 37 files changed, 142 insertions(+), 504 deletions(-) delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/Dockerfile.sqrt delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/docker-compose.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/docker-compose.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process-estimate-scale.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create-prepare.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-schedule-list.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-task-list.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/expected/service.yml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/profiling-cases.yaml delete mode 100644 test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go rename test/e2e-v2/cases/{profiling/ebpf/oncpu/expected/instance.yml => storage/expected/topN-OP-endpoint.yml} (67%) rename test/e2e-v2/cases/{profiling/ebpf/oncpu/expected/profiling-analysis.yml => storage/expected/topN-OP-service.yml} (67%) diff --git a/.github/workflows/e2e.storage.yml b/.github/workflows/e2e.storage.yml index 1673b20a6..c6fd07e25 100644 --- a/.github/workflows/e2e.storage.yml +++ b/.github/workflows/e2e.storage.yml @@ -43,8 +43,6 @@ jobs: config: test/e2e-v2/cases/storage/banyandb/e2e.yaml - name: Trace Profiling BanyanDB config: test/e2e-v2/cases/profiling/trace/banyandb/e2e.yaml - - name: eBPF Profiling BanyanDB - config: test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml - name: Event BanyanDB config: test/e2e-v2/cases/event/banyandb/e2e.yaml - name: BanyanDB Cluster Mode diff --git a/.gitignore b/.gitignore index ac4d116f2..ce674e13a 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,7 @@ target # mock files *mock.go *mock_test.go +gomock_reflect* # snky cache .dccache diff --git a/CHANGES.md b/CHANGES.md index fba1df839..6742fc3b7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -41,6 +41,7 @@ Release Notes. ### Chores - Fix metrics system typo. +- Bump up OAP in CI to 6d262cce62e156bd197177abb3640ea65bb2d38e. ### CVEs diff --git a/api/proto/banyandb/measure/v1/rpc.proto b/api/proto/banyandb/measure/v1/rpc.proto index 31ad2f28b..5f216834e 100644 --- a/api/proto/banyandb/measure/v1/rpc.proto +++ b/api/proto/banyandb/measure/v1/rpc.proto @@ -38,5 +38,10 @@ service MeasureService { } rpc Write(stream WriteRequest) returns (stream WriteResponse); - rpc TopN(TopNRequest) returns (TopNResponse); + rpc TopN(TopNRequest) returns (TopNResponse) { + option (google.api.http) = { + post: "/v1/measure/topn" + body: "*" + }; + } } diff --git a/banyand/measure/measure.go b/banyand/measure/measure.go index 40a108982..4c4f85bd6 100644 --- a/banyand/measure/measure.go +++ b/banyand/measure/measure.go @@ -51,14 +51,15 @@ type option struct { type measure struct { databaseSupplier schema.Supplier + indexTagMap map[string]struct{} l *logger.Logger schema *databasev1.Measure processorManager *topNProcessorManager + fieldIndexLocation partition.FieldIndexLocation name string group string - indexRules []*databasev1.IndexRule indexRuleLocators partition.IndexRuleLocator - fieldIndexLocation partition.FieldIndexLocation + indexRules []*databasev1.IndexRule topNAggregations []*databasev1.TopNAggregation interval time.Duration shardNum uint32 @@ -104,7 +105,12 @@ func (s *measure) parseSpec() (err error) { s.interval, err = timestamp.ParseDuration(s.schema.Interval) } s.indexRuleLocators, s.fieldIndexLocation = partition.ParseIndexRuleLocators(s.schema.GetEntity(), s.schema.GetTagFamilies(), s.indexRules, s.schema.IndexMode) - + s.indexTagMap = make(map[string]struct{}) + for j := range s.indexRules { + for k := range s.indexRules[j].Tags { + s.indexTagMap[s.indexRules[j].Tags[k]] = struct{}{} + } + } return err } diff --git a/banyand/measure/write.go b/banyand/measure/write.go index 35ac5a146..5aa18042d 100644 --- a/banyand/measure/write.go +++ b/banyand/measure/write.go @@ -284,6 +284,9 @@ func (w *writeCallback) appendEntityTagsToIndexFields(fields []index.Field, stm f.NoSort = true fields = append(fields, f) for i := range stm.schema.Entity.TagNames { + if _, exists := stm.indexTagMap[stm.schema.Entity.TagNames[i]]; exists { + continue + } tagName := stm.schema.Entity.TagNames[i] var t *databasev1.TagSpec for j := range stm.schema.TagFamilies { diff --git a/pkg/index/inverted/query.go b/pkg/index/inverted/query.go index d15b4485b..c74cdae0d 100644 --- a/pkg/index/inverted/query.go +++ b/pkg/index/inverted/query.go @@ -197,14 +197,14 @@ func buildIndexModeCriteria(criteria *modelv1.Criteria, schema logical.Schema, e if err != nil { return nil, err } - if _, ok := entityDict[cond.Name]; ok { - fk := index.FieldKey{TagName: index.IndexModeEntityTagPrefix + cond.Name} - return parseConditionToQuery(cond, nil, expr, fk.Marshal()) - } if ok, indexRule := schema.IndexDefined(cond.Name); ok { fk := index.FieldKey{IndexRuleID: indexRule.Metadata.Id} return parseConditionToQuery(cond, indexRule, expr, fk.Marshal()) } + if _, ok := entityDict[cond.Name]; ok { + fk := index.FieldKey{TagName: index.IndexModeEntityTagPrefix + cond.Name} + return parseConditionToQuery(cond, nil, expr, fk.Marshal()) + } return nil, errors.Wrapf(logical.ErrUnsupportedConditionOp, "mandatory index rule conf:%s", cond) case *modelv1.Criteria_Le: le := criteria.GetLe() @@ -301,6 +301,9 @@ func parseConditionToQuery(cond *modelv1.Condition, indexRule *databasev1.IndexR node := newTermNode(str, indexRule) return &queryNode{query, node}, nil case modelv1.Condition_BINARY_OP_MATCH: + if indexRule == nil { + return nil, errors.WithMessagef(logical.ErrUnsupportedConditionOp, "index rule is mandatory for match operation: %s", cond) + } bb := expr.Bytes() if len(bb) != 1 { return nil, errors.WithMessagef(logical.ErrUnsupportedConditionOp, "don't support multiple or null value: %s", cond) diff --git a/test/docker/base-compose.yml b/test/docker/base-compose.yml index ebf9eac55..9fcb81f95 100644 --- a/test/docker/base-compose.yml +++ b/test/docker/base-compose.yml @@ -67,9 +67,6 @@ services: - 5005 environment: SW_STORAGE_BANYANDB_TARGETS: banyandb:17912 - SW_CONFIG_ETCD_PERIOD: 1 - SW_CONFIG_ETCD_ENDPOINTS: http://etcd:2379 - SW_CLUSTER_ETCD_ENDPOINTS: http://etcd:2379 healthcheck: test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/11800"] interval: 5s @@ -98,6 +95,7 @@ services: SW_AGENT_INSTANCE_NAME: provider1 SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL: 1 SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL: 1 + SW_METER_ACTIVE: 'false' healthcheck: test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9090"] interval: 5s @@ -120,6 +118,7 @@ services: SW_AGENT_INSTANCE_NAME: consumer1 SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL: 1 SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL: 1 + SW_METER_ACTIVE: 'false' healthcheck: test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/9092"] interval: 5s diff --git a/test/e2e-v2/cases/cluster/storage-cases.yaml b/test/e2e-v2/cases/cluster/storage-cases.yaml index 28c128b08..8ce1e5c76 100644 --- a/test/e2e-v2/cases/cluster/storage-cases.yaml +++ b/test/e2e-v2/cases/cluster/storage-cases.yaml @@ -160,3 +160,19 @@ cases: | yq e '.traces[0].traceids[0]' - \ ) expected: ../storage/expected/trace-users-detail.yml + # topN-OP-service Global + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_sla,3,des)/100" + expected: ../storage/expected/topN-OP-service.yml + # topN-OP-service Global with attrs + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_sla,3,des,attr0='GENERAL')/100" + expected: ../storage/expected/topN-OP-service.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_sla,3,des,attr0!='Not_GENERAL')/100" + expected: ../storage/expected/topN-OP-service.yml + # topN-OP-endpoint Global + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_sla,3,des)/100" + expected: ../storage/expected/topN-OP-endpoint.yml + # topN-OP-endpoint Global with attrs + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_sla,3,des,attr0='GENERAL')/100" + expected: ../storage/expected/topN-OP-endpoint.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_sla,3,des,attr0!='Not_GENERAL')/100" + expected: ../storage/expected/topN-OP-endpoint.yml \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/Dockerfile.sqrt b/test/e2e-v2/cases/profiling/ebpf/oncpu/Dockerfile.sqrt deleted file mode 100644 index 432e69618..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/Dockerfile.sqrt +++ /dev/null @@ -1,23 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM golang:1.17 - -WORKDIR / -COPY sqrt.go /sqrt.go -RUN go build -o sqrt sqrt.go - -CMD ["/sqrt"] \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/docker-compose.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/docker-compose.yml deleted file mode 100644 index 617c1a203..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/docker-compose.yml +++ /dev/null @@ -1,58 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -version: '2.1' - -services: - banyandb: - extends: - file: ../docker-compose.yml - service: banyandb - networks: - - e2e - - oap: - extends: - file: ../docker-compose.yml - service: oap - networks: - - e2e - environment: - SW_STORAGE: banyandb - depends_on: - banyandb: - condition: service_healthy - ports: - - 12800 - - sqrt: - extends: - file: ../docker-compose.yml - service: sqrt - networks: - - e2e - - rover: - extends: - file: ../docker-compose.yml - service: rover - networks: - - e2e - depends_on: - oap: - condition: service_healthy - -networks: - e2e: \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml b/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml deleted file mode 100644 index f8fdca0f4..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file is used to show how to write configuration files and can be used to test. - -setup: - env: compose - file: docker-compose.yml - timeout: 20m - init-system-environment: ../../../../../script/env - steps: - - name: set PATH - command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH - - name: install yq - command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq - - name: install swctl - command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl - -verify: - retry: - count: 20 - interval: 10s - cases: - - includes: - - ../profiling-cases.yaml \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/docker-compose.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/docker-compose.yml deleted file mode 100644 index a41db1f3a..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/docker-compose.yml +++ /dev/null @@ -1,62 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -version: '2.1' - -services: - oap: - extends: - file: ../../../../script/docker-compose/base-compose.yml - service: oap - - banyandb: - extends: - file: ../../../../script/docker-compose/base-compose.yml - service: banyandb - - sqrt: - build: - context: . - dockerfile: Dockerfile.sqrt - networks: - - e2e - - rover: - image: "ghcr.io/apache/skywalking-rover/skywalking-rover:${SW_ROVER_COMMIT}" - networks: - - e2e - privileged: true - pid: host - environment: - ROVER_HOST_MAPPING: /host - ROVER_BACKEND_ADDR: oap:11800 - ROVER_PROCESS_DISCOVERY_HEARTBEAT_PERIOD: 2s - ROVER_PROCESS_DISCOVERY_VM_ACTIVE: "true" - ROVER_PROCESS_DISCOVERY_SCAN_MODE: REGEX - ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: sqrt - ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LAYER: OS_LINUX - ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: sqrt - ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_INSTANCE_NAME: test-instance - ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_PROCESS_NAME: "{{.Process.ExeName}}" - ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LABELS: e2e-label1,e2e-label2 - ROVER_PROFILING_ACTIVE: "true" - ROVER_PROFILING_CHECK_INTERVAL: 2s - ROVER_PROFILING_FLUSH_INTERVAL: 5s - ROVER_PROFILING_TASK_ON_CPU_DUMP_PERIOD: 9ms - volumes: - - /:/host - -networks: - e2e: \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process-estimate-scale.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process-estimate-scale.yml deleted file mode 100644 index a4bfca0c7..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process-estimate-scale.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -1 \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process.yml deleted file mode 100644 index b96963165..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/process.yml +++ /dev/null @@ -1,41 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -{{- contains . }} -- id: {{ notEmpty .id }} - name: sqrt - serviceid: {{ b64enc "sqrt" }}.1 - servicename: sqrt - instanceid: {{ b64enc "sqrt" }}.1_{{ b64enc "test-instance" }} - instancename: test-instance - agentid: {{ notEmpty .agentid }} - detecttype: VM - attributes: - {{- contains .attributes }} - - name: host_ip - value: {{ notEmpty .value }} - - name: pid - value: {{ notEmpty .value }} - - name: command_line - value: /sqrt - - name: support_ebpf_profiling - value: "true" - {{- end }} - labels: - {{- contains .labels }} - - e2e-label1 - - e2e-label2 - {{- end }} -{{- end }} diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create-prepare.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create-prepare.yml deleted file mode 100644 index b1226a33e..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create-prepare.yml +++ /dev/null @@ -1,21 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -couldprofiling: true -processlabels: - {{- contains .processlabels }} - - e2e-label1 - - e2e-label2 - {{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create.yml deleted file mode 100644 index 176b195ae..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-create.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -status: true -errorreason: null -id: {{ notEmpty .id }} \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-schedule-list.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-schedule-list.yml deleted file mode 100644 index 728a68d50..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-schedule-list.yml +++ /dev/null @@ -1,44 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -{{- contains . }} -- scheduleid: {{ notEmpty .scheduleid }} - taskid: {{ notEmpty .taskid }} - process: - id: {{ notEmpty .process.id }} - name: sqrt - serviceid: {{ b64enc "sqrt" }}.1 - servicename: sqrt - instanceid: {{ b64enc "sqrt" }}.1_{{ b64enc "test-instance" }} - instancename: test-instance - agentid: {{ notEmpty .process.agentid }} - detecttype: VM - attributes: - {{- contains .process.attributes }} - - name: host_ip - value: {{ notEmpty .value }} - - name: pid - value: {{ notEmpty .value }} - - name: command_line - value: /sqrt - {{- end }} - labels: - {{- contains .process.labels }} - - e2e-label1 - - e2e-label2 - {{- end }} - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} -{{- end }} diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-task-list.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-task-list.yml deleted file mode 100644 index f357fd6f0..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-task-list.yml +++ /dev/null @@ -1,35 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -{{- contains . }} -- taskid: {{ notEmpty .taskid }} - serviceid: {{ b64enc "sqrt" }}.1 - servicename: sqrt - serviceinstanceid: null - serviceinstancename: null - processid: null - processname: null - processlabels: - {{- contains .processlabels }} - - e2e-label1 - - e2e-label2 - {{- end }} - taskstarttime: {{ gt .taskstarttime 0 }} - triggertype: FIXED_TIME - fixedtriggerduration: 60 - targettype: ON_CPU - createtime: {{ gt .createtime 0 }} - continuousprofilingcauses: [] -{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/service.yml b/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/service.yml deleted file mode 100644 index 4c0ee2b0c..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/service.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -{{- contains . }} -- id: {{ b64enc "sqrt" }}.1 - name: sqrt - group: "" - shortname: sqrt - layers: - - OS_LINUX - normal: true -{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/profiling-cases.yaml b/test/e2e-v2/cases/profiling/ebpf/oncpu/profiling-cases.yaml deleted file mode 100644 index 902a3be9e..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/profiling-cases.yaml +++ /dev/null @@ -1,45 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file is used to show how to write configuration files and can be used to test. - -cases: - - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml service ls - expected: expected/service.yml - - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml instance ls --service-name sqrt - expected: expected/instance.yml - - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml process ls --service-name sqrt --instance-name test-instance - expected: expected/process.yml - - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf create prepare --service-name sqrt - expected: expected/profiling-create-prepare.yml - - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml process estimate scale --service-name sqrt --labels e2e-label1,e2e-label2 - expected: expected/process-estimate-scale.yml - - query: | - swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf create fixed --service-name sqrt --labels e2e-label1,e2e-label2 --duration 1m - expected: expected/profiling-create.yml - - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name sqrt - expected: expected/profiling-task-list.yml - - query: | - swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$( \ - swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name sqrt |yq e '.[0].taskid' - - ) - expected: expected/profiling-schedule-list.yml - - query: | - taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name sqrt |yq e '.[0].taskid' -) - scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid |yq e '.[0].scheduleid' -); - start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].starttime' -) - end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -) - swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end - expected: expected/profiling-analysis.yml \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go b/test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go deleted file mode 100644 index eb3dbc056..000000000 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/sqrt.go +++ /dev/null @@ -1,33 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package main is the entry point of the process for EBPF profiling. -package main - -import ( - "math" -) - -//go:noinline -func sqrtInGolang() { - for { - math.Sqrt(10000) - } -} - -func main() { - sqrtInGolang() -} diff --git a/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml b/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml index 196d87a0a..c9a971664 100644 --- a/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml +++ b/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null traces: {{- contains .traces }} - segmentid: {{ notEmpty .segmentid }} diff --git a/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml b/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml index 8f5a8b26b..d79834ff4 100644 --- a/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml +++ b/test/e2e-v2/cases/storage/expected/dependency-endpoint-consumer.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null nodes: {{- contains .nodes }} - id: {{ b64enc "User" }}.0_{{ b64enc "User" }} @@ -50,4 +51,4 @@ calls: id: {{ b64enc "e2e-service-consumer" }}.1-{{ b64enc "POST:/users" }}-{{ b64enc "e2e-service-provider" }}.1-{{ b64enc "POST:/users" }} detectpoints: - SERVER -{{- end }} +{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml b/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml index 3835336b8..87cd0f804 100644 --- a/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml +++ b/test/e2e-v2/cases/storage/expected/dependency-endpoint-provider.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null nodes: {{- contains .nodes }} - id: {{ b64enc "e2e-service-consumer" }}.1_{{ b64enc "POST:/users" }} @@ -37,4 +38,4 @@ calls: id: {{ b64enc "e2e-service-consumer" }}.1-{{ b64enc "POST:/users" }}-{{ b64enc "e2e-service-provider" }}.1-{{ b64enc "POST:/users" }} detectpoints: - SERVER -{{- end }} +{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/dependency-instance.yml b/test/e2e-v2/cases/storage/expected/dependency-instance.yml index 61cc1cad9..8be014ed5 100644 --- a/test/e2e-v2/cases/storage/expected/dependency-instance.yml +++ b/test/e2e-v2/cases/storage/expected/dependency-instance.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null nodes: {{- contains .nodes }} - id: {{ b64enc "e2e-service-consumer" }}.1_{{ b64enc "consumer1" }} @@ -38,4 +39,4 @@ calls: detectpoints: - CLIENT - SERVER -{{- end }} +{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml b/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml index 106faf57a..1d3770512 100644 --- a/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml +++ b/test/e2e-v2/cases/storage/expected/dependency-services-consumer.yml @@ -13,20 +13,27 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null nodes: {{- contains .nodes }} - id: {{ b64enc "User"}}.0 name: User type: USER isreal: false + layers: + - UNDEFINED - id: {{ b64enc "e2e-service-consumer"}}.1 name: e2e-service-consumer type: Tomcat isreal: true + layers: + - GENERAL - id: {{ b64enc "e2e-service-provider"}}.1 name: e2e-service-provider type: Tomcat isreal: true + layers: + - GENERAL {{- end }} calls: {{- contains .calls }} @@ -48,4 +55,4 @@ calls: id: {{ b64enc "User" }}.0-{{ b64enc "e2e-service-consumer"}}.1 detectpoints: - SERVER -{{- end }} +{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml b/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml index 636469740..8d8d8bf97 100644 --- a/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml +++ b/test/e2e-v2/cases/storage/expected/dependency-services-provider.yml @@ -13,20 +13,27 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null nodes: {{- contains .nodes }} - id: {{ b64enc "e2e-service-provider"}}.1 name: e2e-service-provider type: Tomcat isreal: true + layers: + - GENERAL - id: {{ b64enc "e2e-service-consumer"}}.1 name: e2e-service-consumer type: Tomcat isreal: true + layers: + - GENERAL - id: {{ b64enc "localhost:-1" }}.0 name: localhost:-1 type: H2 isreal: false + layers: + - VIRTUAL_DATABASE {{- end }} calls: {{- contains .calls }} @@ -48,4 +55,4 @@ calls: id: {{ b64enc "e2e-service-provider" }}.1-{{ b64enc "localhost:-1"}}.0 detectpoints: - CLIENT -{{- end }} +{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/empty-traces-list.yml b/test/e2e-v2/cases/storage/expected/empty-traces-list.yml index 294a89e06..747725eba 100644 --- a/test/e2e-v2/cases/storage/expected/empty-traces-list.yml +++ b/test/e2e-v2/cases/storage/expected/empty-traces-list.yml @@ -13,4 +13,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -traces: [] +debuggingtrace: null +traces: [] \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml b/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml index 0e662e432..f89e729b8 100644 --- a/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml +++ b/test/e2e-v2/cases/storage/expected/metrics-has-value-percentile.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null type: TIME_SERIES_VALUES results: {{- contains .results }} @@ -26,10 +27,12 @@ results: {{- contains .values }} - id: {{ notEmpty .id }} value: {{ .value }} + owner: null traceid: null - id: {{ notEmpty .id }} value: null + owner: null traceid: null {{- end}} {{- end}} -error: null +error: null \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml b/test/e2e-v2/cases/storage/expected/metrics-has-value.yml index dc71f5663..d228fd61e 100644 --- a/test/e2e-v2/cases/storage/expected/metrics-has-value.yml +++ b/test/e2e-v2/cases/storage/expected/metrics-has-value.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null type: TIME_SERIES_VALUES results: {{- contains .results }} @@ -22,10 +23,12 @@ results: {{- contains .values }} - id: {{ notEmpty .id }} value: {{ .value }} + owner: null traceid: null - id: {{ notEmpty .id }} value: null + owner: null traceid: null {{- end}} {{- end}} -error: null +error: null \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/instance.yml b/test/e2e-v2/cases/storage/expected/topN-OP-endpoint.yml similarity index 67% rename from test/e2e-v2/cases/profiling/ebpf/oncpu/expected/instance.yml rename to test/e2e-v2/cases/storage/expected/topN-OP-endpoint.yml index 5f276502f..8e21a0a09 100644 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/instance.yml +++ b/test/e2e-v2/cases/storage/expected/topN-OP-endpoint.yml @@ -13,10 +13,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -{{- contains . }} -- id: {{ b64enc "sqrt" }}.1_{{ b64enc "test-instance" }} - name: test-instance - attributes: [] - language: UNKNOWN - instanceuuid: {{ notEmpty .instanceuuid }} -{{- end }} +debuggingtrace: null +type: SORTED_LIST +results: + {{- contains .results }} + - metric: + labels: [] + values: + {{- contains .values }} + - id: {{ notEmpty .id }} + value: "100" + owner: null + traceid: null + - id: {{ notEmpty .id }} + value: "100" + owner: null + traceid: null + {{- end }} + {{- end }} +error: null \ No newline at end of file diff --git a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-analysis.yml b/test/e2e-v2/cases/storage/expected/topN-OP-service.yml similarity index 67% rename from test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-analysis.yml rename to test/e2e-v2/cases/storage/expected/topN-OP-service.yml index fdabcce94..b7bb99a41 100644 --- a/test/e2e-v2/cases/profiling/ebpf/oncpu/expected/profiling-analysis.yml +++ b/test/e2e-v2/cases/storage/expected/topN-OP-service.yml @@ -13,15 +13,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -tip: null -trees: -{{- contains .trees }} -- elements: - {{- contains .elements }} - - id: "{{ notEmpty .id }}" - parentid: "{{ notEmpty .parentid }}" - symbol: "main.sqrtInGolang" - stacktype: USER_SPACE - dumpcount: {{ gt .dumpcount 0 }} -{{- end }} -{{- end }} \ No newline at end of file +debuggingtrace: null +type: SORTED_LIST +results: + {{- contains .results }} + - metric: + labels: [] + values: + {{- contains .values }} + - id: {{ notEmpty .id }} + owner: null + value: "100" + traceid: null + - id: {{ notEmpty .id }} + owner: null + value: "100" + traceid: null + {{- end }} + {{- end }} +error: null \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/trace-users-detail.yml b/test/e2e-v2/cases/storage/expected/trace-users-detail.yml index 437b9dd11..3164a5699 100644 --- a/test/e2e-v2/cases/storage/expected/trace-users-detail.yml +++ b/test/e2e-v2/cases/storage/expected/trace-users-detail.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null spans: {{- contains .spans }} - traceid: {{ .traceid }} @@ -93,4 +94,4 @@ spans: {{- end }} logs: [] attachedevents: [] - {{- end }} + {{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/expected/traces-list.yml b/test/e2e-v2/cases/storage/expected/traces-list.yml index 4d5a1e5fe..e6b01d4c6 100644 --- a/test/e2e-v2/cases/storage/expected/traces-list.yml +++ b/test/e2e-v2/cases/storage/expected/traces-list.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +debuggingtrace: null traces: {{- contains .traces }} - segmentid: {{ notEmpty .segmentid }} @@ -23,4 +24,4 @@ traces: iserror: false traceids: - {{ index .traceids 0 }} -{{- end }} +{{- end }} \ No newline at end of file diff --git a/test/e2e-v2/cases/storage/storage-cases.yaml b/test/e2e-v2/cases/storage/storage-cases.yaml index f7a06f398..71b40e06a 100644 --- a/test/e2e-v2/cases/storage/storage-cases.yaml +++ b/test/e2e-v2/cases/storage/storage-cases.yaml @@ -160,3 +160,19 @@ cases: | yq e '.traces[0].traceids[0]' - \ ) expected: expected/trace-users-detail.yml + # topN-OP-service Global + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_sla,3,des)/100" + expected: expected/topN-OP-service.yml + # topN-OP-service Global with attrs + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_sla,3,des,attr0='GENERAL')/100" + expected: expected/topN-OP-service.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_sla,3,des,attr0!='Not_GENERAL')/100" + expected: expected/topN-OP-service.yml + # topN-OP-endpoint Global + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_sla,3,des)/100" + expected: expected/topN-OP-endpoint.yml + # topN-OP-endpoint Global with attrs + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_sla,3,des,attr0='GENERAL')/100" + expected: expected/topN-OP-endpoint.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_sla,3,des,attr0!='Not_GENERAL')/100" + expected: expected/topN-OP-endpoint.yml \ No newline at end of file diff --git a/test/e2e-v2/script/env b/test/e2e-v2/script/env index 971a43276..efe6f63e8 100644 --- a/test/e2e-v2/script/env +++ b/test/e2e-v2/script/env @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -SW_AGENT_JAVA_COMMIT=c82287e1dd1593cf3e7dbc390b92f9224943252a +SW_AGENT_JAVA_COMMIT=f0245864e4388a388fe7445b56b6ce7cedc94aaf SW_AGENT_SATELLITE_COMMIT=ea27a3f4e126a24775fe12e2aa2695bcb23d99c3 SW_AGENT_NGINX_LUA_COMMIT=c3cee4841798a147d83b96a10914d4ac0e11d0aa SW_AGENT_NODEJS_COMMIT=4f9a91dad3dfd8cfe5ba8f7bd06b39e11eb5e65e @@ -22,8 +22,9 @@ SW_AGENT_PYTHON_COMMIT=c76a6ec51a478ac91abb20ec8f22a99b8d4d6a58 SW_AGENT_CLIENT_JS_COMMIT=af0565a67d382b683c1dbd94c379b7080db61449 SW_AGENT_CLIENT_JS_TEST_COMMIT=4f1eb1dcdbde3ec4a38534bf01dded4ab5d2f016 SW_KUBERNETES_COMMIT_SHA=1335f15bf821a40a7cd71448fa805f0be265afcc -SW_ROVER_COMMIT=fc8d074c6d34ecfee585a7097cbd5aef1ca680a5 -SW_CTL_COMMIT=d5f3597733aa5217373986d776a3ee5ee8b3c468 +SW_ROVER_COMMIT=0ae8f12d6eb6cc9fa125c603ee57d0b21fc8c6d0 +SW_AGENT_PHP_COMMIT=3192c553002707d344bd6774cfab5bc61f67a1d3 +SW_CTL_COMMIT=6210a3b79089535af782ca51359ce6c5b68890b2 -SW_OAP_COMMIT=ceaa88f378d40bedf40e40c33169b9804fc96aae -SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=5d0bd0569b23bcd40a3c9ea0898e27d6aefd1e84 +SW_OAP_COMMIT=6d262cce62e156bd197177abb3640ea65bb2d38e +SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=d3f8fe894d1a206164b73f5b523d2eb62d9e9965