# 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: 1200 init-system-environment: ../../../script/env steps: - name: install yq command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq - name: install swctl command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl - name: install etcdctl command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh etcdctl trigger: action: http interval: 3s times: 10 url: http://${consumer_host}:${consumer_9092}/info method: POST verify: # verify with retry strategy retry: # max retry count count: 20 # the interval between two retries, in millisecond. interval: 10s cases: # service list - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls expected: ../expected/service.yml # service metrics - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics linear --name service_sla --service-name=e2e-service-provider | yq e 'to_entries' - expected: ../expected/metrics-has-value.yml # service endpoint - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql endpoint list --keyword=info --service-name=e2e-service-provider expected: ../expected/service-endpoint.yml # service endpoint metrics - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics linear --name endpoint_cpm --endpoint-name=POST:/info --service-name=e2e-service-provider |yq e 'to_entries' - expected: ../expected/metrics-has-value.yml # dependency service - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dependency service --service-name="e2e-service-provider" expected: ../expected/dependency-services.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 # service instance jvm metrics - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql metrics linear --name instance_jvm_thread_live_count --instance-name=provider1 --service-name=e2e-service-provider | yq e 'to_entries' - expected: ../expected/metrics-has-value.yml # trace segment list - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls expected: ../expected/traces-list.yml # native tracing: 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:/info") | .[0].traceids[0]' - \ ) expected: ../expected/trace-info-detail.yml # native event: event list - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql event list expected: ../expected/event-list.yml # native profile: create task - query: | swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql \ profile create --service-name=e2e-service-provider \ --endpoint-name=POST:/info \ --start-time=$((($(date +%s)+5)*1000)) \ --duration=1 --min-duration-threshold=0 \ --dump-period=10 --max-sampling-count=9 expected: ../expected/profile-create.yml # native profile: sleep to wait agent notices and query profile list - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile list -service-name=e2e-service-provider --endpoint-name=POST:/info expected: ../expected/profile-list.yml # native profile: sleep to wait segment report and query profiled segment list - query: | swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile segment-list --task-id=$( \ swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile list --service-name=e2e-service-provider --endpoint-name=POST:/info | yq e '.[0].id' - \ ) expected: ../expected/profile-segment-list.yml # native profile: query profiled segment - query: | swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile profiled-segment --segment-id=$( \ swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile segment-list --task-id=$( \ swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile list --service-name=e2e-service-provider --endpoint-name=POST:/info | yq e '.[0].id' - \ ) | yq e '.[0].segmentid' - \ ) expected: ../expected/profile-segment-detail.yml # native profile: query profiled segment analyze - query: | segmentid=$( \ swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile segment-list --task-id=$( \ swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile list --service-name=e2e-service-provider --endpoint-name=POST:/info | yq e '.[0].id' - \ ) | yq e '.[0].segmentid' - \ ); start=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile profiled-segment --segment-id=$segmentid|yq e '.spans.[0].starttime' -); end=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile profiled-segment --segment-id=$segmentid|yq e '.spans.[0].endtime' -); swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profile profiled-analyze --segment-id=$segmentid --time-ranges=$(echo $start"-"$end) expected: ../expected/profile-segment-analyze.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