130 lines
7.0 KiB
YAML
130 lines
7.0 KiB
YAML
# 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: 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
|
|
|
|
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
|