Replace e2e simple cases to v2 (#7827)
This commit is contained in:
parent
a4c68d30d8
commit
cf40b9de0d
|
|
@ -35,7 +35,6 @@ jobs:
|
|||
matrix:
|
||||
jdk: [ 8, 11, 12, 13, 14, 15 ]
|
||||
env:
|
||||
SW_SIMPLE_CASE: jdk
|
||||
SW_AGENT_JDK_VERSION: ${{ matrix.jdk }}
|
||||
SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.jdk }}:alpine-jre
|
||||
steps:
|
||||
|
|
@ -52,9 +51,9 @@ jobs:
|
|||
java-version: ${{ matrix.jdk }}
|
||||
- name: Run E2E Test
|
||||
if: env.SKIP_CI != 'true'
|
||||
uses: ./.github/actions/e2e-test
|
||||
uses: ./.github/actions/infra-e2e-test
|
||||
with:
|
||||
test_class: org.apache.skywalking.e2e.simple.SimpleE2E
|
||||
config-file: simple/jdk/e2e.yaml
|
||||
|
||||
Single:
|
||||
if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
|
||||
|
|
|
|||
|
|
@ -35,14 +35,18 @@ concurrency:
|
|||
jobs:
|
||||
FeatureGroup01:
|
||||
if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
|
||||
name: Feature
|
||||
name: ${{ matrix.case.name }}
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 90
|
||||
strategy:
|
||||
matrix:
|
||||
case: [auth, ssl, mtls]
|
||||
env:
|
||||
SW_SIMPLE_CASE: ${{ matrix.case }}
|
||||
case:
|
||||
- name: Auth
|
||||
config-file: simple/auth/e2e.yaml
|
||||
- name: SSL
|
||||
config-file: simple/ssl/e2e.yaml
|
||||
- name: mTLS
|
||||
config-file: simple/mtls/e2e.yaml
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
|
@ -51,9 +55,9 @@ jobs:
|
|||
uses: ./.github/actions/skip
|
||||
- name: Run E2E Test
|
||||
if: env.SKIP_CI != 'true'
|
||||
uses: ./.github/actions/e2e-test
|
||||
uses: ./.github/actions/infra-e2e-test
|
||||
with:
|
||||
test_class: org.apache.skywalking.e2e.simple.SimpleE2E
|
||||
config-file: ${{ matrix.case.config-file }}
|
||||
|
||||
FeatureGroup02:
|
||||
if: (github.event_name == 'schedule' && github.repository == 'apache/skywalking') || (github.event_name != 'schedule')
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ Release Notes.
|
|||
#### OAP Server
|
||||
* Fix wrong (de)serializer of ElasticSearch client for OpenSearch storage.
|
||||
* Fix that traces query with tags will report error.
|
||||
|
||||
* Replace e2e simple cases to e2e-v2.
|
||||
|
||||
#### UI
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
# 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
|
||||
environment:
|
||||
SW_AUTHENTICATION: test-token
|
||||
ports:
|
||||
- 12800
|
||||
provider:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: provider
|
||||
environment:
|
||||
SW_AGENT_AUTHENTICATION: test-token
|
||||
ports:
|
||||
- 9090
|
||||
depends_on:
|
||||
oap:
|
||||
condition: service_healthy
|
||||
|
||||
consumer:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: consumer
|
||||
environment:
|
||||
SW_AGENT_AUTHENTICATION: test-token
|
||||
ports:
|
||||
- 9092
|
||||
depends_on:
|
||||
provider:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
e2e:
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
# 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
|
||||
|
||||
cleanup:
|
||||
on: always
|
||||
|
||||
trigger:
|
||||
action: http
|
||||
interval: 10s
|
||||
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: 10000
|
||||
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=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-id=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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=POST:/info --service=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 $(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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
|
||||
|
||||
# dependency instance
|
||||
|
||||
# trace segment list
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls
|
||||
expected: ../expected/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|grep -A 5 '/info'|tail -n1|awk -F ' ' '{print $2}')
|
||||
expected: ../expected/trace-info-detail.yml
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
# 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.
|
||||
|
||||
nodes:
|
||||
{{- range .nodes }}
|
||||
{{- if eq .name "User" }}
|
||||
- id: {{ b64enc "User" }}.0
|
||||
name: User
|
||||
type: USER
|
||||
isreal: false
|
||||
{{- end }}
|
||||
{{- if eq .name "e2e-service-provider" }}
|
||||
- id: {{ b64enc "e2e-service-provider"}}.1
|
||||
name: e2e-service-provider
|
||||
type: Tomcat
|
||||
isreal: true
|
||||
{{- end }}
|
||||
{{- if eq .name "e2e-service-consumer" }}
|
||||
- id: {{ b64enc "e2e-service-consumer"}}.1
|
||||
name: e2e-service-consumer
|
||||
type: Tomcat
|
||||
isreal: true
|
||||
{{- end }}
|
||||
{{- if eq .name "localhost:-1" }}
|
||||
- id: {{ b64enc "localhost:-1" }}.0
|
||||
name: localhost:-1
|
||||
type: H2
|
||||
isreal: false
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
calls:
|
||||
{{- range .calls }}
|
||||
{{- if eq .source "ZTJlLXNlcnZpY2UtY29uc3VtZXI=.1" }}
|
||||
- source: {{ b64enc "e2e-service-consumer"}}.1
|
||||
sourcecomponents: []
|
||||
target: {{ b64enc "e2e-service-provider"}}.1
|
||||
targetcomponents: []
|
||||
id: {{ b64enc "e2e-service-consumer"}}.1-{{ b64enc "e2e-service-provider"}}.1
|
||||
detectpoints:
|
||||
- CLIENT
|
||||
- SERVER
|
||||
{{- end }}
|
||||
{{- if eq .source "ZTJlLXNlcnZpY2UtcHJvdmlkZXI=.1" }}
|
||||
- source: {{ b64enc "e2e-service-provider" }}.1
|
||||
sourcecomponents: []
|
||||
target: {{ b64enc "localhost:-1"}}.0
|
||||
targetcomponents: []
|
||||
id: {{ b64enc "e2e-service-provider" }}.1-{{ b64enc "localhost:-1"}}.0
|
||||
detectpoints:
|
||||
- CLIENT
|
||||
{{- end }}
|
||||
{{- if eq .source "VXNlcg==.0" }}
|
||||
- source: {{ b64enc "User" }}.0
|
||||
sourcecomponents: []
|
||||
target: {{ b64enc "e2e-service-consumer"}}.1
|
||||
targetcomponents: []
|
||||
id: {{ b64enc "User" }}.0-{{ b64enc "e2e-service-consumer"}}.1
|
||||
detectpoints:
|
||||
- SERVER
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# 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 . }}
|
||||
- key: {{ notEmpty .key }}
|
||||
value: {{ ge .value 0 }}
|
||||
- key: {{ notEmpty .key }}
|
||||
value: {{ ge .value 1 }}
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# 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.
|
||||
|
||||
{{- range .}}
|
||||
{{- if eq .name "POST:/info" }}
|
||||
- id: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc "POST:/info" }}
|
||||
name: POST:/info
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
# Licensed to 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. Apache Software Foundation (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.
|
||||
|
||||
{{- range .}}
|
||||
- id: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc "provider1" }}
|
||||
name: {{ notEmpty .name }}
|
||||
attributes:
|
||||
{{- range .attributes }}
|
||||
{{- if eq .name "OS Name" }}
|
||||
- name: OS Name
|
||||
value: Linux
|
||||
{{- end }}
|
||||
{{- if eq .name "hostname" }}
|
||||
- name: hostname
|
||||
value: {{ notEmpty .value }}
|
||||
{{- end }}
|
||||
{{- if eq .name "Process No." }}
|
||||
- name: Process No.
|
||||
value: "1"
|
||||
{{- end }}
|
||||
{{- if eq .name "Start Time" }}
|
||||
- name: Start Time
|
||||
value: {{ notEmpty .value }}
|
||||
{{- end }}
|
||||
{{- if eq .name "JVM Arguments" }}
|
||||
- name: JVM Arguments
|
||||
value: '{{ notEmpty .value }}'
|
||||
{{- end }}
|
||||
{{- if eq .name "Jar Dependencies" }}
|
||||
- name: Jar Dependencies
|
||||
value: '{{ notEmpty .value }}'
|
||||
{{- end }}
|
||||
{{- if eq .name "ipv4s" }}
|
||||
- name: ipv4s
|
||||
value: {{ notEmpty .value }}
|
||||
{{- end }}
|
||||
{{- end}}
|
||||
language: JAVA
|
||||
instanceuuid: {{ b64enc "e2e-service-provider" }}.1_{{ b64enc "provider1" }}
|
||||
{{- end}}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
# 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.
|
||||
|
||||
{{- range . }}
|
||||
{{- if eq .name "e2e-service-provider" }}
|
||||
- id: {{ b64enc "e2e-service-provider" }}.1
|
||||
name: e2e-service-provider
|
||||
group: ""
|
||||
{{- end }}
|
||||
{{- if eq .name "e2e-service-consumer" }}
|
||||
- id: {{ b64enc "e2e-service-consumer" }}.1
|
||||
name: e2e-service-consumer
|
||||
group: ""
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
# 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.
|
||||
|
||||
spans:
|
||||
{{- range .spans}}
|
||||
- traceid: {{ notEmpty .traceid }}
|
||||
segmentid: {{ notEmpty .segmentid }}
|
||||
spanid: {{ .spanid }}
|
||||
parentspanid: {{ .parentspanid }}
|
||||
refs:
|
||||
{{- if eq .servicecode "e2e-service-provider" }}
|
||||
{{- range .refs }}
|
||||
- traceid: {{ notEmpty .traceid }}
|
||||
parentsegmentid: {{ notEmpty .parentsegmentid }}
|
||||
parentspanid: 1
|
||||
type: CROSS_PROCESS
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if eq .servicecode "e2e-service-consumer" }}
|
||||
[]
|
||||
{{- end }}
|
||||
servicecode: {{ notEmpty .servicecode }}
|
||||
serviceinstancename: {{ notEmpty .serviceinstancename }}
|
||||
starttime: {{ gt .starttime 0 }}
|
||||
endtime: {{ gt .endtime 0 }}
|
||||
endpointname:
|
||||
{{- if eq .type "Exit" }}
|
||||
/info
|
||||
{{ else }}
|
||||
POST:/info
|
||||
{{- end }}
|
||||
type: {{ notEmpty .type }}
|
||||
peer:
|
||||
{{- if eq .type "Exit" }}
|
||||
provider:9090
|
||||
{{ else }}
|
||||
""
|
||||
{{- end }}
|
||||
component:
|
||||
{{- if eq .type "Exit" }}
|
||||
SpringRestTemplate
|
||||
{{- end }}
|
||||
{{- if eq .type "Entry" }}
|
||||
Tomcat
|
||||
{{- end }}
|
||||
iserror: false
|
||||
layer: Http
|
||||
tags:
|
||||
{{- range .tags }}
|
||||
{{- if eq .key "http.method" }}
|
||||
- key: http.method
|
||||
value: POST
|
||||
{{- end }}
|
||||
{{- if eq .key "url" }}
|
||||
- key: url
|
||||
value: {{ notEmpty .value }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
logs: []
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# 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.
|
||||
|
||||
traces:
|
||||
{{- range .traces }}
|
||||
- segmentid: {{ notEmpty .segmentid }}
|
||||
endpointnames:
|
||||
{{- if eq (index .endpointnames 0) "H2/JDBI/Statement/execute" }}
|
||||
- H2/JDBI/Statement/execute
|
||||
{{- end}}
|
||||
{{- if eq (index .endpointnames 0) "H2/JDBI/Statement/executeQuery" }}
|
||||
- H2/JDBI/Statement/executeQuery
|
||||
{{- end}}
|
||||
{{- if eq (index .endpointnames 0) "H2/JDBI/PreparedStatement/executeQuery" }}
|
||||
- H2/JDBI/PreparedStatement/executeQuery
|
||||
{{- end }}
|
||||
{{- if eq (index .endpointnames 0) "POST:/info" }}
|
||||
- POST:/info
|
||||
{{- end }}
|
||||
{{- if eq (index .endpointnames 0) "POST:/users" }}
|
||||
- POST:/users
|
||||
{{- end }}
|
||||
duration: {{ ge .duration 0 }}
|
||||
start: "{{ notEmpty .start}}"
|
||||
iserror: false
|
||||
traceids:
|
||||
- {{ (index .traceids 0) }}
|
||||
{{- end }}
|
||||
total: {{ gt .total 0 }}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
# 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
|
||||
ports:
|
||||
- 12800
|
||||
provider:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: provider
|
||||
ports:
|
||||
- 9090
|
||||
depends_on:
|
||||
oap:
|
||||
condition: service_healthy
|
||||
|
||||
consumer:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: consumer
|
||||
ports:
|
||||
- 9092
|
||||
depends_on:
|
||||
provider:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
e2e:
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
# 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
|
||||
|
||||
cleanup:
|
||||
on: always
|
||||
|
||||
trigger:
|
||||
action: http
|
||||
interval: 10s
|
||||
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: 10000
|
||||
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=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-id=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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=POST:/info --service=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 $(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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
|
||||
|
||||
# dependency instance
|
||||
|
||||
# trace segment list
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls
|
||||
expected: ../expected/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|grep -A 5 '/info'|tail -n1|awk -F ' ' '{print $2}')
|
||||
expected: ../expected/trace-info-detail.yml
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEmDCCAoACCQCHw9DXRSuLGDANBgkqhkiG9w0BAQsFADAOMQwwCgYDVQQDDANv
|
||||
YXAwHhcNMjEwODI2MDIzOTM0WhcNMjIwODI2MDIzOTM0WjAOMQwwCgYDVQQDDANv
|
||||
YXAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDBrmOmHjb3OrbXXbF8
|
||||
09uuV8f8ITI1H1AceoD6Ak1yovanCxvvCvcKgZ4hLtPlUldg8fBqo3SivyzYbd4N
|
||||
082K8yYeoGHBKSaW5ckO126IHAzMHLCzw5qDgqTHHoovWQVv5VKCJC2y4xpeeakY
|
||||
ifk2DWPmou/rkKzZyflWMn7b0+bi81IQJgDz01UF19OAXXx4jp53yCKPwp+Que9R
|
||||
AIrlYXuBHkpwbDDs7vtCMSa/j+Klw8eAcZAm1NO3Y8VpG+uMxTFfVLr0nGvKMEKO
|
||||
0P3q1mp2NML/sNP89RHZsXM/eYU1UE0Da1aQ/o+fivXs3CRStxwFMwCMg/+uXccT
|
||||
Raufz0OhEwRJa0zbn8XBvcvLJ7kmXio3df23fSPT/i9whyQujfXE7cAraOEj8KjI
|
||||
NUDTi6dASlUeoNoKsklB4P3UIUCwCvZu9PqU9v7Oz8tOsxNpGvY2oBA+tVwZ1U/p
|
||||
ON992LmGZz2J9xpDjojCddUS5tRZGD0itMWlJiLaRd7VSPLRuyUGLqbEjf/7GffO
|
||||
Tb/5R7DhcKSFdrNXisz/kjU4qSwYFJ9WzUbbraV3MNiJiRa0eHGbLffHKVIvVcPI
|
||||
scaP04nTTbX7l4qUPmX/YcTNEZV0HDC3s0Qxk0y6lXxu3rDue1yx+N+S0TwCSq8D
|
||||
hpIDLWi/fYLbAoYnqv5jJxbnLQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB84/85
|
||||
KA2S2iXHhN1bkEx0cIjkg2t16Ht+b602na4bmZIpxUVzUv6dqiwCx5wDyM96T3OX
|
||||
xRDO8uVQEUMJ+76dm53UFZ9uhtGBvSFc8YqnL+EoXD1IQ8IQ7PVVf4dyzKyxhtK2
|
||||
XHr6RPtDnLhHy6mxQ5eaqBTaZ1dLoQlAIPyzh2mX2px+jGu9DKQxrZQ+0aMklidW
|
||||
xSDLLGr7cK+tQln4P0DC61uLS/VGQ+15a6XpqF3FhhspJrQPse+WSC015KCdSgnZ
|
||||
dIDxqtPS+hhyw5o4C39KDHD0x04VVIEhMsX3Z2eykK0KXnnsPcXWdFj/pR55Kcr3
|
||||
qPfxGRLrEeYvoUUzr2APiHTPzWsUDwugfV9KXyGYuxIqqOpPr5nWqGfo9ZcvbH7K
|
||||
Mqc32DFvFdNnUqMYQHu9oigjfCvscdNTrWHlGYD3HJmWZur4IBReb8uG5qPN+VLH
|
||||
1xs7EcW6NN6A1pndHEosAFcVIh5kx4gRCsZMsEdGExn4gkTknfBosWo0tROV00UU
|
||||
UYFqLZfUmJyPDVYZf1fjiLd+yC2qJERNxWWy03JG5UZDLc03ULPlqys+MCT8rRdD
|
||||
b7p2WGOQBM9whNC5BC6SydFPphwc3yhR1jmMSz+QB18Easo7RV6fmhE462wj1EoH
|
||||
+IDtJX6JRGguky29ibdolQUiRK3rVowGpIjjgw==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIElTCCAn0CAQEwDQYJKoZIhvcNAQEFBQAwDjEMMAoGA1UEAwwDb2FwMB4XDTIx
|
||||
MDgyNjAyMzkzN1oXDTIyMDgyNjAyMzkzN1owEzERMA8GA1UEAwwIcHJvdmlkZXIw
|
||||
ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDnXZ54vJNK/xAwrunMJf2l
|
||||
DgdsKfdAkW70LpzAFVq/lXjZXM0FxG4Kl/pR0cTf69MdhNxEQffyv42bjAEDIWQ/
|
||||
FhtPa0mApLAd0gAGZ920ANS6XRw9QV4UujxOzTyivxOHU4LQ8s+xo6X3jZQ6rzdM
|
||||
KeFYu4uEDZj7J0aN4d68HDhAiQFtmDxJ4AOyMpQ+6VzuC8RslcKXeO1mhzHbbYwN
|
||||
e1cMaLMzJpcgw7mpTF3iGkiSO5dEbTmEdmEdTDikJtoQvB7YISMeKeFe1BE19ccF
|
||||
n06mPh7fgBEJsBZmkPflpksjFG9VTbdC0qiz4NIA/t1Sjig65p6uEOkV1KwyTzxp
|
||||
53P962prYw/yYtCftgPtrQeW9u7xJ81MkR4WLi9ut6UKyHSsgZwRtK4nInt+avDc
|
||||
3CPHGuZfSg7Cf8Ll6dUc7UGVJoFCY3zZjeZ+JcxD52hPfOXBmsG1QF1LUBO0+Dwl
|
||||
snwJVIeRTRtVgMp64iKzvjpqAU/ydZNr7JbBYMw9kLSi/Lv8UDfXyB2h0fmWLXOB
|
||||
eWSfoNZTUlIS+D03Q6UwbH45VBiYz0+PWN7ywa1uB3igQrbUdiweYgaErjUtKthB
|
||||
xg4ZlN3xkccon1MsM9YuX1jlj2IeCWFiLFDwU17V0V263ETRN9NgUZF/JpoJEmb0
|
||||
PE4aKRq/M8CRMvPn5Ga4HQIDAQABMA0GCSqGSIb3DQEBBQUAA4ICAQALy+gfWHtf
|
||||
+6jP7OJRCpYuNrJFsvowp6WmFqc9P0XE10Ux9LL6NuDJ0TQE6361qqIE1oy263bV
|
||||
2zTKg3+MwRbVsxDvK7smxBxdeDGQILFXWzfJIMcJTjd8sEUQ05fN/nJx8obYHcz1
|
||||
YDntOrFH3azTL5SbrUMuaxhWIWf4lQXXN8EzE3IP0x0cgGk5ULaIim8sTh7t2+k9
|
||||
+Sck6z7PB7u8gCMLBtTfyxgwS5MFT5zJAQmOqg/0bNd9lVqWTqd1D94jjsu1mnMc
|
||||
nhRHqSO2WsIg6Z8YUofYQ0xelDpqXFkyN5MeiVU0iDuC93sjjG52bjFR0YKcKKYW
|
||||
8fe4bIpt7XKKZsjyZqCuQGDvwjpBh7a2feElqlLGqDjKyhIEkENZv9+8i3L0Sor0
|
||||
mrAkFf4THnGbxmrJyrp/89cc44scv0QHz6EKHTk1idfLc+HhL3a6vlqx0CxpupXi
|
||||
K5Lz2UCs6DIoyqYI0vciaa9xVsxhIbfXasXPp1Jflz2k4NRn0LuS8WSQds+Sall2
|
||||
A0GwKZjc7DkgKzsQaxk3BEi44XH8WaXDuFBQY5AEzQEGA/kcwKsKg0pggGt9Usrk
|
||||
mmB5QDUDC0NeQKcCE45POcrUuNbfvMKoLjj+SlkOmcJUBjcDlroNCBSPDuRRZswS
|
||||
eBPbdGuiYYZj52ImTm/ytg7ksehW+fGolg==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIJRQIBADANBgkqhkiG9w0BAQEFAASCCS8wggkrAgEAAoICAQDnXZ54vJNK/xAw
|
||||
runMJf2lDgdsKfdAkW70LpzAFVq/lXjZXM0FxG4Kl/pR0cTf69MdhNxEQffyv42b
|
||||
jAEDIWQ/FhtPa0mApLAd0gAGZ920ANS6XRw9QV4UujxOzTyivxOHU4LQ8s+xo6X3
|
||||
jZQ6rzdMKeFYu4uEDZj7J0aN4d68HDhAiQFtmDxJ4AOyMpQ+6VzuC8RslcKXeO1m
|
||||
hzHbbYwNe1cMaLMzJpcgw7mpTF3iGkiSO5dEbTmEdmEdTDikJtoQvB7YISMeKeFe
|
||||
1BE19ccFn06mPh7fgBEJsBZmkPflpksjFG9VTbdC0qiz4NIA/t1Sjig65p6uEOkV
|
||||
1KwyTzxp53P962prYw/yYtCftgPtrQeW9u7xJ81MkR4WLi9ut6UKyHSsgZwRtK4n
|
||||
Int+avDc3CPHGuZfSg7Cf8Ll6dUc7UGVJoFCY3zZjeZ+JcxD52hPfOXBmsG1QF1L
|
||||
UBO0+DwlsnwJVIeRTRtVgMp64iKzvjpqAU/ydZNr7JbBYMw9kLSi/Lv8UDfXyB2h
|
||||
0fmWLXOBeWSfoNZTUlIS+D03Q6UwbH45VBiYz0+PWN7ywa1uB3igQrbUdiweYgaE
|
||||
rjUtKthBxg4ZlN3xkccon1MsM9YuX1jlj2IeCWFiLFDwU17V0V263ETRN9NgUZF/
|
||||
JpoJEmb0PE4aKRq/M8CRMvPn5Ga4HQIDAQABAoICAQDiA4VsYqLsr1AMjsIbyL0I
|
||||
QTUlB7XeoHOoG+TKi9HTt9uPUuWBjcsFlENXLDlLmV7pxkE6eMsTmuZlnhXbDgKU
|
||||
0i6pnZ/3CGp3Jw8ZMtvUHL+ysoSEnleenfON81YZkdks6HqxTZFw8fGObALydPnq
|
||||
8DqP6N24iWP5bPuyXISudE7LVEtN2VqDvE9AA8Ln1iYO8PXYMVAfkmUvNECTH2ei
|
||||
P+vgVmNAQ6F8w1aaONy5pH1iRM5XbO+0I8Roz23BhaaelHb5IR3iOH1NmpKZiNf7
|
||||
+Qzmv2Z/ZOa/9QFc/p77+0AJK8w6o6mzoIBm/+eGS3K/U9me+Gzok+JujgwNNXRI
|
||||
EHZew0c6WP9GhkdjafwAWhDbx63YM3in5utYb195Ob11C6Jfw/kmX8VFPjaWruyf
|
||||
g8lYIhQOpE+AgE206hAKmF4A39qbR89J++eqQy2eiOdpIDZfHO2S1GIxJsOD1nGy
|
||||
B63xJlYwW61DyhTDCDW6jXcCHBaobNnV9uX+ojIOHh9+Gxj3UAKq80cDAtg2cKqq
|
||||
FPWv/HkPeP1rd5U/nWUm3JF7PQrTwLhyPluNd4fjYpaaMcdES0A2nB7ioXy4VdVl
|
||||
EKg9PqVBREQ9pdtOXL2Run+w2yT4Pnv/IyG9VnfvQICW0b40mJGqZaTb40Qlgoxq
|
||||
sZXuGfnGiOsVymaGaFsi4QKCAQEA/pIjXbI28s4Y9tLgzU6m8jfqqE7pT2qJCxQv
|
||||
87cnJru9g99i8phhrqejf1u1ZtlUhv1dPR/Dc3tQtP3d/5L+nL5fuIMKu8brOvZu
|
||||
eu2srI60TBPy7B8p4JF+2nuVSJD8B2Y7hkGxkkO7fw43WCklMoWKbYFS8RBd79jd
|
||||
7jjiq5lbM/LnBrVx36EqGcuGhQaB9efbdEdImcFe2uv8NsZJjNtBhATFtD2amBoo
|
||||
uA6BNQwUhsXmJ4puvqC+x7o5zzH/HneBxVKrYPGGiqZjZvjz+UK3E/Kl08DbGVzs
|
||||
jKIet5e5FfJDEWrJE7Idx99td/1BXuYdiPkXG2yGrLrKdNEoGQKCAQEA6KohkE6G
|
||||
Zxf/OB7dNac4NMta6F5AsX7AykmLhvwvlcdtAU/BrYda4ToY4+pjHIK8UWNKNgSi
|
||||
LbsUix8oDrTctNZUFpJhWAGsx9xb5y+pSjSIQifn4nuxs6kVe8slBk1S23clCThi
|
||||
MxedXkhnx3i7ZvjrtHs4be4n/uzZ1oQcXeN0LOZ85KuoHVlYlQ33cDc+p4dJfVsm
|
||||
sAU+Vk/ObGBVmCie9bmOGSNSkCElyYInpQ8W4QPfVHrJk5CUeqJe0g5BMN+9zHiW
|
||||
ssD794VL5J7i/sRRqtMXYSLFOaILNH34DLPPxhYiPQQesSdax5o2Gw8Yb37qosNa
|
||||
gHCMhhHkgtLgpQKCAQEAqaWFv/j1uVUzOblKakdR5fTxgfwkavIaJbHsSsPxaVSP
|
||||
dQQ3EmgOILBCuqrI9qM6O0M5EXTLcXfqTtMnUBwLZTVQ4MsjKgPj2sVC1tTwz4XC
|
||||
DTj2F/ikla0gFkVpNJS5/8xXOp8o0MomdwNoSm4RBdwMZfFa7p7zmtSxAQITvDtU
|
||||
lgf3gXcFTfw+7DW/jYLKtK8whgrDDQPaTJYa2/3EIgQzYuEzR2wOS/KS1CWGYW2N
|
||||
eEsFl7AfIRZKTRuDTtqIoysM5gyzfMU33coIUCTzoVaeXsLDU5wf5oUQdp/LTJnl
|
||||
lASAQWkiWufGBN6WOvIg0DcV06P7jCEElrNcHAEOcQKCAQEAjt4hnA5MA7Q9mQWC
|
||||
ynZzUh/pI7T0vslZsx20GuByi+OYsOx7voXWLWVScWm1EIXLA6MXp9HykGhHdiJc
|
||||
o6M1v6m4mt+p/LOSmGtc17pxlsppPU5p2q4f8XWLZqfYhWUn0vH3gRDpY/xFOub1
|
||||
Kwyc7t89RWdAwGg0kRp5rXsUPCb2aLfjyzsJEXSSq3yXC4Yw6Ahv/RTizcV6gN+i
|
||||
nvQMu1F+Qt99PTxub2ibXoCYvYdlgiixk5uOehmWwzM/THdKWquZTZxi1UMhtd1Z
|
||||
O/rA4rZEe8QBoDkMqJYzkTkk/w/PLxDaV2NXQWssGFM+lCER3S0vAWE6CpKSB6Wn
|
||||
DxpUrQKCAQEAi0/qs9bdnxjmZWJHyDhx0CNuEytyVB+o48e1bHa7Vr/paojbfKV9
|
||||
6LeNHiaMI3Uanu1yqueuEkqc7uf6ac+AEX1oRKd6s0HkxbTkzGrYcC1RZ67aRfD7
|
||||
iwNkjg0rMkNVkJGC5RTysGVTKo6Wu1K4HW0Ztj0S+UW4Cd8Z0LT1bZr2K47E9wKJ
|
||||
gEIjbgOAjCmV9tNKOUN4JBWo02aT+vPW7NzMP0XxRKwT3QvxnumXciUsQWmm+C4B
|
||||
aUmvvXGy1Drq5nTGJu2hPvZ+0t/TpmIqlRU0GPevv4zFNI5oLocFDSZgx8CTEnSY
|
||||
7fL3g6gq14QLJJhYzF1FkGFQZw7iH2gvBg==
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
# 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
|
||||
volumes:
|
||||
- ./server:/skywalking/certs
|
||||
environment:
|
||||
SW_RECEIVER_GRPC_PORT: 11811
|
||||
SW_RECEIVER_GRPC_SSL_ENABLED: "true"
|
||||
SW_RECEIVER_GRPC_SSL_KEY_PATH: /skywalking/certs/server.pem
|
||||
SW_RECEIVER_GRPC_SSL_CERT_CHAIN_PATH: /skywalking/certs/server.crt
|
||||
SW_RECEIVER_GRPC_SSL_TRUSTED_CAS_PATH: /skywalking/certs/ca.crt
|
||||
expose:
|
||||
- 11811
|
||||
ports:
|
||||
- 12800
|
||||
|
||||
provider:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: provider
|
||||
volumes:
|
||||
- ./client:/skywalking/agent/certs
|
||||
environment:
|
||||
SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11811
|
||||
SW_AGENT_SSL_KEY_PATH: /certs/client.pem
|
||||
SW_AGENT_SSL_CERT_CHAIN_PATH: /certs/client.crt
|
||||
SW_AGENT_SSL_TRUSTED_CA_PATH: /certs/ca.crt
|
||||
ports:
|
||||
- 9090
|
||||
depends_on:
|
||||
oap:
|
||||
condition: service_healthy
|
||||
|
||||
consumer:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: consumer
|
||||
volumes:
|
||||
- ./client:/skywalking/agent/certs
|
||||
environment:
|
||||
SW_AGENT_COLLECTOR_BACKEND_SERVICES: oap:11811
|
||||
SW_AGENT_SSL_KEY_PATH: /certs/client.pem
|
||||
SW_AGENT_SSL_CERT_CHAIN_PATH: /certs/client.crt
|
||||
SW_AGENT_SSL_TRUSTED_CA_PATH: /certs/ca.crt
|
||||
ports:
|
||||
- 9092
|
||||
depends_on:
|
||||
provider:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
e2e:
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
# 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
|
||||
|
||||
cleanup:
|
||||
on: always
|
||||
|
||||
trigger:
|
||||
action: http
|
||||
interval: 10s
|
||||
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: 10000
|
||||
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=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-id=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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=POST:/info --service=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 $(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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
|
||||
|
||||
# dependency instance
|
||||
|
||||
# trace segment list
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls
|
||||
expected: ../expected/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|grep -A 5 '/info'|tail -n1|awk -F ' ' '{print $2}')
|
||||
expected: ../expected/trace-info-detail.yml
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEmDCCAoACCQCHw9DXRSuLGDANBgkqhkiG9w0BAQsFADAOMQwwCgYDVQQDDANv
|
||||
YXAwHhcNMjEwODI2MDIzOTM0WhcNMjIwODI2MDIzOTM0WjAOMQwwCgYDVQQDDANv
|
||||
YXAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDBrmOmHjb3OrbXXbF8
|
||||
09uuV8f8ITI1H1AceoD6Ak1yovanCxvvCvcKgZ4hLtPlUldg8fBqo3SivyzYbd4N
|
||||
082K8yYeoGHBKSaW5ckO126IHAzMHLCzw5qDgqTHHoovWQVv5VKCJC2y4xpeeakY
|
||||
ifk2DWPmou/rkKzZyflWMn7b0+bi81IQJgDz01UF19OAXXx4jp53yCKPwp+Que9R
|
||||
AIrlYXuBHkpwbDDs7vtCMSa/j+Klw8eAcZAm1NO3Y8VpG+uMxTFfVLr0nGvKMEKO
|
||||
0P3q1mp2NML/sNP89RHZsXM/eYU1UE0Da1aQ/o+fivXs3CRStxwFMwCMg/+uXccT
|
||||
Raufz0OhEwRJa0zbn8XBvcvLJ7kmXio3df23fSPT/i9whyQujfXE7cAraOEj8KjI
|
||||
NUDTi6dASlUeoNoKsklB4P3UIUCwCvZu9PqU9v7Oz8tOsxNpGvY2oBA+tVwZ1U/p
|
||||
ON992LmGZz2J9xpDjojCddUS5tRZGD0itMWlJiLaRd7VSPLRuyUGLqbEjf/7GffO
|
||||
Tb/5R7DhcKSFdrNXisz/kjU4qSwYFJ9WzUbbraV3MNiJiRa0eHGbLffHKVIvVcPI
|
||||
scaP04nTTbX7l4qUPmX/YcTNEZV0HDC3s0Qxk0y6lXxu3rDue1yx+N+S0TwCSq8D
|
||||
hpIDLWi/fYLbAoYnqv5jJxbnLQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQB84/85
|
||||
KA2S2iXHhN1bkEx0cIjkg2t16Ht+b602na4bmZIpxUVzUv6dqiwCx5wDyM96T3OX
|
||||
xRDO8uVQEUMJ+76dm53UFZ9uhtGBvSFc8YqnL+EoXD1IQ8IQ7PVVf4dyzKyxhtK2
|
||||
XHr6RPtDnLhHy6mxQ5eaqBTaZ1dLoQlAIPyzh2mX2px+jGu9DKQxrZQ+0aMklidW
|
||||
xSDLLGr7cK+tQln4P0DC61uLS/VGQ+15a6XpqF3FhhspJrQPse+WSC015KCdSgnZ
|
||||
dIDxqtPS+hhyw5o4C39KDHD0x04VVIEhMsX3Z2eykK0KXnnsPcXWdFj/pR55Kcr3
|
||||
qPfxGRLrEeYvoUUzr2APiHTPzWsUDwugfV9KXyGYuxIqqOpPr5nWqGfo9ZcvbH7K
|
||||
Mqc32DFvFdNnUqMYQHu9oigjfCvscdNTrWHlGYD3HJmWZur4IBReb8uG5qPN+VLH
|
||||
1xs7EcW6NN6A1pndHEosAFcVIh5kx4gRCsZMsEdGExn4gkTknfBosWo0tROV00UU
|
||||
UYFqLZfUmJyPDVYZf1fjiLd+yC2qJERNxWWy03JG5UZDLc03ULPlqys+MCT8rRdD
|
||||
b7p2WGOQBM9whNC5BC6SydFPphwc3yhR1jmMSz+QB18Easo7RV6fmhE462wj1EoH
|
||||
+IDtJX6JRGguky29ibdolQUiRK3rVowGpIjjgw==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEkDCCAngCAQEwDQYJKoZIhvcNAQEFBQAwDjEMMAoGA1UEAwwDb2FwMB4XDTIx
|
||||
MDgyNjAyMzkzNVoXDTIyMDgyNjAyMzkzNVowDjEMMAoGA1UEAwwDb2FwMIICIjAN
|
||||
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0VJUfo/vFmE5N8QYnOAsq3UUgoaH
|
||||
U+OkwGD+VNQf23sajzfc6/IAoR0Qm6zUqgf1d3BjUrhk4+QRZPCzKzgEvJtFcPwm
|
||||
VGOp2ojhy92OUMSPL8S6UARHZ12VBfZyvC8UK6AZhvIpKRoE4quzZbIoD8FB7zfw
|
||||
ABlJvzUHBQp6kHy7UTlNPLBlMbDk7n5EZp53fCzl6hpRuZ5v3EPtq0u76Ub7gGoH
|
||||
40J3omPMwR0g8ACEK7ijyXbIOKkQiKPcHwaC2dQRaUwShdhSX3fzsq6A/f4Knzhk
|
||||
m0YyRcr3AD3z0Ud/VBUgSOHIylQq0XATbc5qjsKr+06lKqk2vq565Jh5SdnwZD+N
|
||||
2CyPa8dld6Ogc3fq7Pl48Sil2Jt5yxV2rPNTYoLeRJKh2ExtATkgJGIEG8fUwP6M
|
||||
42lyKJOm/R4penHMNHr+Mun+fscY/2DcTAGNYinXlBGEX0fRccQljGYKTy2J3fP8
|
||||
XzRQgYzT5q1RNC8eKlH1IDRlWbVpisNOGcPOxf8n7MSCu6PjlKbmSKnS9+MeYeqZ
|
||||
wMObi4vWv7j84r6lMHW2AYtr+iXVkgBlB6mDS72lgpViZeLnfh+KEoMQpZFGSc70
|
||||
CuS5W+RD/4dJxIAlCiO8zvv0lJl/C67ZNbpfD+nG2csGW0iG0v/amfK0mPaw3idu
|
||||
7LNqK240yGioOJcCAwEAATANBgkqhkiG9w0BAQUFAAOCAgEAYoSC5eUue47ytaqm
|
||||
504i+iSQUiVHr3C9sRbVMhr0JtnemafWOKAuJUPEf27nxKEL3RJsZ6Csj/PkZboZ
|
||||
+p+Zg7F+n8EOTGhEADG5Q7AIiayioqFNEgn+ff1LlPEILFYysdAfTCRBkwVOksLO
|
||||
YMBeb/MXccf62FQrTrDcrAskmC0kENQDeQNjtQjCaV8DDTI68QX5lOK8FNSFIlYh
|
||||
DwCu1JZSUYvKE0UcZzAQI8BZrlLtacYolwz6cfuB4NvofS1Su5nSB+ugbYkzxNyS
|
||||
zBSOL7HSn6xhcCayyFsqRBZaIf81EaUg2wWr4E5pfyy7jWFMPiG2m/3z8lPGDa38
|
||||
cyCdnHz8khmzxMV1qJn4e40YwnWtwZ8xH3S4UNI35RVS4I7IWwEbvnwZ5evYszsS
|
||||
cxoKZg7vfWuSSqGgZjHqgCI44BsLo9gbT7KtZSnlQKrXd4FlXA3Jjw02qpNr+R8a
|
||||
Kld25+GtQgsfbAooC9HkTAVsTmAl+pFv/Rm6vVPRYTQJOZE3Y5/hh8E+33odIthd
|
||||
uw0upy21BSwHukL+Bu8yQSw0kdzy3s/aSuqwyxVsrjZ7xlprmp14Tb2S9NlpnWiO
|
||||
s2LykpvyO0h9vKa4iQMZidwysm3sb4hzb7NsUnwk+pWev7AE/iQ3DwsV2qYUsfNp
|
||||
N2pQDjCFe9atqCglt+mkdZfucss=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
iE7e5UrqISr1f6Sd1Rb4l3y30ky0Mg==
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEmjCCAoICCQD/tosAx2ZFnDANBgkqhkiG9w0BAQsFADAOMQwwCgYDVQQDDANv
|
||||
YXAwIBcNMjAwMzE2MTEwMDI0WhgPMjEyMDAyMjExMTAwMjRaMA4xDDAKBgNVBAMM
|
||||
A29hcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7IYIJhJXhhwwzo
|
||||
ILpbhQJGsK7DnIb0u3AtJd9i0OExC/YBrWiozCkzD4mFIp5GV3Eew5qFjj+TJ+rb
|
||||
97yd9pBjhkdJRjPNFtbZTvt4cmnQR5RSqztx/n+iaw/9AXkaGgk8Ql5hMGaqoMHJ
|
||||
7VNne9L5lhA+lW0ZrWOhKvYrx68laRCXdyyYvR5T4xzPPiZDczj9w2jmuVcAVVo4
|
||||
tWnr2vCOYBX7I+jnwK7vvHVfSj6eNRTu+FsZQaDIUqzYqNJJLgssulpSaSUOqDPA
|
||||
GCB4D9E8JtA61KPILLZGhtR6Ov7yyxucIYIleVIv/+QMe9swQAz91fy27rgbr32+
|
||||
1kOb6z5UhQkYt93xQ+W/vqoexzoE1TbUz76DQiCRF2vmbUuo5yV1HCW52o+jWbXX
|
||||
Qvce/SBwXOAhoIUXAsnlmSK6RGL2dIHMYuuHuyKtMPzTjabFt09DZEEA4neHCHuC
|
||||
oAlXcwW0V9AU5ILCmeKakUftRX766rLibSSD0siml+ePdSmm592bXhwb0e8Q6GaM
|
||||
7jhyQJ37YlT5uaSLIC0Og0daA3WO0D8qLxCO2DEAiLRU5v35KXRoeY/Qqhl3OLTR
|
||||
t7ekR4lXHZmstniuYdp/5CKiKwZOIt02uHrfmyLcxdocOBQJBGde+AoP/WwNb+FX
|
||||
/iOevPiSeRQMl/QN7ClzgojH5EiRAgMBAAEwDQYJKoZIhvcNAQELBQADggIBACi1
|
||||
SlaU03ZTYPPk3kOzck+3Wy3eXBP6i33e6I03/Y4wjSyvQyGOKo4nl0kYiMfb9Nb3
|
||||
71YbAnlPvDHfhKrCdZcigHQEgJWOe81ThyWjnGZrKAo2DkQYtxMi4ZaidmkDJSfh
|
||||
LzX/9sM0v+/hdjEF1u4owClCQvHjHiZa9kneYox1enE4d0xGRPPoRh32j7myuA4c
|
||||
nqAgYZBPU+elNsAKwT5HTfnEj1bd1H9KWRXKmahqAIpg7K7Izn5Qn9WG1a7m9Wvr
|
||||
FRweRHRmF9ol+C8rvR5uYR6VBj3J3hFsHu5s5ZSQs3YpFHJcByF9nsuOUFu/JsBJ
|
||||
JVgf5kbeLewEeAmqAES8dKRKjVTZhU9XG84ysHliuwv36BmVEz1XbWCqKUEwceFd
|
||||
xgsXBe4DXE/XQM5JXpQHr1WzZY5HXuV4/knO+U6xpQaXi9D1V7qaD0NGKSFh29tO
|
||||
GJi2H6Nd9UrIkTgmsvDPuNTLo+QKrPlx7w2Sr9gW1AmLKZN4k6L52tW20tlQnKBf
|
||||
PzLwnSu2ZcJWPZEmTmyXzuNz9s/HJXaxHYA3/+RtNlrjSvmH8WbTkO5+wHpJKiJt
|
||||
Lnd6O6AQ845zucdfiOmi+XpOl+zVdOQ5VudzgO8C85joKTfJ3/G4EKZ1aeNd54vg
|
||||
ZhYmoomvkl58Tk3upPsdVf5zR5o8efkuuFwn6CxW
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEmjCCAoICCQD/tosAx2ZFnDANBgkqhkiG9w0BAQsFADAOMQwwCgYDVQQDDANv
|
||||
YXAwIBcNMjAwMzE2MTEwMDI0WhgPMjEyMDAyMjExMTAwMjRaMA4xDDAKBgNVBAMM
|
||||
A29hcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7IYIJhJXhhwwzo
|
||||
ILpbhQJGsK7DnIb0u3AtJd9i0OExC/YBrWiozCkzD4mFIp5GV3Eew5qFjj+TJ+rb
|
||||
97yd9pBjhkdJRjPNFtbZTvt4cmnQR5RSqztx/n+iaw/9AXkaGgk8Ql5hMGaqoMHJ
|
||||
7VNne9L5lhA+lW0ZrWOhKvYrx68laRCXdyyYvR5T4xzPPiZDczj9w2jmuVcAVVo4
|
||||
tWnr2vCOYBX7I+jnwK7vvHVfSj6eNRTu+FsZQaDIUqzYqNJJLgssulpSaSUOqDPA
|
||||
GCB4D9E8JtA61KPILLZGhtR6Ov7yyxucIYIleVIv/+QMe9swQAz91fy27rgbr32+
|
||||
1kOb6z5UhQkYt93xQ+W/vqoexzoE1TbUz76DQiCRF2vmbUuo5yV1HCW52o+jWbXX
|
||||
Qvce/SBwXOAhoIUXAsnlmSK6RGL2dIHMYuuHuyKtMPzTjabFt09DZEEA4neHCHuC
|
||||
oAlXcwW0V9AU5ILCmeKakUftRX766rLibSSD0siml+ePdSmm592bXhwb0e8Q6GaM
|
||||
7jhyQJ37YlT5uaSLIC0Og0daA3WO0D8qLxCO2DEAiLRU5v35KXRoeY/Qqhl3OLTR
|
||||
t7ekR4lXHZmstniuYdp/5CKiKwZOIt02uHrfmyLcxdocOBQJBGde+AoP/WwNb+FX
|
||||
/iOevPiSeRQMl/QN7ClzgojH5EiRAgMBAAEwDQYJKoZIhvcNAQELBQADggIBACi1
|
||||
SlaU03ZTYPPk3kOzck+3Wy3eXBP6i33e6I03/Y4wjSyvQyGOKo4nl0kYiMfb9Nb3
|
||||
71YbAnlPvDHfhKrCdZcigHQEgJWOe81ThyWjnGZrKAo2DkQYtxMi4ZaidmkDJSfh
|
||||
LzX/9sM0v+/hdjEF1u4owClCQvHjHiZa9kneYox1enE4d0xGRPPoRh32j7myuA4c
|
||||
nqAgYZBPU+elNsAKwT5HTfnEj1bd1H9KWRXKmahqAIpg7K7Izn5Qn9WG1a7m9Wvr
|
||||
FRweRHRmF9ol+C8rvR5uYR6VBj3J3hFsHu5s5ZSQs3YpFHJcByF9nsuOUFu/JsBJ
|
||||
JVgf5kbeLewEeAmqAES8dKRKjVTZhU9XG84ysHliuwv36BmVEz1XbWCqKUEwceFd
|
||||
xgsXBe4DXE/XQM5JXpQHr1WzZY5HXuV4/knO+U6xpQaXi9D1V7qaD0NGKSFh29tO
|
||||
GJi2H6Nd9UrIkTgmsvDPuNTLo+QKrPlx7w2Sr9gW1AmLKZN4k6L52tW20tlQnKBf
|
||||
PzLwnSu2ZcJWPZEmTmyXzuNz9s/HJXaxHYA3/+RtNlrjSvmH8WbTkO5+wHpJKiJt
|
||||
Lnd6O6AQ845zucdfiOmi+XpOl+zVdOQ5VudzgO8C85joKTfJ3/G4EKZ1aeNd54vg
|
||||
ZhYmoomvkl58Tk3upPsdVf5zR5o8efkuuFwn6CxW
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
gnyI3CLYvydZrh/sZ+HSEQZhdt/YtQ==
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEkjCCAnoCAQEwDQYJKoZIhvcNAQEFBQAwDjEMMAoGA1UEAwwDb2FwMCAXDTIw
|
||||
MDMxNjExMDAyNFoYDzIxMjAwMjIxMTEwMDI0WjAOMQwwCgYDVQQDDANvYXAwggIi
|
||||
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/3xn/AbxA4ykJbCnDr39em9Ys
|
||||
B7CgIuvS+ePNhkOd7R+mDBkXpvORW3vkri9jzW4in60gujFW2la+DhH18eh7ofVv
|
||||
JstL11ytFJuyNj7NHiymkSHM5MfHKQxiMtzs6CZ4660UvLAjwqFq3AbuV0gQRuAh
|
||||
+kyK5b+PJtH30ZOyNY57BKQxmu/H1iqt3cqR44PM2atUwReIivRNwclmEpbqH2UV
|
||||
YCvPdTJhe4bq2yuk1y/COemtvgBAuet5pqq8SoZ+M7iWsQajWSyAfskk4ICbqL0f
|
||||
AFL28/e8h9K6LCpEn1ayZ7PMMqnurUk1PKSodqX6wkTvp0b4kNaXm5KL5hWHeEb5
|
||||
YLj6m8puAC+vw2NcrQGCzZ7YXXpVynPbkJ2kmd06OJ6FL3qLfT7OaZXxzX3hmoSm
|
||||
Hu1HwP4oNbwKnTn43H8iCc3r2D9R6ax3ib4qYIDXlQHeIT3T7kEokjd9DHX1gGJT
|
||||
qZ0XF4ByiTYJMyZXkELg7unoZ5zHXr5edbaDlmIXu218qIRDXLOZBbgs+2Pd+N8u
|
||||
YhmGat+Ca4iT3fq3hqa1MgVgFNLJp1wj2EwAlD2Qyel3AJiuQYhKbWfuNOMYDIHj
|
||||
6p0zUATI1BjRQKbJrLuWn3SUwyaZgN/FNx9/aELU7UqwlQxE4Xby8lG4qcjwA7st
|
||||
Mjs5BAQLeZk8k5pc6QIDAQABMA0GCSqGSIb3DQEBBQUAA4ICAQATavjl5MD7cG5Y
|
||||
R4jiaCkTpqGzTK1gfGLwjBCGItC+uPJ8ftFljYUw9jwdg6rbN8ty4rgLw/1DeILB
|
||||
ULTqNPGS11OV9EUFITn88wM/QGMroFcpJijVZYd3OwbC56wAMIw4qwKg5NEIIKeK
|
||||
ThEvtmlrGBJmKfAe8t0fVuA0S2RBt+uPG8+2LsjNxhzfDfX84xJz3ezHImdB+3Lr
|
||||
4GD9z2l+Mw8io++os4rPbOYMnYsuw6y2CeDCLtfKKf8eyCBYlUmGRm4ILjGToTVv
|
||||
eHWJQI/WjnJPqtw4haDXDD6DtMPP9wZNGuqvUdBsQPU9DfXPqAhjpuzrsQ27dXMb
|
||||
CX2p6irLmUHiUjdZ/Com84XxWqfln7+wKE2fI+E//ldNt5djzRkJYftMbi5iQTCy
|
||||
wNhEupKtm4ph8leAccxYY5JlGFK6jd9UgQ2l6voic9A7i8WEGQ0wHoWpAwKJO9Jb
|
||||
zJdb9neeWhlWNVztY0ir8vnUNADWj2Y8D5gVCwJT1x0/+Kul9E6n4Rxw0UNsQEk/
|
||||
YpJk2no5VvfYPbVITc5Rd3Et4/B+to1zAGH5lL4Tatb15fapoqveskE4ButKmcLq
|
||||
urzHSFRU18rmq22wB+NT+t0vS8PK90eJhtzB+QUDbcXZleqcmVbwbsVZerOsVZK3
|
||||
fuhCEe0ES8CeaIPxHcUyDdt9ybo4/w==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
# 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
|
||||
volumes:
|
||||
- ./certs:/skywalking/certs
|
||||
environment:
|
||||
SW_CORE_GRPC_SSL_ENABLED: "true"
|
||||
SW_CORE_GRPC_SSL_KEY_PATH: /skywalking/certs/server-key.pem
|
||||
SW_CORE_GRPC_SSL_CERT_CHAIN_PATH: /skywalking/certs/server.crt
|
||||
SW_CORE_GRPC_SSL_TRUSTED_CA_PATH: /skywalking/certs/ca.crt
|
||||
ports:
|
||||
- 12800
|
||||
|
||||
provider:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: provider
|
||||
volumes:
|
||||
- ./ca:/skywalking/agent/ca
|
||||
ports:
|
||||
- 9090
|
||||
depends_on:
|
||||
oap:
|
||||
condition: service_healthy
|
||||
|
||||
consumer:
|
||||
extends:
|
||||
file: ../../../script/docker-compose/base-compose.yml
|
||||
service: consumer
|
||||
volumes:
|
||||
- ./ca:/skywalking/agent/ca
|
||||
ports:
|
||||
- 9092
|
||||
depends_on:
|
||||
provider:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
e2e:
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
# 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
|
||||
|
||||
cleanup:
|
||||
on: always
|
||||
|
||||
trigger:
|
||||
action: http
|
||||
interval: 10s
|
||||
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: 10000
|
||||
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=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-id=$(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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=POST:/info --service=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 $(swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql service ls|grep -B 1 'provider'|yq e '.[0].id' -)
|
||||
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
|
||||
|
||||
# dependency instance
|
||||
|
||||
# trace segment list
|
||||
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls
|
||||
expected: ../expected/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|grep -A 5 '/info'|tail -n1|awk -F ' ' '{print $2}')
|
||||
expected: ../expected/trace-info-detail.yml
|
||||
Loading…
Reference in New Issue