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-banyandb.git
The following commit(s) were added to refs/heads/main by this push: new 89ab6274 update trace e2e (#779) 89ab6274 is described below commit 89ab6274a9781ab0e1a98e6b420be2ee3b363859 Author: Wan Kai <wankai...@foxmail.com> AuthorDate: Mon Sep 22 12:54:32 2025 +0800 update trace e2e (#779) --- test/e2e-v2/cases/cluster/e2e.yaml | 2 +- test/e2e-v2/cases/cluster/storage-cases.yaml | 178 -------------- .../cases/profiling/trace/expected/traces-list.yml | 27 --- .../profiling/trace/expected/traces-v2-list.yml | 49 ++++ .../cases/profiling/trace/profiling-cases.yaml | 6 +- ...ty-traces-list.yml => empty-traces-v2-list.yml} | 5 + .../cases/storage/expected/trace-users-detail.yml | 97 -------- test/e2e-v2/cases/storage/expected/traces-list.yml | 27 --- .../cases/storage/expected/traces-v2-list.yml | 268 +++++++++++++++++++++ test/e2e-v2/cases/storage/storage-cases.yaml | 43 ++-- test/e2e-v2/script/env | 4 +- 11 files changed, 346 insertions(+), 360 deletions(-) diff --git a/test/e2e-v2/cases/cluster/e2e.yaml b/test/e2e-v2/cases/cluster/e2e.yaml index cb05907d..6ce729dc 100644 --- a/test/e2e-v2/cases/cluster/e2e.yaml +++ b/test/e2e-v2/cases/cluster/e2e.yaml @@ -47,4 +47,4 @@ verify: interval: 10s cases: - includes: - - storage-cases.yaml + - ../storage/storage-cases.yaml diff --git a/test/e2e-v2/cases/cluster/storage-cases.yaml b/test/e2e-v2/cases/cluster/storage-cases.yaml deleted file mode 100644 index a51195bf..00000000 --- a/test/e2e-v2/cases/cluster/storage-cases.yaml +++ /dev/null @@ -1,178 +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. - -cases: - # layer list - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql layer ls - expected: ../storage/expected/layer.yml - # service list - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service layer GENERAL - expected: ../storage/expected/service.yml - # service instance list - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql instance list --service-name=e2e-service-provider - expected: ../storage/expected/service-instance-provider.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql instance list --service-name=e2e-service-consumer - expected: ../storage/expected/service-instance-consumer.yml - # service endpoint - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql endpoint list --keyword=users --service-name=e2e-service-provider - expected: ../storage/expected/service-endpoint-provider.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql endpoint list --keyword=users --service-name=e2e-service-consumer - expected: ../storage/expected/service-endpoint-consumer.yml - # dependency service - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dependency service --service-name=e2e-service-provider - expected: ../storage/expected/dependency-services-provider.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dependency service --service-name=e2e-service-consumer - expected: ../storage/expected/dependency-services-consumer.yml - # dependency instance - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dependency instance --service-name=e2e-service-consumer --dest-service-name=e2e-service-provider - expected: ../storage/expected/dependency-instance.yml - # dependency endpoint - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dependency endpoint --service-name=e2e-service-provider --endpoint-name=POST:/users - expected: ../storage/expected/dependency-endpoint-provider.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dependency endpoint --service-name=e2e-service-consumer --endpoint-name=POST:/users - expected: ../storage/expected/dependency-endpoint-consumer.yml - # trace segment list - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls - expected: ../storage/expected/traces-list.yml - # negative tags search: relationship should be logical AND instead of logical OR - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls --tags http.method=POST,http.status_code=201 - expected: ../storage/expected/empty-traces-list.yml - # trace detail - - query: | - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace $( \ - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls \ - | yq e '.traces | select(.[].endpointnames[0]=="POST:/users") | .[0].traceids[0]' - - ) - expected: ../storage/expected/trace-users-detail.yml - # service metrics - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics single --name=service_sla --service-name=e2e-service-provider - expected: ../storage/expected/metrics-single-sla.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics nullable --name=service_sla --service-name=e2e-service-provider - expected: ../storage/expected/metrics-nullable-single-sla.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics nullable --name=service_sla --service-name=e2e-service-provider --start "2023-01-08" --end "2023-01-09" - expected: ../storage/expected/metrics-nullable-single-sla-empty.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics sorted --name service_apdex 5 - expected: ../storage/expected/metrics-top-service.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics top --name service_sla 5 - expected: ../storage/expected/metrics-top-service.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_sla --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_cpm --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_resp_time --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_apdex --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_sla --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_cpm --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_resp_time --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_apdex --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - # service instance metrics - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_instance_resp_time --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_instance_cpm --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=service_instance_sla --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - # service instance JVM metrics - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_memory_heap --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_memory_heap_max --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_memory_noheap --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_live_count --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_daemon_count --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_peak_count --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_runnable_state_thread_count --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_class_loaded_class_count --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_class_total_loaded_class_count --instance-name=consumer1 --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_memory_heap --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_memory_heap_max --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_memory_noheap --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_live_count --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_daemon_count --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_peak_count --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_thread_runnable_state_thread_count --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_class_loaded_class_count --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=instance_jvm_class_total_loaded_class_count --instance-name=provider1 --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - # service endpoint metrics - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_cpm --endpoint-name=POST:/users --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_resp_time --endpoint-name=POST:/users --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_sla --endpoint-name=POST:/users --service-name=e2e-service-provider - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_cpm --endpoint-name=POST:/users --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_resp_time --endpoint-name=POST:/users --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_sla --endpoint-name=POST:/users --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value.yml - # service endpoint metrics percentile - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_percentile --endpoint-name=POST:/users --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value-percentile.yml - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_percentile --endpoint-name=POST:/users --service-name=e2e-service-consumer - expected: ../storage/expected/metrics-has-value-percentile.yml - # Endpoint TopN with service_id - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics top --name endpoint_cpm --service-name e2e-service-provider 5 - expected: ../storage/expected/metrics-top-endpoint.yml - # native event: event list - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql event list - expected: ../storage/expected/event-list.yml - - - query: | - curl -s -XPOST http://${provider_host}:${provider_9090}/users -d '{"id":"123","name":"SinglesBar"}' -H "Content-Type: application/json" > /dev/null; - sleep 5; - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace $( \ - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls --order startTime --service-name "e2e-service-provider" --endpoint-name "POST:/users" \ - | 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_resp_time,3,des)" - 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_resp_time,3,des,attr0='GENERAL')" - 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_resp_time,3,des,attr0!='Not_GENERAL')" - 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_resp_time,3,des)" - 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_resp_time,3,des,attr0='GENERAL')" - 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_resp_time,3,des,attr0!='Not_GENERAL')" - expected: ../storage/expected/topN-OP-endpoint.yml diff --git a/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml b/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml deleted file mode 100644 index c9a97166..00000000 --- a/test/e2e-v2/cases/profiling/trace/expected/traces-list.yml +++ /dev/null @@ -1,27 +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. - -debuggingtrace: null -traces: -{{- contains .traces }} -- segmentid: {{ notEmpty .segmentid }} - endpointnames: - - POST:/profile/{name} - duration: {{ ge .duration 0 }} - start: "{{ notEmpty .start}}" - iserror: false - traceids: - - {{ (index .traceids 0) }} -{{- end }} diff --git a/test/e2e-v2/cases/profiling/trace/expected/traces-v2-list.yml b/test/e2e-v2/cases/profiling/trace/expected/traces-v2-list.yml new file mode 100644 index 00000000..f576ee63 --- /dev/null +++ b/test/e2e-v2/cases/profiling/trace/expected/traces-v2-list.yml @@ -0,0 +1,49 @@ +# 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. + +debuggingtrace: null +retrievedtimerange: + {{- with .retrievedtimerange }} + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + {{- end }} +traces: + {{- contains .traces }} + - spans: + {{- contains .spans }} + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: {{ .spanid }} + parentspanid: {{ .parentspanid }} + refs: [] + servicecode: {{ .servicecode }} + serviceinstancename: {{ .serviceinstancename }} + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: {{ .endpointname }} + type: {{ .type }} + peer: {{ .peer }} + component: {{ .component }} + iserror: {{ .iserror }} + layer: {{ .layer }} + tags: + {{- contains .tags }} + - key: {{ .key }} + value: {{ .value }} + {{- end }} + logs: [] + attachedevents: [] + {{- end }} + {{- end }} diff --git a/test/e2e-v2/cases/profiling/trace/profiling-cases.yaml b/test/e2e-v2/cases/profiling/trace/profiling-cases.yaml index 69fc6557..70e13743 100644 --- a/test/e2e-v2/cases/profiling/trace/profiling-cases.yaml +++ b/test/e2e-v2/cases/profiling/trace/profiling-cases.yaml @@ -16,12 +16,12 @@ # This file is used to show how to write configuration files and can be used to test. cases: - # trace segment list + # trace list - query: | curl -s -XPOST http://${provider_host}:${provider_9090}/profile/users?e2e=true -d '{"enableProfiling":"false","name":"SkyWalking"}' -H "Content-Type: application/json" > /dev/null; sleep 3; - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls --service-name=e2e-service-provider - expected: expected/traces-list.yml + swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls --service-name=e2e-service-provider + expected: expected/traces-v2-list.yml # service list - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls expected: expected/service.yml diff --git a/test/e2e-v2/cases/storage/expected/empty-traces-list.yml b/test/e2e-v2/cases/storage/expected/empty-traces-v2-list.yml similarity index 85% rename from test/e2e-v2/cases/storage/expected/empty-traces-list.yml rename to test/e2e-v2/cases/storage/expected/empty-traces-v2-list.yml index dc5da0f3..5e5c6ad4 100644 --- a/test/e2e-v2/cases/storage/expected/empty-traces-list.yml +++ b/test/e2e-v2/cases/storage/expected/empty-traces-v2-list.yml @@ -14,4 +14,9 @@ # limitations under the License. debuggingtrace: null +retrievedtimerange: + {{- with .retrievedtimerange }} + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + {{- end }} traces: [] diff --git a/test/e2e-v2/cases/storage/expected/trace-users-detail.yml b/test/e2e-v2/cases/storage/expected/trace-users-detail.yml deleted file mode 100644 index 43b94eda..00000000 --- a/test/e2e-v2/cases/storage/expected/trace-users-detail.yml +++ /dev/null @@ -1,97 +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. - -debuggingtrace: null -spans: - {{- contains .spans }} - - traceid: {{ .traceid }} - segmentid: {{ .segmentid }} - spanid: {{ .spanid }} - parentspanid: {{ .parentspanid }} - refs: [] - servicecode: e2e-service-consumer - serviceinstancename: consumer1 - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - endpointname: POST:/users - type: Entry - peer: "" - component: Tomcat - iserror: false - layer: Http - tags: - {{- contains .tags }} - - key: http.method - value: POST - - key: url - value: {{ notEmpty .value }} - {{- end }} - logs: [] - attachedevents: [] - - traceid: {{ notEmpty .traceid }} - segmentid: {{ .segmentid }} - spanid: {{ .spanid }} - parentspanid: {{ .parentspanid }} - refs: [] - servicecode: e2e-service-consumer - serviceinstancename: consumer1 - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - endpointname: /users - type: Exit - peer: provider:9090 - component: SpringRestTemplate - iserror: false - layer: Http - tags: - {{- contains .tags }} - - key: http.method - value: POST - - key: url - value: {{ notEmpty .value }} - {{- end }} - logs: [] - attachedevents: [] - - traceid: {{ notEmpty .traceid }} - segmentid: {{ .segmentid }} - spanid: {{ .spanid }} - parentspanid: {{ .parentspanid }} - refs: - {{- contains .refs }} - - traceid: {{ notEmpty .traceid }} - parentsegmentid: {{ .parentsegmentid }} - parentspanid: 1 - type: CROSS_PROCESS - {{- end }} - servicecode: e2e-service-provider - serviceinstancename: provider1 - starttime: {{ gt .starttime 0 }} - endtime: {{ gt .endtime 0 }} - endpointname: POST:/users - type: Entry - peer: "" - component: Tomcat - iserror: false - layer: Http - tags: - {{- contains .tags }} - - key: http.method - value: POST - - key: url - value: {{ notEmpty .value }} - {{- end }} - logs: [] - attachedevents: [] - {{- end }} diff --git a/test/e2e-v2/cases/storage/expected/traces-list.yml b/test/e2e-v2/cases/storage/expected/traces-list.yml deleted file mode 100644 index ce35744b..00000000 --- a/test/e2e-v2/cases/storage/expected/traces-list.yml +++ /dev/null @@ -1,27 +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. - -debuggingtrace: null -traces: -{{- contains .traces }} -- segmentid: {{ notEmpty .segmentid }} - endpointnames: - - POST:/users - duration: {{ ge .duration 0 }} - start: "{{ notEmpty .start}}" - iserror: false - traceids: - - {{ index .traceids 0 }} -{{- end }} diff --git a/test/e2e-v2/cases/storage/expected/traces-v2-list.yml b/test/e2e-v2/cases/storage/expected/traces-v2-list.yml new file mode 100644 index 00000000..4e4e2ed6 --- /dev/null +++ b/test/e2e-v2/cases/storage/expected/traces-v2-list.yml @@ -0,0 +1,268 @@ +# 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. + +debuggingtrace: null +retrievedtimerange: + {{- with .retrievedtimerange }} + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + {{- end }} +traces: + {{- contains .traces }} +- spans: + {{- contains .spans }} + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 0 + parentspanid: -1 + refs: [] + servicecode: e2e-service-consumer + serviceinstancename: consumer1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: POST:/users + type: Entry + peer: "" + component: Tomcat + iserror: false + layer: Http + tags: + {{- contains .tags }} + - key: url + value: {{ notEmpty .value }} + - key: http.method + value: POST + - key: http.status_code + value: "200" + {{- end }} + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 1 + parentspanid: 0 + refs: [] + servicecode: e2e-service-consumer + serviceinstancename: consumer1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: /users + type: Exit + peer: provider:9090 + component: SpringRestTemplate + iserror: false + layer: Http + tags: + {{- contains .tags }} + - key: url + value: {{ notEmpty .value }} + - key: http.method + value: POST + - key: http.status_code + value: "200" + {{- end }} + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 0 + parentspanid: -1 + refs: + {{- contains .refs }} + - traceid: {{ notEmpty .traceid }} + parentsegmentid: {{ .parentsegmentid }} + parentspanid: 1 + type: CROSS_PROCESS + {{- end }} + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: POST:/users + type: Entry + peer: "" + component: Tomcat + iserror: false + layer: Http + tags: + {{- contains .tags }} + - key: url + value: {{ notEmpty .value }} + - key: http.method + value: POST + - key: http.status_code + value: "200" + {{- end }} + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 1 + parentspanid: 0 + refs: [] + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: HikariCP/Connection/getConnection + type: Local + peer: "" + component: HikariCP + iserror: false + layer: Unknown + tags: [] + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 2 + parentspanid: 0 + refs: [] + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: H2/JDBC/PreparedStatement/executeQuery + type: Exit + peer: localhost:-1 + component: h2-jdbc-driver + iserror: false + layer: Database + tags: + - key: db.type + value: H2 + - key: db.instance + value: testdb + - key: db.statement + value: select user0_.id as id1_0_0_, user0_.name as name2_0_0_ from users user0_ + where user0_.id=? + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 3 + parentspanid: 0 + refs: [] + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: H2/JDBC/PreparedStatement/executeQuery + type: Exit + peer: localhost:-1 + component: h2-jdbc-driver + iserror: false + layer: Database + tags: + - key: db.type + value: H2 + - key: db.instance + value: testdb + - key: db.statement + value: call next value for hibernate_sequence + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 4 + parentspanid: 0 + refs: [] + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: H2/JDBC/PreparedStatement/executeUpdate + type: Exit + peer: localhost:-1 + component: h2-jdbc-driver + iserror: false + layer: Database + tags: + - key: db.type + value: H2 + - key: db.instance + value: testdb + - key: db.statement + value: insert into users (name, id) values (?, ?) + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 5 + parentspanid: 0 + refs: [] + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: H2/JDBC/Connection/commit + type: Exit + peer: localhost:-1 + component: h2-jdbc-driver + iserror: false + layer: Database + tags: + - key: db.type + value: H2 + - key: db.instance + value: testdb + - key: db.statement + value: "" + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 6 + parentspanid: 0 + refs: [] + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: H2/JDBC/Connection/commit + type: Exit + peer: localhost:-1 + component: h2-jdbc-driver + iserror: false + layer: Database + tags: + - key: db.type + value: H2 + - key: db.instance + value: testdb + - key: db.statement + value: "" + logs: [] + attachedevents: [] + - traceid: {{ .traceid }} + segmentid: {{ .segmentid }} + spanid: 7 + parentspanid: 0 + refs: [] + servicecode: e2e-service-provider + serviceinstancename: provider1 + starttime: {{ gt .starttime 0 }} + endtime: {{ gt .endtime 0 }} + endpointname: HikariCP/Connection/close + type: Local + peer: "" + component: HikariCP + iserror: false + layer: Unknown + tags: [] + logs: [] + attachedevents: [] + {{- end }} + {{- end }} diff --git a/test/e2e-v2/cases/storage/storage-cases.yaml b/test/e2e-v2/cases/storage/storage-cases.yaml index 74fa7a85..e2e7ba11 100644 --- a/test/e2e-v2/cases/storage/storage-cases.yaml +++ b/test/e2e-v2/cases/storage/storage-cases.yaml @@ -43,19 +43,6 @@ cases: expected: expected/dependency-endpoint-provider.yml - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dependency endpoint --service-name=e2e-service-consumer --endpoint-name=POST:/users expected: expected/dependency-endpoint-consumer.yml - # trace segment list - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls - expected: expected/traces-list.yml - # negative tags search: relationship should be logical AND instead of logical OR - - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls --tags http.method=POST,http.status_code=201 - expected: expected/empty-traces-list.yml - # trace detail - - query: | - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace $( \ - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls \ - | yq e '.traces | select(.[].endpointnames[0]=="POST:/users") | .[0].traceids[0]' - - ) - expected: expected/trace-users-detail.yml # service metrics - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics single --name=service_sla --service-name=e2e-service-provider expected: expected/metrics-single-sla.yml @@ -145,25 +132,16 @@ cases: expected: expected/metrics-has-value-percentile.yml - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression=endpoint_percentile --endpoint-name=POST:/users --service-name=e2e-service-consumer expected: expected/metrics-has-value-percentile.yml - # Endpoint TopN with service_id + # endpoint TopN with service_id - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics top --name endpoint_cpm --service-name e2e-service-provider 5 expected: expected/metrics-top-endpoint.yml # native event: event list - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql event list expected: expected/event-list.yml - - - query: | - curl -s -XPOST http://${provider_host}:${provider_9090}/users -d '{"id":"123","name":"SinglesBar"}' -H "Content-Type: application/json" > /dev/null; - sleep 5; - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace $( \ - swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls --order startTime --service-name "e2e-service-provider" --endpoint-name "POST:/users" \ - | 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_resp_time,3,des)" expected: expected/topN-OP-service.yml - # topN-OP-service Global with attrs + # topN-OP-service Global with attrs - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_resp_time,3,des,attr0='GENERAL')" expected: expected/topN-OP-service.yml - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(service_resp_time,3,des,attr0!='Not_GENERAL')" @@ -171,8 +149,23 @@ cases: # topN-OP-endpoint Global - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_resp_time,3,des)" expected: expected/topN-OP-endpoint.yml - # topN-OP-endpoint Global with attrs + # topN-OP-endpoint Global with attrs - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_resp_time,3,des,attr0='GENERAL')" expected: expected/topN-OP-endpoint.yml - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics exec --expression="top_n(endpoint_resp_time,3,des,attr0!='Not_GENERAL')" expected: expected/topN-OP-endpoint.yml + - 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: expected/topN-OP-service.yml + # trace + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls + expected: expected/traces-v2-list.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls --service-name=e2e-service-provider + expected: expected/traces-v2-list.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls --service-name=e2e-service-consumer + expected: expected/traces-v2-list.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls --service-name=e2e-service-consumer --endpoint-name=POST:/users + expected: expected/traces-v2-list.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls --tags http.method=POST + expected: expected/traces-v2-list.yml + - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql tv2 ls --tags http.method=POST,http.status_code=201 + expected: expected/empty-traces-v2-list.yml \ No newline at end of file diff --git a/test/e2e-v2/script/env b/test/e2e-v2/script/env index 790a3cda..71747793 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=a2a67ca63084cddf82303155c185e3c24cf07eef +SW_OAP_COMMIT=88aa16feb72252c1bfe16a19412f7ed460349f8b SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=a2a67ca63084cddf82303155c185e3c24cf07eef -SW_CTL_COMMIT=77b4c49e89c9c000278f44e62729d534f2ec842e +SW_CTL_COMMIT=3b675df73824bbb80e6aabf6a95d110feb37b6b1 SW_TRACE_MOCKER_COMMIT=a2a67ca63084cddf82303155c185e3c24cf07eef \ No newline at end of file