| # 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: |
| # trace segment list |
| # todo check will profiling be impacted by multiprocessing? |
| - query: | |
| curl -s -XPOST http://${provider_host}:${provider_9090}/artist-provider -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 |
| # service list |
| - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls |
| expected: 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: expected/service-instance.yml |
| # service endpoint |
| - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql endpoint list --keyword=artist-provider --service-name=e2e-service-provider |
| expected: expected/service-endpoint.yml |
| # create task |
| - query: | |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql \ |
| profiling trace create --service-name=e2e-service-provider \ |
| --endpoint-name=/artist-provider \ |
| --start-time=-1 \ |
| --duration=5 --min-duration-threshold=0 \ |
| --dump-period=10 --max-sampling-count=5 |
| expected: expected/profile-create.yml |
| # profiling list notified: sleep to wait agent notices and query profiling list |
| - query: sleep 10 && swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace list --service-name=e2e-service-provider --endpoint-name=/artist-provider |
| expected: expected/profile-list-notified.yml |
| # profiling list finished: |
| - query: | |
| curl -s -XPOST http://${provider_host}:${provider_9090}/artist-provider -d '{"song": "Hey Jude"}' -H "Content-Type: application/json" > /dev/null; |
| sleep 30; |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace list --service-name=e2e-service-provider --endpoint-name=/artist-provider |
| expected: expected/profile-list-finished.yml |
| # profiled segment list |
| - query: | |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace segment-list --task-id=$( \ |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace list --service-name=e2e-service-provider --endpoint-name=/artist-provider | yq e '.[0].id' - \ |
| ) |
| expected: expected/profile-segment-list.yml |
| # profiled segment detail |
| - query: | |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace profiled-segment --segment-id=$( \ |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace segment-list --task-id=$( \ |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace list --service-name=e2e-service-provider --endpoint-name=/artist-provider | yq e '.[0].id' - \ |
| ) | yq e '.[0].segmentid' - \ |
| ) |
| expected: expected/profile-segment-detail.yml |
| # query profiled segment analyze |
| - query: | |
| segmentid=$( \ |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace segment-list --task-id=$( \ |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace list --service-name=e2e-service-provider --endpoint-name=/artist-provider | yq e '.[0].id' - \ |
| ) | yq e '.[0].segmentid' - \ |
| ); |
| start=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace profiled-segment --segment-id=$segmentid | yq e '.spans[] | select(.spanid == 0).starttime' -); |
| end=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace profiled-segment --segment-id=$segmentid | yq e '.spans[] | select(.spanid == 0).endtime' -); |
| swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling trace analysis --segment-id=$segmentid --time-ranges=$(echo $start"-"$end) |
| expected: expected/profile-segment-analyze.yml |