Add continuous profiling E2E tests (#84)
diff --git a/.github/workflows/rover.yaml b/.github/workflows/rover.yaml
index ab504b0..5451533 100644
--- a/.github/workflows/rover.yaml
+++ b/.github/workflows/rover.yaml
@@ -76,22 +76,22 @@
matrix:
test:
- name: Golang On CPU Profiling
- config: test/e2e/cases/profiling/oncpu/golang/e2e.yaml
+ config: test/e2e/cases/profiling/task/oncpu/golang/e2e.yaml
- name: C++ On CPU Profiling
- config: test/e2e/cases/profiling/oncpu/c++/e2e.yaml
+ config: test/e2e/cases/profiling/task/oncpu/c++/e2e.yaml
- name: C On CPU Profiling
- config: test/e2e/cases/profiling/oncpu/c/e2e.yaml
+ config: test/e2e/cases/profiling/task/oncpu/c/e2e.yaml
- name: Rust On CPU Profiling
- config: test/e2e/cases/profiling/oncpu/rust/e2e.yaml
+ config: test/e2e/cases/profiling/task/oncpu/rust/e2e.yaml
- name: Golang Off CPU Profiling
- config: test/e2e/cases/profiling/offcpu/golang/e2e.yaml
+ config: test/e2e/cases/profiling/task/offcpu/golang/e2e.yaml
- name: C++ Off CPU Profiling
- config: test/e2e/cases/profiling/offcpu/c++/e2e.yaml
+ config: test/e2e/cases/profiling/task/offcpu/c++/e2e.yaml
- name: C Off CPU Profiling
- config: test/e2e/cases/profiling/offcpu/c/e2e.yaml
+ config: test/e2e/cases/profiling/task/offcpu/c/e2e.yaml
- name: Rust Off CPU Profiling
- config: test/e2e/cases/profiling/offcpu/rust/e2e.yaml
+ config: test/e2e/cases/profiling/task/offcpu/rust/e2e.yaml
- name: go2sky Agent Sensor
config: test/e2e/cases/process/agent_sensor/golang/e2e.yaml
@@ -139,8 +139,8 @@
path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
- https-e2e-test:
- name: HTTPS E2E test
+ network-profiling-https-e2e-test:
+ name: Network Profiling HTTPS E2E test
needs: [ docker ]
runs-on: ubuntu-22.04
timeout-minutes: 60
@@ -149,18 +149,18 @@
matrix:
test:
- name: Golang Profiling
- config: test/e2e/cases/profiling/network/golang/e2e.yaml
+ config: test/e2e/cases/profiling/task/network/golang/e2e.yaml
- name: Python Profiling
- config: test/e2e/cases/profiling/network/golang/e2e.yaml
+ config: test/e2e/cases/profiling/task/network/golang/e2e.yaml
- name: Envoy Profiling
- config: test/e2e/cases/profiling/network/envoy/e2e.yaml
+ config: test/e2e/cases/profiling/task/network/envoy/e2e.yaml
env: ISTIO_VERSION=1.13.1
- name: C++ Profiling
- config: test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml
+ config: test/e2e/cases/profiling/task/network/c_plus_plus/e2e.yaml
- name: Nodejs Profiling
- config: test/e2e/cases/profiling/network/nodejs/e2e.yaml
+ config: test/e2e/cases/profiling/task/network/nodejs/e2e.yaml
- name: HTTP2 Profiling
- config: test/e2e/cases/profiling/network/http2/e2e.yaml
+ config: test/e2e/cases/profiling/task/network/http2/e2e.yaml
steps:
- uses: actions/checkout@v3
with:
@@ -176,8 +176,53 @@
run: echo "${{ matrix.test.env }}" >> $GITHUB_ENV
- name: Setup SSL Certs
run: |
- bash test/e2e/cases/profiling/network/base/ssl/gen-selfsigned-ssl.sh service
- bash test/e2e/cases/profiling/network/base/ssl/gen-selfsigned-ssl.sh proxy
+ bash test/e2e/base/scripts/gen-selfsigned-ssl.sh service $(pwd)/test/e2e/cases/profiling/task/network/base/ssl/
+ bash test/e2e/base/scripts/gen-selfsigned-ssl.sh proxy $(pwd)/test/e2e/cases/profiling/task/network/base/ssl/
+ - name: ${{ matrix.test.name }}
+ uses: apache/skywalking-infra-e2e@c3eb3241f649289465eda12af8214ca60aaaaa5f
+ with:
+ e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
+ - uses: actions/upload-artifact@v2
+ if: ${{ failure() }}
+ name: Upload Logs
+ with:
+ name: logs
+ path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
+
+ continuous-profiling-e2e-tests:
+ name: Continuous Profiling E2E tests
+ needs: [ docker ]
+ runs-on: ubuntu-22.04
+ timeout-minutes: 60
+ strategy:
+ fail-fast: false
+ matrix:
+ test:
+ - name: HTTP Avg Response Time
+ config: test/e2e/cases/profiling/continuous/http_avg_response_time/e2e.yaml
+ - name: HTTP Error Rate
+ config: test/e2e/cases/profiling/continuous/http_error_rate/e2e.yaml
+ - name: Process CPU
+ config: test/e2e/cases/profiling/continuous/process_cpu/e2e.yaml
+ - name: Process Thread Count
+ config: test/e2e/cases/profiling/continuous/process_thread_count/e2e.yaml
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: true
+ - uses: actions/download-artifact@v2
+ name: Download docker images
+ with:
+ name: docker-images-skywalking-rover
+ path: docker-images
+ - name: Load docker images
+ run: find docker-images -name "*.tar" -exec docker load -i {} \;
+ - name: Set env var
+ run: echo "${{ matrix.test.env }}" >> $GITHUB_ENV
+ - name: Setup SSL Certs
+ run: |
+ mkdir -p $(pwd)/test/e2e/cases/profiling/continuous/ssl/
+ bash test/e2e/base/scripts/gen-selfsigned-ssl.sh service $(pwd)/test/e2e/cases/profiling/continuous/ssl/
- name: ${{ matrix.test.name }}
uses: apache/skywalking-infra-e2e@c3eb3241f649289465eda12af8214ca60aaaaa5f
with:
@@ -195,7 +240,8 @@
needs:
- build
- e2e-test
- - https-e2e-test
+ - network-profiling-https-e2e-test
+ - continuous-profiling-e2e-tests
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
@@ -207,6 +253,9 @@
if [[ ${{ needs.e2e-test.result }} != 'success' ]]; then
exit -1
fi
- if [[ ${{ needs.https-e2e-test.result }} != 'success' ]]; then
+ if [[ ${{ needs.network-profiling-https-e2e-test.result }} != 'success' ]]; then
+ exit -1
+ fi
+ if [[ ${{ needs.continuous-profiling-e2e-tests.result }} != 'success' ]]; then
exit -1
fi
diff --git a/test/e2e/base/env b/test/e2e/base/env
index 434bc95..62c59f9 100644
--- a/test/e2e/base/env
+++ b/test/e2e/base/env
@@ -13,8 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-SW_CTL_COMMIT=0883266bfaa36612927b69e35781b64ea181758d
-SW_OAP_COMMIT=108260681ea9657217488685779a20cb84c2f288
+SW_CTL_COMMIT=f3eed66ee2ff330e3218fdc995b6f9952901e37c
+SW_OAP_COMMIT=d88d887a32f791d0670e4e8d5c2fd615126234cf
SW_KUBERNETES_COMMIT_SHA=0f3ec68e5a7e1608cec8688716b848ed15e971e5
SW_AGENT_GO_COMMIT=216f122d942cb683f48578d3014cc5ea83637582
diff --git a/test/e2e/base/scripts/gen-selfsigned-ssl.sh b/test/e2e/base/scripts/gen-selfsigned-ssl.sh
new file mode 100644
index 0000000..1d45fd3
--- /dev/null
+++ b/test/e2e/base/scripts/gen-selfsigned-ssl.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# 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.
+#
+
+set -e
+
+HOST=${1:-localhost}
+PASSWORD=test
+TARGET_DIR="$(cd "$(dirname "$0")" && pwd)"
+TARGET_DIR=$2
+
+root_key="$TARGET_DIR/root_${HOST}.key"
+root_csr="$TARGET_DIR/root_${HOST}.csr"
+root_crt="$TARGET_DIR/root_${HOST}.crt"
+
+key="$TARGET_DIR/${HOST}.key"
+csr="$TARGET_DIR/${HOST}.csr"
+crt="$TARGET_DIR/${HOST}.crt"
+
+CountryName=CN
+StateORProvinceName=beijing
+LocalityName=beijing
+OrgName=sky
+OrgUnitName=sky
+CommonName=$HOST
+Email=xx@gmail.com
+ChallengePwd=.
+OptionalComName=.
+
+# root ca
+openssl genrsa -des3 -out $root_key -passout pass:$PASSWORD 2048
+
+openssl req -new -key $root_key -out $root_csr -passin pass:$PASSWORD -passout pass:$PASSWORD <<EOF
+${CountryName}
+${StateORProvinceName}
+${LocalityName}
+${OrgName}
+${OrgUnitName}
+${CommonName}
+${Email}
+${ChallengePwd}
+${OptionalComName}
+EOF
+
+openssl x509 -req -days 365 -sha256 -signkey $root_key -in $root_csr -out $root_crt -passin pass:$PASSWORD -extfile <(printf "subjectAltName=DNS:$HOST,DNS:localhost,IP:127.0.0.1")
+
+openssl genrsa -des3 -out $key -passout pass:$PASSWORD 2048
+
+openssl rsa -in $key -out $key -passin pass:$PASSWORD
+
+openssl req -new -key $key -out $csr <<EOF
+${CountryName}
+${StateORProvinceName}
+${LocalityName}
+${OrgName}
+${OrgUnitName}
+${CommonName}
+${Email}
+${ChallengePwd}
+${OptionalComName}
+EOF
+
+openssl x509 -req -days 365 -sha256 -CA $root_crt -CAkey $root_key -CAcreateserial -in $csr -out $crt -passin pass:$PASSWORD -extfile <(printf "subjectAltName=DNS:$HOST,DNS:localhost,IP:127.0.0.1")
+
+# adding trusted root certificates to the server
+sudo cp $root_crt $crt /usr/local/share/ca-certificates/
+sudo update-ca-certificates
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_avg_response_time/Dockerfile b/test/e2e/cases/profiling/continuous/http_avg_response_time/Dockerfile
new file mode 100644
index 0000000..638f11f
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/Dockerfile
@@ -0,0 +1,28 @@
+# 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.
+
+FROM golang:1.17
+
+WORKDIR /
+COPY http_avg_response_time/ /service
+
+WORKDIR /service
+RUN go build -o response_timeout response_timeout.go
+
+COPY ssl /usr/local/share/ca-certificates/ssl
+RUN update-ca-certificates
+
+CMD ["/service/response_timeout"]
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_avg_response_time/docker-compose.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/docker-compose.yml
new file mode 100644
index 0000000..1c0bc74
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/docker-compose.yml
@@ -0,0 +1,54 @@
+# 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:
+ service:
+ build:
+ context: ../
+ dockerfile: http_avg_response_time/Dockerfile
+ ports:
+ - 10443:10443
+ volumes:
+ - ../ssl:/ssl_data
+ healthcheck:
+ test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/10443" ]
+ interval: 5s
+ timeout: 60s
+ retries: 120
+
+ oap:
+ extends:
+ file: ../../../../base/base-compose.yml
+ service: oap
+ ports:
+ - 12800:12800
+
+ rover:
+ extends:
+ file: ../../../../base/base-compose.yml
+ service: rover
+ environment:
+ ROVER_LOGGER_LEVEL: "DEBUG"
+ ROVER_PROCESS_DISCOVERY_SCAN_MODE: "REGEX"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: response_timeout
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LAYER: OS_LINUX
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: test-continuous
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_INSTANCE_NAME: test-instance
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_PROCESS_NAME: "{{.Process.ExeName}}"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LABELS: ""
+networks:
+ e2e:
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_avg_response_time/e2e.yaml b/test/e2e/cases/profiling/continuous/http_avg_response_time/e2e.yaml
new file mode 100644
index 0000000..2a517cb
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/e2e.yaml
@@ -0,0 +1,68 @@
+# 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.
+
+setup:
+ env: compose
+ file: docker-compose.yml
+ timeout: 20m
+ init-system-environment: ../../../../base/env
+ steps:
+ - name: set PATH
+ command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
+ - name: install yq
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
+ - name: install swctl
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+ action: http
+ interval: 3s
+ times: 10
+ url: https://${service_host}:${service_10443}/provider
+ method: GET
+
+verify:
+ # verify with retry strategy
+ retry:
+ # max retry count
+ count: 20
+ # the interval between two retries, in millisecond.
+ interval: 10s
+ cases:
+ # metadata
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml service ls
+ expected: expected/service.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml instance ls --service-name test-continuous
+ expected: expected/instance.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml process ls --service-name test-continuous --instance-name test-instance
+ expected: expected/process.yml
+
+ # policy setting
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous set --service-name test-continuous --config test/e2e/cases/profiling/continuous/http_avg_response_time/policy.yaml
+ expected: expected/policy-set.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous ls --service-name test-continuous
+ expected: expected/query-policy.yml
+
+ # check profiling metrics
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml metrics multiple-linear \
+ --service-name test-continuous --instance-name test-instance --process-name response_timeout --name continuous_profiling_http_avg_response_time |yq e 'to_entries | with(.[] ; .value=(.value | to_entries))' -
+ expected: expected/metrics-has-value-labeld.yml
+
+ # check triggered profiling task
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name test-continuous --trigger CONTINUOUS_PROFILING
+ expected: expected/trigger-task.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/instance.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_avg_response_time/expected/instance.yml
index faa04bc..b2ac6e7 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/instance.yml
@@ -14,19 +14,9 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ name: test-instance
+ attributes: []
+ language: UNKNOWN
+ instanceuuid: {{ notEmpty .instanceuuid }}
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/metrics-has-value-labeld.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_avg_response_time/expected/metrics-has-value-labeld.yml
index faa04bc..8ba301b 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/metrics-has-value-labeld.yml
@@ -14,19 +14,10 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- key: {{ notEmpty .key }}
+ value:
+ {{- contains .value }}
+ - key: {{ notEmpty .key }}
+ value: {{ ge .value 1 }}
+ {{- end }}
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/policy-set.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/http_avg_response_time/expected/policy-set.yml
index 0df418f..a51bce7 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/policy-set.yml
@@ -13,30 +13,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+status: true
+errorreason: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/process.yml
similarity index 61%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_avg_response_time/expected/process.yml
index faa04bc..1331630 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/process.yml
@@ -14,19 +14,22 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
+- id: {{ notEmpty .id }}
+ name: response_timeout
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ instanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ instancename: test-instance
+ agentid: {{ notEmpty .agentid }}
+ detecttype: VM
+ attributes:
+ {{- contains .attributes }}
+ - name: host_ip
+ value: {{ notEmpty .value }}
+ - name: pid
+ value: {{ notEmpty .value }}
+ - name: command_line
+ value: /service/response_timeout
{{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+ labels: []
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/query-policy.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/http_avg_response_time/expected/query-policy.yml
index 0df418f..dbab173 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/query-policy.yml
@@ -13,30 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+- type: NETWORK
+ checkitems:
+ - type: HTTP_AVG_RESPONSE_TIME
+ threshold: "500"
+ period: 10
+ count: 1
+ urilist:
+ - /provider
+ uriregex: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/service.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_avg_response_time/expected/service.yml
index faa04bc..09f5874 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/service.yml
@@ -14,19 +14,11 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1
+ name: test-continuous
+ group: ""
+ shortname: test-continuous
+ layers:
+ - OS_LINUX
+ normal: true
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/trigger-task.yml b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/trigger-task.yml
new file mode 100644
index 0000000..367e165
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/expected/trigger-task.yml
@@ -0,0 +1,38 @@
+# 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 . }}
+- taskid: {{ notEmpty .taskid }}
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ serviceinstanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ serviceinstancename: test-instance
+ processlabels: []
+ processid: {{ notEmpty .processid }}
+ processname: response_timeout
+ taskstarttime: {{ ge .taskstarttime 1 }}
+ triggertype: CONTINUOUS_PROFILING
+ fixedtriggerduration: 600
+ continuousprofilingcauses:
+ - type: HTTP_AVG_RESPONSE_TIME
+ singlevalue: null
+ uri:
+ uriregex: null
+ uripath: /provider
+ threshold: 50000
+ current: {{ ge (index .continuousprofilingcauses 0).uri.current 1 }}
+ targettype: NETWORK
+ createtime: {{ ge .createtime 1 }}
+{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_avg_response_time/policy.yaml b/test/e2e/cases/profiling/continuous/http_avg_response_time/policy.yaml
new file mode 100644
index 0000000..1b18411
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/policy.yaml
@@ -0,0 +1,43 @@
+# 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.
+
+# Policy config
+# policy: the policy config list
+# - type: the profiling target type when reached the threshold, support: "ON_CPU", "OFF_CPU", "NETWORK"
+# checks: define the thresholds, when any configuration item reaches the threshold, it will trigger profiling task
+# - type: monitoring type, please see the below monitoring type with threshold description
+# threshold: monitor threshold, please see the below monitoring type with threshold description
+# period: the length of time to evaluate the metrics
+# count: how many times after the metrics match the threshold, will trigger profiling
+# uriList: the URI paths filter when monitor the HTTP related types
+# uriRegex: the URI regex filter when monitor the HTTP related types
+
+# Monitoring type with threshold
+# PROCESS_CPU: Monitoring Process CPU percent, threshold value in [0-100]
+# PROCESS_THREAD_COUNT: Monitoring process thread count, threshold value must bigger than zero
+# SYSTEM_LOAD: Monitoring current system load, threshold value must bigger than zero
+# HTTP_ERROR_RATE: Monitoring the process HTTP response error(status>=500) percent, threshold value in [0-100]
+# HTTP_AVG_RESPONSE_TIME: Monitoring the process HTTP response duration(ms), threshold value must be bigger than zero
+
+policy:
+ - type: NETWORK
+ checkers:
+ - type: HTTP_AVG_RESPONSE_TIME
+ threshold: 500
+ period: 10
+ count: 1
+ uriList:
+ - /provider
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_avg_response_time/response_timeout.go b/test/e2e/cases/profiling/continuous/http_avg_response_time/response_timeout.go
new file mode 100644
index 0000000..1d453fb
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_avg_response_time/response_timeout.go
@@ -0,0 +1,40 @@
+// 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.
+
+package main
+
+import (
+ "log"
+ "net/http"
+ "os"
+ "time"
+)
+
+func provider(w http.ResponseWriter, req *http.Request) {
+ time.Sleep(time.Second)
+ w.Header().Set("Content-Type", "text/plain")
+ _, _ = w.Write([]byte("success:" + req.Proto))
+}
+
+func main() {
+ // force as http/1.1 server, we only support analyze http1 server for now
+ os.Setenv("GODEBUG", "http2server=0")
+ http.HandleFunc("/provider", provider)
+
+ err := http.ListenAndServeTLS(":10443", "/ssl_data/service.crt", "/ssl_data/service.key", nil)
+ log.Fatal(err)
+}
diff --git a/test/e2e/cases/profiling/continuous/http_error_rate/Dockerfile b/test/e2e/cases/profiling/continuous/http_error_rate/Dockerfile
new file mode 100644
index 0000000..12ae46c
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/Dockerfile
@@ -0,0 +1,28 @@
+# 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.
+
+FROM golang:1.17
+
+WORKDIR /
+COPY http_error_rate/ /service
+
+WORKDIR /service
+RUN go build -o response_error response_error.go
+
+COPY ssl /usr/local/share/ca-certificates/ssl
+RUN update-ca-certificates
+
+CMD ["/service/response_error"]
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_error_rate/docker-compose.yml b/test/e2e/cases/profiling/continuous/http_error_rate/docker-compose.yml
new file mode 100644
index 0000000..6448433
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/docker-compose.yml
@@ -0,0 +1,54 @@
+# 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:
+ service:
+ build:
+ context: ../
+ dockerfile: http_error_rate/Dockerfile
+ ports:
+ - 10443:10443
+ volumes:
+ - ../ssl:/ssl_data
+ healthcheck:
+ test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/10443" ]
+ interval: 5s
+ timeout: 60s
+ retries: 120
+
+ oap:
+ extends:
+ file: ../../../../base/base-compose.yml
+ service: oap
+ ports:
+ - 12800:12800
+
+ rover:
+ extends:
+ file: ../../../../base/base-compose.yml
+ service: rover
+ environment:
+ ROVER_LOGGER_LEVEL: "DEBUG"
+ ROVER_PROCESS_DISCOVERY_SCAN_MODE: "REGEX"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: response_error
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LAYER: OS_LINUX
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: test-continuous
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_INSTANCE_NAME: test-instance
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_PROCESS_NAME: "{{.Process.ExeName}}"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LABELS: ""
+networks:
+ e2e:
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_error_rate/e2e.yaml b/test/e2e/cases/profiling/continuous/http_error_rate/e2e.yaml
new file mode 100644
index 0000000..5c163b0
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/e2e.yaml
@@ -0,0 +1,68 @@
+# 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.
+
+setup:
+ env: compose
+ file: docker-compose.yml
+ timeout: 20m
+ init-system-environment: ../../../../base/env
+ steps:
+ - name: set PATH
+ command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
+ - name: install yq
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
+ - name: install swctl
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
+
+trigger:
+ action: http
+ interval: 3s
+ times: 10
+ url: https://${service_host}:${service_10443}/provider
+ method: GET
+
+verify:
+ # verify with retry strategy
+ retry:
+ # max retry count
+ count: 20
+ # the interval between two retries, in millisecond.
+ interval: 10s
+ cases:
+ # metadata
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml service ls
+ expected: expected/service.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml instance ls --service-name test-continuous
+ expected: expected/instance.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml process ls --service-name test-continuous --instance-name test-instance
+ expected: expected/process.yml
+
+ # policy setting
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous set --service-name test-continuous --config test/e2e/cases/profiling/continuous/http_error_rate/policy.yaml
+ expected: expected/policy-set.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous ls --service-name test-continuous
+ expected: expected/query-policy.yml
+
+ # check profiling metrics
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml metrics multiple-linear \
+ --service-name test-continuous --instance-name test-instance --process-name response_error --name continuous_profiling_http_error_rate |yq e 'to_entries | with(.[] ; .value=(.value | to_entries))' -
+ expected: expected/metrics-has-value-labeld.yml
+
+ # check triggered profiling task
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name test-continuous --trigger CONTINUOUS_PROFILING
+ expected: expected/trigger-task.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_error_rate/expected/instance.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_error_rate/expected/instance.yml
index faa04bc..b2ac6e7 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/expected/instance.yml
@@ -14,19 +14,9 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ name: test-instance
+ attributes: []
+ language: UNKNOWN
+ instanceuuid: {{ notEmpty .instanceuuid }}
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_error_rate/expected/metrics-has-value-labeld.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_error_rate/expected/metrics-has-value-labeld.yml
index faa04bc..8ba301b 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/expected/metrics-has-value-labeld.yml
@@ -14,19 +14,10 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- key: {{ notEmpty .key }}
+ value:
+ {{- contains .value }}
+ - key: {{ notEmpty .key }}
+ value: {{ ge .value 1 }}
+ {{- end }}
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/http_error_rate/expected/policy-set.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/http_error_rate/expected/policy-set.yml
index 0df418f..a51bce7 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/expected/policy-set.yml
@@ -13,30 +13,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+status: true
+errorreason: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_error_rate/expected/process.yml
similarity index 61%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_error_rate/expected/process.yml
index faa04bc..9cd7566 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/expected/process.yml
@@ -14,19 +14,22 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
+- id: {{ notEmpty .id }}
+ name: response_error
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ instanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ instancename: test-instance
+ agentid: {{ notEmpty .agentid }}
+ detecttype: VM
+ attributes:
+ {{- contains .attributes }}
+ - name: host_ip
+ value: {{ notEmpty .value }}
+ - name: pid
+ value: {{ notEmpty .value }}
+ - name: command_line
+ value: /service/response_error
{{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+ labels: []
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/http_error_rate/expected/query-policy.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/http_error_rate/expected/query-policy.yml
index 0df418f..ad24cf5 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/expected/query-policy.yml
@@ -13,30 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+- type: NETWORK
+ checkitems:
+ - type: HTTP_ERROR_RATE
+ threshold: "10"
+ period: 10
+ count: 1
+ urilist:
+ - /provider
+ uriregex: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/http_error_rate/expected/service.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/http_error_rate/expected/service.yml
index faa04bc..09f5874 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/expected/service.yml
@@ -14,19 +14,11 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1
+ name: test-continuous
+ group: ""
+ shortname: test-continuous
+ layers:
+ - OS_LINUX
+ normal: true
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_error_rate/expected/trigger-task.yml b/test/e2e/cases/profiling/continuous/http_error_rate/expected/trigger-task.yml
new file mode 100644
index 0000000..9424a82
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/expected/trigger-task.yml
@@ -0,0 +1,38 @@
+# 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 . }}
+- taskid: {{ notEmpty .taskid }}
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ serviceinstanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ serviceinstancename: test-instance
+ processlabels: []
+ processid: {{ notEmpty .processid }}
+ processname: response_error
+ taskstarttime: {{ ge .taskstarttime 1 }}
+ triggertype: CONTINUOUS_PROFILING
+ fixedtriggerduration: 600
+ continuousprofilingcauses:
+ - type: HTTP_ERROR_RATE
+ singlevalue: null
+ uri:
+ uriregex: null
+ uripath: /provider
+ threshold: 1000
+ current: {{ ge (index .continuousprofilingcauses 0).uri.current 1 }}
+ targettype: NETWORK
+ createtime: {{ ge .createtime 1 }}
+{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_error_rate/policy.yaml b/test/e2e/cases/profiling/continuous/http_error_rate/policy.yaml
new file mode 100644
index 0000000..b52a89b
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/policy.yaml
@@ -0,0 +1,43 @@
+# 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.
+
+# Policy config
+# policy: the policy config list
+# - type: the profiling target type when reached the threshold, support: "ON_CPU", "OFF_CPU", "NETWORK"
+# checks: define the thresholds, when any configuration item reaches the threshold, it will trigger profiling task
+# - type: monitoring type, please see the below monitoring type with threshold description
+# threshold: monitor threshold, please see the below monitoring type with threshold description
+# period: the length of time to evaluate the metrics
+# count: how many times after the metrics match the threshold, will trigger profiling
+# uriList: the URI paths filter when monitor the HTTP related types
+# uriRegex: the URI regex filter when monitor the HTTP related types
+
+# Monitoring type with threshold
+# PROCESS_CPU: Monitoring Process CPU percent, threshold value in [0-100]
+# PROCESS_THREAD_COUNT: Monitoring process thread count, threshold value must bigger than zero
+# SYSTEM_LOAD: Monitoring current system load, threshold value must bigger than zero
+# HTTP_ERROR_RATE: Monitoring the process HTTP response error(status>=500) percent, threshold value in [0-100]
+# HTTP_AVG_RESPONSE_TIME: Monitoring the process HTTP response duration(ms), threshold value must be bigger than zero
+
+policy:
+ - type: NETWORK
+ checkers:
+ - type: HTTP_ERROR_RATE
+ threshold: 10
+ period: 10
+ count: 1
+ uriList:
+ - /provider
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/http_error_rate/response_error.go b/test/e2e/cases/profiling/continuous/http_error_rate/response_error.go
new file mode 100644
index 0000000..88556d8
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/http_error_rate/response_error.go
@@ -0,0 +1,43 @@
+// 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.
+
+package main
+
+import (
+ "log"
+ "math/rand"
+ "net/http"
+ "os"
+)
+
+func provider(w http.ResponseWriter, req *http.Request) {
+ if rand.Float64() > 0.5 {
+ w.WriteHeader(500)
+ return
+ }
+ w.Header().Set("Content-Type", "text/plain")
+ _, _ = w.Write([]byte("success"))
+}
+
+func main() {
+ // force as http/1.1 server, we only support analyze http1 server for now
+ os.Setenv("GODEBUG", "http2server=0")
+ http.HandleFunc("/provider", provider)
+
+ err := http.ListenAndServeTLS(":10443", "/ssl_data/service.crt", "/ssl_data/service.key", nil)
+ log.Fatal(err)
+}
diff --git a/test/e2e/cases/profiling/oncpu/golang/Dockerfile.sqrt b/test/e2e/cases/profiling/continuous/process_cpu/Dockerfile
similarity index 100%
copy from test/e2e/cases/profiling/oncpu/golang/Dockerfile.sqrt
copy to test/e2e/cases/profiling/continuous/process_cpu/Dockerfile
diff --git a/test/e2e/cases/profiling/offcpu/c/docker-compose.yml b/test/e2e/cases/profiling/continuous/process_cpu/docker-compose.yml
similarity index 69%
copy from test/e2e/cases/profiling/offcpu/c/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/process_cpu/docker-compose.yml
index 816e685..5717b7d 100644
--- a/test/e2e/cases/profiling/offcpu/c/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/process_cpu/docker-compose.yml
@@ -27,17 +27,22 @@
extends:
file: ../../../../base/base-compose.yml
service: rover
- environment:
- ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: /file
- ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: file
depends_on:
oap:
condition: service_healthy
+ environment:
+ ROVER_PROCESS_DISCOVERY_SCAN_MODE: "REGEX"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: sqrt
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LAYER: OS_LINUX
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: test-continuous
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_INSTANCE_NAME: test-instance
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_PROCESS_NAME: "{{.Process.ExeName}}"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LABELS: ""
- file_c:
+ continuous_process_cpu:
build:
context: .
- dockerfile: Dockerfile.file
+ dockerfile: Dockerfile
networks:
- e2e
diff --git a/test/e2e/cases/profiling/continuous/process_cpu/e2e.yaml b/test/e2e/cases/profiling/continuous/process_cpu/e2e.yaml
new file mode 100644
index 0000000..b6be9a2
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_cpu/e2e.yaml
@@ -0,0 +1,61 @@
+# 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.
+
+setup:
+ env: compose
+ file: docker-compose.yml
+ timeout: 20m
+ init-system-environment: ../../../../base/env
+ steps:
+ - name: set PATH
+ command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
+ - name: install yq
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
+ - name: install swctl
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+ # verify with retry strategy
+ retry:
+ # max retry count
+ count: 20
+ # the interval between two retries, in millisecond.
+ interval: 10s
+ cases:
+ # metadata
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml service ls
+ expected: expected/service.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml instance ls --service-name test-continuous
+ expected: expected/instance.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml process ls --service-name test-continuous --instance-name test-instance
+ expected: expected/process.yml
+
+ # policy setting
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous set --service-name test-continuous --config test/e2e/cases/profiling/continuous/process_cpu/policy.yaml
+ expected: expected/policy-set.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous ls --service-name test-continuous
+ expected: expected/query-policy.yml
+
+ # check profiling metrics
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml metrics linear \
+ --service-name test-continuous --instance-name test-instance --process-name sqrt --name continuous_profiling_process_cpu |yq e 'to_entries' -
+ expected: expected/metrics-has-value.yml
+
+ # check triggered profiling task
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name test-continuous --trigger CONTINUOUS_PROFILING
+ expected: expected/trigger-task.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/process_cpu/expected/instance.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/process_cpu/expected/instance.yml
index faa04bc..b2ac6e7 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/process_cpu/expected/instance.yml
@@ -14,19 +14,9 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ name: test-instance
+ attributes: []
+ language: UNKNOWN
+ instanceuuid: {{ notEmpty .instanceuuid }}
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/network/envoy/expected/metrics-has-value.yml b/test/e2e/cases/profiling/continuous/process_cpu/expected/metrics-has-value.yml
similarity index 100%
copy from test/e2e/cases/profiling/network/envoy/expected/metrics-has-value.yml
copy to test/e2e/cases/profiling/continuous/process_cpu/expected/metrics-has-value.yml
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/process_cpu/expected/policy-set.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/process_cpu/expected/policy-set.yml
index 0df418f..a51bce7 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/process_cpu/expected/policy-set.yml
@@ -13,30 +13,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+status: true
+errorreason: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/process_cpu/expected/process.yml
similarity index 62%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/process_cpu/expected/process.yml
index faa04bc..c73cff5 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/process_cpu/expected/process.yml
@@ -14,19 +14,22 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
+- id: {{ notEmpty .id }}
+ name: sqrt
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ instanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ instancename: test-instance
+ agentid: {{ notEmpty .agentid }}
+ detecttype: VM
+ attributes:
+ {{- contains .attributes }}
+ - name: host_ip
+ value: {{ notEmpty .value }}
+ - name: pid
+ value: {{ notEmpty .value }}
+ - name: command_line
+ value: /sqrt
{{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+ labels: []
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/process_cpu/expected/query-policy.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/process_cpu/expected/query-policy.yml
index 0df418f..8e8ed39 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/process_cpu/expected/query-policy.yml
@@ -13,30 +13,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+- type: ON_CPU
+ checkitems:
+ - type: PROCESS_CPU
+ threshold: "10"
+ period: 10
+ count: 3
+ urilist: []
+ uriregex: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/process_cpu/expected/service.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/process_cpu/expected/service.yml
index faa04bc..09f5874 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/process_cpu/expected/service.yml
@@ -14,19 +14,11 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1
+ name: test-continuous
+ group: ""
+ shortname: test-continuous
+ layers:
+ - OS_LINUX
+ normal: true
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/process_cpu/expected/trigger-task.yml b/test/e2e/cases/profiling/continuous/process_cpu/expected/trigger-task.yml
new file mode 100644
index 0000000..13c94ed
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_cpu/expected/trigger-task.yml
@@ -0,0 +1,36 @@
+# 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 . }}
+- taskid: {{ notEmpty .taskid }}
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ serviceinstanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ serviceinstancename: test-instance
+ processlabels: []
+ processid: {{ notEmpty .processid }}
+ processname: sqrt
+ taskstarttime: {{ ge .taskstarttime 1 }}
+ triggertype: CONTINUOUS_PROFILING
+ fixedtriggerduration: 600
+ continuousprofilingcauses:
+ - type: PROCESS_CPU
+ singlevalue:
+ threshold: 1000
+ current: {{ ge (index .continuousprofilingcauses 0).singlevalue.current 1 }}
+ uri: null
+ targettype: ON_CPU
+ createtime: {{ ge .createtime 1 }}
+{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/process_cpu/policy.yaml b/test/e2e/cases/profiling/continuous/process_cpu/policy.yaml
new file mode 100644
index 0000000..9cbafe2
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_cpu/policy.yaml
@@ -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.
+
+# Policy config
+# policy: the policy config list
+# - type: the profiling target type when reached the threshold, support: "ON_CPU", "OFF_CPU", "NETWORK"
+# checks: define the thresholds, when any configuration item reaches the threshold, it will trigger profiling task
+# - type: monitoring type, please see the below monitoring type with threshold description
+# threshold: monitor threshold, please see the below monitoring type with threshold description
+# period: the length of time to evaluate the metrics
+# count: how many times after the metrics match the threshold, will trigger profiling
+# uriList: the URI paths filter when monitor the HTTP related types
+# uriRegex: the URI regex filter when monitor the HTTP related types
+
+# Monitoring type with threshold
+# PROCESS_CPU: Monitoring Process CPU percent, threshold value in [0-100]
+# PROCESS_THREAD_COUNT: Monitoring process thread count, threshold value must bigger than zero
+# SYSTEM_LOAD: Monitoring current system load, threshold value must bigger than zero
+# HTTP_ERROR_RATE: Monitoring the process HTTP response error(status>=500) percent, threshold value in [0-100]
+# HTTP_AVG_RESPONSE_TIME: Monitoring the process HTTP response duration(ms), threshold value must be bigger than zero
+
+policy:
+ - type: ON_CPU
+ checkers:
+ - type: PROCESS_CPU
+ threshold: 10
+ period: 10
+ count: 3
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/sqrt.go b/test/e2e/cases/profiling/continuous/process_cpu/sqrt.go
similarity index 100%
copy from test/e2e/cases/profiling/oncpu/golang/sqrt.go
copy to test/e2e/cases/profiling/continuous/process_cpu/sqrt.go
diff --git a/test/e2e/cases/profiling/continuous/process_thread_count/Dockerfile b/test/e2e/cases/profiling/continuous/process_thread_count/Dockerfile
new file mode 100644
index 0000000..42bca1e
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/Dockerfile
@@ -0,0 +1,24 @@
+# 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.
+
+FROM eclipse-temurin:11-jdk
+
+WORKDIR /
+COPY MultiThread.java /
+
+RUN javac /MultiThread.java
+
+CMD ["java", "MultiThread"]
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/process_thread_count/MultiThread.java b/test/e2e/cases/profiling/continuous/process_thread_count/MultiThread.java
new file mode 100644
index 0000000..024c8da
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/MultiThread.java
@@ -0,0 +1,34 @@
+/*
+ * 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.
+ *
+ */
+
+import java.util.concurrent.LinkedBlockingQueue;
+
+public class MultiThread {
+ private static final int THREAD_COUNT = 10;
+ public static void main(String[] args) throws Exception {
+ for (int i = 0; i< THREAD_COUNT; i++) {
+ new Thread(() -> {
+ try {
+ new LinkedBlockingQueue<Object>().take();
+ } catch (InterruptedException e) {
+ }
+ }).start();
+ }
+ new LinkedBlockingQueue<Object>().take();
+ }
+}
diff --git a/test/e2e/cases/profiling/offcpu/c/docker-compose.yml b/test/e2e/cases/profiling/continuous/process_thread_count/docker-compose.yml
similarity index 69%
copy from test/e2e/cases/profiling/offcpu/c/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/process_thread_count/docker-compose.yml
index 816e685..0373a56 100644
--- a/test/e2e/cases/profiling/offcpu/c/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/docker-compose.yml
@@ -27,17 +27,22 @@
extends:
file: ../../../../base/base-compose.yml
service: rover
- environment:
- ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: /file
- ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: file
depends_on:
oap:
condition: service_healthy
+ environment:
+ ROVER_PROCESS_DISCOVERY_SCAN_MODE: "REGEX"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: MultiThread
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LAYER: OS_LINUX
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_SERVICE_NAME: test-continuous
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_INSTANCE_NAME: test-instance
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_PROCESS_NAME: "{{.Process.ExeName}}"
+ ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_LABELS: ""
- file_c:
+ continuous_process_thread:
build:
context: .
- dockerfile: Dockerfile.file
+ dockerfile: Dockerfile
networks:
- e2e
diff --git a/test/e2e/cases/profiling/continuous/process_thread_count/e2e.yaml b/test/e2e/cases/profiling/continuous/process_thread_count/e2e.yaml
new file mode 100644
index 0000000..c6111af
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/e2e.yaml
@@ -0,0 +1,61 @@
+# 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.
+
+setup:
+ env: compose
+ file: docker-compose.yml
+ timeout: 20m
+ init-system-environment: ../../../../base/env
+ steps:
+ - name: set PATH
+ command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
+ - name: install yq
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
+ - name: install swctl
+ command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
+
+verify:
+ # verify with retry strategy
+ retry:
+ # max retry count
+ count: 20
+ # the interval between two retries, in millisecond.
+ interval: 10s
+ cases:
+ # metadata
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml service ls
+ expected: expected/service.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml instance ls --service-name test-continuous
+ expected: expected/instance.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml process ls --service-name test-continuous --instance-name test-instance
+ expected: expected/process.yml
+
+ # policy setting
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous set --service-name test-continuous --config test/e2e/cases/profiling/continuous/process_thread_count/policy.yaml
+ expected: expected/policy-set.yml
+ - query: swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling continuous ls --service-name test-continuous
+ expected: expected/query-policy.yml
+
+ # check profiling metrics
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml metrics linear \
+ --service-name test-continuous --instance-name test-instance --process-name java --name continuous_profiling_process_thread_count |yq e 'to_entries' -
+ expected: expected/metrics-has-value.yml
+
+ # check triggered profiling task
+ - query: |
+ swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name test-continuous --trigger CONTINUOUS_PROFILING
+ expected: expected/trigger-task.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/process_thread_count/expected/instance.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/process_thread_count/expected/instance.yml
index faa04bc..b2ac6e7 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/expected/instance.yml
@@ -14,19 +14,9 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ name: test-instance
+ attributes: []
+ language: UNKNOWN
+ instanceuuid: {{ notEmpty .instanceuuid }}
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/network/envoy/expected/metrics-has-value.yml b/test/e2e/cases/profiling/continuous/process_thread_count/expected/metrics-has-value.yml
similarity index 100%
copy from test/e2e/cases/profiling/network/envoy/expected/metrics-has-value.yml
copy to test/e2e/cases/profiling/continuous/process_thread_count/expected/metrics-has-value.yml
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/process_thread_count/expected/policy-set.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/process_thread_count/expected/policy-set.yml
index 0df418f..a51bce7 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/expected/policy-set.yml
@@ -13,30 +13,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+status: true
+errorreason: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/process_thread_count/expected/process.yml
similarity index 64%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/process_thread_count/expected/process.yml
index faa04bc..b6d26ae 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/expected/process.yml
@@ -14,19 +14,20 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
+- id: {{ notEmpty .id }}
+ name: java
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ instanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ instancename: test-instance
+ agentid: {{ notEmpty .agentid }}
+ detecttype: VM
+ attributes:
+ {{- contains .attributes }}
+ - name: host_ip
+ value: {{ notEmpty .value }}
+ - name: pid
+ value: {{ notEmpty .value }}
{{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+ labels: []
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/continuous/process_thread_count/expected/query-policy.yml
similarity index 65%
copy from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
copy to test/e2e/cases/profiling/continuous/process_thread_count/expected/query-policy.yml
index 0df418f..5e4a730 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/expected/query-policy.yml
@@ -13,30 +13,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-version: '2.1'
-
-services:
- oap:
- extends:
- file: ../../../../base/base-compose.yml
- service: oap
- ports:
- - 12800:12800
-
- rover:
- extends:
- file: ../../../../base/base-compose.yml
- service: rover
- depends_on:
- oap:
- condition: service_healthy
-
- sqrt_go:
- build:
- context: .
- dockerfile: Dockerfile.sqrt
- networks:
- - e2e
-
-networks:
- e2e:
\ No newline at end of file
+- type: ON_CPU
+ checkitems:
+ - type: PROCESS_THREAD_COUNT
+ threshold: "5"
+ period: 10
+ count: 3
+ urilist: []
+ uriregex: null
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/continuous/process_thread_count/expected/service.yml
similarity index 66%
copy from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
copy to test/e2e/cases/profiling/continuous/process_thread_count/expected/service.yml
index faa04bc..09f5874 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/expected/service.yml
@@ -14,19 +14,11 @@
# limitations under the License.
{{- contains . }}
-- taskid: {{ notEmpty .taskid }}
- serviceid: {{ b64enc "sqrt" }}.1
- servicename: sqrt
- serviceinstanceid: null
- serviceinstancename: null
- processlabels:
- {{- contains .processlabels }}
- - e2e-label1
- - e2e-label2
- {{- end }}
- taskstarttime: {{ gt .taskstarttime 0 }}
- triggertype: FIXED_TIME
- fixedtriggerduration: 60
- targettype: ON_CPU
- createtime: {{ gt .createtime 0 }}
+- id: {{ b64enc "test-continuous" }}.1
+ name: test-continuous
+ group: ""
+ shortname: test-continuous
+ layers:
+ - OS_LINUX
+ normal: true
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/process_thread_count/expected/trigger-task.yml b/test/e2e/cases/profiling/continuous/process_thread_count/expected/trigger-task.yml
new file mode 100644
index 0000000..8c7a402
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/expected/trigger-task.yml
@@ -0,0 +1,36 @@
+# 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 . }}
+- taskid: {{ notEmpty .taskid }}
+ serviceid: {{ b64enc "test-continuous" }}.1
+ servicename: test-continuous
+ serviceinstanceid: {{ b64enc "test-continuous" }}.1_{{ b64enc "test-instance" }}
+ serviceinstancename: test-instance
+ processlabels: []
+ processid: {{ notEmpty .processid }}
+ processname: java
+ taskstarttime: {{ ge .taskstarttime 1 }}
+ triggertype: CONTINUOUS_PROFILING
+ fixedtriggerduration: 600
+ continuousprofilingcauses:
+ - type: PROCESS_THREAD_COUNT
+ singlevalue:
+ threshold: 500
+ current: {{ ge (index .continuousprofilingcauses 0).singlevalue.current 1 }}
+ uri: null
+ targettype: ON_CPU
+ createtime: {{ ge .createtime 1 }}
+{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/continuous/process_thread_count/policy.yaml b/test/e2e/cases/profiling/continuous/process_thread_count/policy.yaml
new file mode 100644
index 0000000..09970da
--- /dev/null
+++ b/test/e2e/cases/profiling/continuous/process_thread_count/policy.yaml
@@ -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.
+
+# Policy config
+# policy: the policy config list
+# - type: the profiling target type when reached the threshold, support: "ON_CPU", "OFF_CPU", "NETWORK"
+# checks: define the thresholds, when any configuration item reaches the threshold, it will trigger profiling task
+# - type: monitoring type, please see the below monitoring type with threshold description
+# threshold: monitor threshold, please see the below monitoring type with threshold description
+# period: the length of time to evaluate the metrics
+# count: how many times after the metrics match the threshold, will trigger profiling
+# uriList: the URI paths filter when monitor the HTTP related types
+# uriRegex: the URI regex filter when monitor the HTTP related types
+
+# Monitoring type with threshold
+# PROCESS_CPU: Monitoring Process CPU percent, threshold value in [0-100]
+# PROCESS_THREAD_COUNT: Monitoring process thread count, threshold value must bigger than zero
+# SYSTEM_LOAD: Monitoring current system load, threshold value must bigger than zero
+# HTTP_ERROR_RATE: Monitoring the process HTTP response error(status>=500) percent, threshold value in [0-100]
+# HTTP_AVG_RESPONSE_TIME: Monitoring the process HTTP response duration(ms), threshold value must be bigger than zero
+
+policy:
+ - type: ON_CPU
+ checkers:
+ - type: PROCESS_THREAD_COUNT
+ threshold: 5
+ period: 10
+ count: 3
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/network/nodejs/e2e.yaml b/test/e2e/cases/profiling/network/nodejs/e2e.yaml
deleted file mode 100644
index 72e75bf..0000000
--- a/test/e2e/cases/profiling/network/nodejs/e2e.yaml
+++ /dev/null
@@ -1,46 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-trigger:
- action: http
- interval: 3s
- times: 10
- url: https://${service_host}:${service_10443}/consumer
- method: GET
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../base-cases.yaml
- - ../http1-metrics-cases.yaml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/network/python/e2e.yaml b/test/e2e/cases/profiling/network/python/e2e.yaml
deleted file mode 100644
index 72e75bf..0000000
--- a/test/e2e/cases/profiling/network/python/e2e.yaml
+++ /dev/null
@@ -1,46 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-trigger:
- action: http
- interval: 3s
- times: 10
- url: https://${service_host}:${service_10443}/consumer
- method: GET
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../base-cases.yaml
- - ../http1-metrics-cases.yaml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/offcpu/c/e2e.yaml b/test/e2e/cases/profiling/offcpu/c/e2e.yaml
deleted file mode 100644
index 8c9d512..0000000
--- a/test/e2e/cases/profiling/offcpu/c/e2e.yaml
+++ /dev/null
@@ -1,45 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../profiling-cases.yaml
- - query: |
- taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name file |yq e '.[0].taskid' -)
- scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid |yq e '.[0].scheduleid' -);
- start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].starttime' -)
- end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -)
- swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end
- expected: profiling-analysis.yml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/offcpu/golang/e2e.yaml b/test/e2e/cases/profiling/offcpu/golang/e2e.yaml
deleted file mode 100644
index 8c9d512..0000000
--- a/test/e2e/cases/profiling/offcpu/golang/e2e.yaml
+++ /dev/null
@@ -1,45 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../profiling-cases.yaml
- - query: |
- taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name file |yq e '.[0].taskid' -)
- scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid |yq e '.[0].scheduleid' -);
- start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].starttime' -)
- end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -)
- swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end
- expected: profiling-analysis.yml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/offcpu/rust/e2e.yaml b/test/e2e/cases/profiling/offcpu/rust/e2e.yaml
deleted file mode 100644
index 8c9d512..0000000
--- a/test/e2e/cases/profiling/offcpu/rust/e2e.yaml
+++ /dev/null
@@ -1,45 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../profiling-cases.yaml
- - query: |
- taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name file |yq e '.[0].taskid' -)
- scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid |yq e '.[0].scheduleid' -);
- start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].starttime' -)
- end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -)
- swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end
- expected: profiling-analysis.yml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/c/e2e.yaml b/test/e2e/cases/profiling/oncpu/c/e2e.yaml
deleted file mode 100644
index f607abd..0000000
--- a/test/e2e/cases/profiling/oncpu/c/e2e.yaml
+++ /dev/null
@@ -1,45 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../profiling-cases.yaml
- - query: |
- taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name sqrt |yq e '.[0].taskid' -)
- scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid |yq e '.[0].scheduleid' -);
- start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].starttime' -)
- end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -)
- swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end
- expected: profiling-analysis.yml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/golang/e2e.yaml b/test/e2e/cases/profiling/oncpu/golang/e2e.yaml
deleted file mode 100644
index f607abd..0000000
--- a/test/e2e/cases/profiling/oncpu/golang/e2e.yaml
+++ /dev/null
@@ -1,45 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../profiling-cases.yaml
- - query: |
- taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name sqrt |yq e '.[0].taskid' -)
- scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid |yq e '.[0].scheduleid' -);
- start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].starttime' -)
- end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -)
- swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end
- expected: profiling-analysis.yml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/rust/e2e.yaml b/test/e2e/cases/profiling/oncpu/rust/e2e.yaml
deleted file mode 100644
index f607abd..0000000
--- a/test/e2e/cases/profiling/oncpu/rust/e2e.yaml
+++ /dev/null
@@ -1,45 +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.
-
-setup:
- env: compose
- file: docker-compose.yml
- timeout: 20m
- init-system-environment: ../../../../base/env
- steps:
- - name: set PATH
- command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- - name: install yq
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh yq
- - name: install swctl
- command: bash test/e2e/base/scripts/prepare/setup-e2e-shell/install.sh swctl
-
-verify:
- # verify with retry strategy
- retry:
- # max retry count
- count: 20
- # the interval between two retries, in millisecond.
- interval: 10s
- cases:
- - includes:
- - ../profiling-cases.yaml
- - query: |
- taskid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf list --service-name sqrt |yq e '.[0].taskid' -)
- scheduleid=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid |yq e '.[0].scheduleid' -);
- start=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].starttime' -)
- end=$(swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf schedules --task-id=$taskid | yq e '.[0].endtime' -)
- swctl --base-url=http://${oap_host}:${oap_12800}/graphql --display yaml profiling ebpf analysis --schedule-id=$scheduleid --time-ranges=$start-$end
- expected: profiling-analysis.yml
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/network/base-cases.yaml b/test/e2e/cases/profiling/task/network/base-cases.yaml
similarity index 99%
rename from test/e2e/cases/profiling/network/base-cases.yaml
rename to test/e2e/cases/profiling/task/network/base-cases.yaml
index c3d377d..a52484b 100644
--- a/test/e2e/cases/profiling/network/base-cases.yaml
+++ b/test/e2e/cases/profiling/task/network/base-cases.yaml
@@ -24,7 +24,7 @@
expected: expected/process.yml
# create network profiling task
- - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling ebpf create network --service-name=service --instance-name=test --sampling-config=test/e2e/cases/profiling/network/sampling.yaml
+ - query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql profiling ebpf create network --service-name=service --instance-name=test --sampling-config=test/e2e/cases/profiling/task/network/sampling.yaml
expected: expected/profiling-create.yml
- query: swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql dep process --service-name service --instance-name=test
expected: expected/dependency-processs.yml
diff --git a/test/e2e/cases/profiling/network/base/Dockerfile.nginx b/test/e2e/cases/profiling/task/network/base/Dockerfile.nginx
similarity index 100%
rename from test/e2e/cases/profiling/network/base/Dockerfile.nginx
rename to test/e2e/cases/profiling/task/network/base/Dockerfile.nginx
diff --git a/test/e2e/cases/profiling/network/base/docker-compose.yml b/test/e2e/cases/profiling/task/network/base/docker-compose.yml
similarity index 95%
rename from test/e2e/cases/profiling/network/base/docker-compose.yml
rename to test/e2e/cases/profiling/task/network/base/docker-compose.yml
index d760ac0..0e3b528 100644
--- a/test/e2e/cases/profiling/network/base/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/network/base/docker-compose.yml
@@ -51,7 +51,7 @@
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
environment:
SW_METER_ANALYZER_ACTIVE_FILES: network-profiling
@@ -68,7 +68,7 @@
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
volumes:
- ./rover_configs.yaml:/skywalking/configs/rover_configs.yaml
diff --git a/test/e2e/cases/profiling/network/base/network-profiling.yaml b/test/e2e/cases/profiling/task/network/base/network-profiling.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/base/network-profiling.yaml
rename to test/e2e/cases/profiling/task/network/base/network-profiling.yaml
diff --git a/test/e2e/cases/profiling/network/base/nginx.conf b/test/e2e/cases/profiling/task/network/base/nginx.conf
similarity index 100%
rename from test/e2e/cases/profiling/network/base/nginx.conf
rename to test/e2e/cases/profiling/task/network/base/nginx.conf
diff --git a/test/e2e/cases/profiling/network/base/rover_configs.yaml b/test/e2e/cases/profiling/task/network/base/rover_configs.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/base/rover_configs.yaml
rename to test/e2e/cases/profiling/task/network/base/rover_configs.yaml
diff --git a/test/e2e/cases/profiling/network/base/slow-trace-lal.yaml b/test/e2e/cases/profiling/task/network/base/slow-trace-lal.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/base/slow-trace-lal.yaml
rename to test/e2e/cases/profiling/task/network/base/slow-trace-lal.yaml
diff --git a/test/e2e/cases/profiling/network/base/ssl/gen-selfsigned-ssl.sh b/test/e2e/cases/profiling/task/network/base/ssl/gen-selfsigned-ssl.sh
similarity index 100%
rename from test/e2e/cases/profiling/network/base/ssl/gen-selfsigned-ssl.sh
rename to test/e2e/cases/profiling/task/network/base/ssl/gen-selfsigned-ssl.sh
diff --git a/test/e2e/cases/profiling/network/c_plus_plus/CMakeLists.txt b/test/e2e/cases/profiling/task/network/c_plus_plus/CMakeLists.txt
similarity index 100%
rename from test/e2e/cases/profiling/network/c_plus_plus/CMakeLists.txt
rename to test/e2e/cases/profiling/task/network/c_plus_plus/CMakeLists.txt
diff --git a/test/e2e/cases/profiling/network/c_plus_plus/Dockerfile b/test/e2e/cases/profiling/task/network/c_plus_plus/Dockerfile
similarity index 100%
rename from test/e2e/cases/profiling/network/c_plus_plus/Dockerfile
rename to test/e2e/cases/profiling/task/network/c_plus_plus/Dockerfile
diff --git a/test/e2e/cases/profiling/network/c_plus_plus/docker-compose.yml b/test/e2e/cases/profiling/task/network/c_plus_plus/docker-compose.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/c_plus_plus/docker-compose.yml
rename to test/e2e/cases/profiling/task/network/c_plus_plus/docker-compose.yml
diff --git a/test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml b/test/e2e/cases/profiling/task/network/c_plus_plus/e2e.yaml
similarity index 96%
rename from test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml
rename to test/e2e/cases/profiling/task/network/c_plus_plus/e2e.yaml
index 72e75bf..e12faa2 100644
--- a/test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml
+++ b/test/e2e/cases/profiling/task/network/c_plus_plus/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/network/c_plus_plus/src/main.cpp b/test/e2e/cases/profiling/task/network/c_plus_plus/src/main.cpp
similarity index 100%
rename from test/e2e/cases/profiling/network/c_plus_plus/src/main.cpp
rename to test/e2e/cases/profiling/task/network/c_plus_plus/src/main.cpp
diff --git a/test/e2e/cases/profiling/network/envoy/e2e.yaml b/test/e2e/cases/profiling/task/network/envoy/e2e.yaml
similarity index 97%
rename from test/e2e/cases/profiling/network/envoy/e2e.yaml
rename to test/e2e/cases/profiling/task/network/envoy/e2e.yaml
index 5cc4273..f273344 100644
--- a/test/e2e/cases/profiling/network/envoy/e2e.yaml
+++ b/test/e2e/cases/profiling/task/network/envoy/e2e.yaml
@@ -18,7 +18,7 @@
setup:
env: kind
file: kind.yaml
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
kind:
import-images:
- apache/skywalking-rover:latest
@@ -46,7 +46,7 @@
cd skywalking-kubernetes
git reset --hard a7d8ff959b46e70cb10428c6714013563ae38cbc
cd chart
- mkdir -p skywalking/files/conf.d/oap/meter-analyzer-config/ && cp ../../test/e2e/cases/profiling/network/envoy/network-profiling.yaml skywalking/files/conf.d/oap/meter-analyzer-config/network-profiling.yaml
+ mkdir -p skywalking/files/conf.d/oap/meter-analyzer-config/ && cp ../../test/e2e/cases/profiling/task/network/envoy/network-profiling.yaml skywalking/files/conf.d/oap/meter-analyzer-config/network-profiling.yaml
helm dep up skywalking
helm -n istio-system install skywalking skywalking \
--set fullnameOverride=skywalking \
@@ -77,7 +77,7 @@
for: condition=Ready
- name: Install SkyWalking Rover
command: |
- envsubst < test/e2e/cases/profiling/network/envoy/rover.yaml | kubectl apply -f -
+ envsubst < test/e2e/cases/profiling/task/network/envoy/rover.yaml | kubectl apply -f -
wait:
- namespace: default
resource: pod
diff --git a/test/e2e/cases/profiling/network/envoy/expected/dependency-processs.yml b/test/e2e/cases/profiling/task/network/envoy/expected/dependency-processs.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/expected/dependency-processs.yml
rename to test/e2e/cases/profiling/task/network/envoy/expected/dependency-processs.yml
diff --git a/test/e2e/cases/profiling/network/envoy/expected/metrics-has-value-label.yml b/test/e2e/cases/profiling/task/network/envoy/expected/metrics-has-value-label.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/expected/metrics-has-value-label.yml
rename to test/e2e/cases/profiling/task/network/envoy/expected/metrics-has-value-label.yml
diff --git a/test/e2e/cases/profiling/network/envoy/expected/metrics-has-value.yml b/test/e2e/cases/profiling/task/network/envoy/expected/metrics-has-value.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/expected/metrics-has-value.yml
rename to test/e2e/cases/profiling/task/network/envoy/expected/metrics-has-value.yml
diff --git a/test/e2e/cases/profiling/network/envoy/expected/process.yml b/test/e2e/cases/profiling/task/network/envoy/expected/process.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/expected/process.yml
rename to test/e2e/cases/profiling/task/network/envoy/expected/process.yml
diff --git a/test/e2e/cases/profiling/network/envoy/expected/profiling-create.yml b/test/e2e/cases/profiling/task/network/envoy/expected/profiling-create.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/expected/profiling-create.yml
rename to test/e2e/cases/profiling/task/network/envoy/expected/profiling-create.yml
diff --git a/test/e2e/cases/profiling/network/envoy/expected/service-instance.yml b/test/e2e/cases/profiling/task/network/envoy/expected/service-instance.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/expected/service-instance.yml
rename to test/e2e/cases/profiling/task/network/envoy/expected/service-instance.yml
diff --git a/test/e2e/cases/profiling/network/envoy/expected/service.yml b/test/e2e/cases/profiling/task/network/envoy/expected/service.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/expected/service.yml
rename to test/e2e/cases/profiling/task/network/envoy/expected/service.yml
diff --git a/test/e2e/cases/profiling/network/envoy/kind.yaml b/test/e2e/cases/profiling/task/network/envoy/kind.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/kind.yaml
rename to test/e2e/cases/profiling/task/network/envoy/kind.yaml
diff --git a/test/e2e/cases/profiling/network/envoy/network-profiling.yaml b/test/e2e/cases/profiling/task/network/envoy/network-profiling.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/network-profiling.yaml
rename to test/e2e/cases/profiling/task/network/envoy/network-profiling.yaml
diff --git a/test/e2e/cases/profiling/network/envoy/rover.yaml b/test/e2e/cases/profiling/task/network/envoy/rover.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/rover.yaml
rename to test/e2e/cases/profiling/task/network/envoy/rover.yaml
diff --git a/test/e2e/cases/profiling/network/envoy/traffic-gen.yaml b/test/e2e/cases/profiling/task/network/envoy/traffic-gen.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/envoy/traffic-gen.yaml
rename to test/e2e/cases/profiling/task/network/envoy/traffic-gen.yaml
diff --git a/test/e2e/cases/profiling/network/expected/dependency-processs.yml b/test/e2e/cases/profiling/task/network/expected/dependency-processs.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/dependency-processs.yml
rename to test/e2e/cases/profiling/task/network/expected/dependency-processs.yml
diff --git a/test/e2e/cases/profiling/network/expected/instance.yml b/test/e2e/cases/profiling/task/network/expected/instance.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/instance.yml
rename to test/e2e/cases/profiling/task/network/expected/instance.yml
diff --git a/test/e2e/cases/profiling/network/expected/metrics-has-value-label.yml b/test/e2e/cases/profiling/task/network/expected/metrics-has-value-label.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/metrics-has-value-label.yml
rename to test/e2e/cases/profiling/task/network/expected/metrics-has-value-label.yml
diff --git a/test/e2e/cases/profiling/network/expected/metrics-has-value.yml b/test/e2e/cases/profiling/task/network/expected/metrics-has-value.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/metrics-has-value.yml
rename to test/e2e/cases/profiling/task/network/expected/metrics-has-value.yml
diff --git a/test/e2e/cases/profiling/network/expected/process.yml b/test/e2e/cases/profiling/task/network/expected/process.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/process.yml
rename to test/e2e/cases/profiling/task/network/expected/process.yml
diff --git a/test/e2e/cases/profiling/network/expected/profiling-create.yml b/test/e2e/cases/profiling/task/network/expected/profiling-create.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/profiling-create.yml
rename to test/e2e/cases/profiling/task/network/expected/profiling-create.yml
diff --git a/test/e2e/cases/profiling/network/expected/service.yml b/test/e2e/cases/profiling/task/network/expected/service.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/service.yml
rename to test/e2e/cases/profiling/task/network/expected/service.yml
diff --git a/test/e2e/cases/profiling/network/expected/skywalking-trace.yml b/test/e2e/cases/profiling/task/network/expected/skywalking-trace.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/skywalking-trace.yml
rename to test/e2e/cases/profiling/task/network/expected/skywalking-trace.yml
diff --git a/test/e2e/cases/profiling/network/expected/slow-traces.yml b/test/e2e/cases/profiling/task/network/expected/slow-traces.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/slow-traces.yml
rename to test/e2e/cases/profiling/task/network/expected/slow-traces.yml
diff --git a/test/e2e/cases/profiling/network/expected/status-4xx-traces.yml b/test/e2e/cases/profiling/task/network/expected/status-4xx-traces.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/status-4xx-traces.yml
rename to test/e2e/cases/profiling/task/network/expected/status-4xx-traces.yml
diff --git a/test/e2e/cases/profiling/network/expected/status-5xx-traces.yml b/test/e2e/cases/profiling/task/network/expected/status-5xx-traces.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/status-5xx-traces.yml
rename to test/e2e/cases/profiling/task/network/expected/status-5xx-traces.yml
diff --git a/test/e2e/cases/profiling/network/expected/zipkin-trace.yml b/test/e2e/cases/profiling/task/network/expected/zipkin-trace.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/expected/zipkin-trace.yml
rename to test/e2e/cases/profiling/task/network/expected/zipkin-trace.yml
diff --git a/test/e2e/cases/profiling/network/golang/Dockerfile b/test/e2e/cases/profiling/task/network/golang/Dockerfile
similarity index 100%
rename from test/e2e/cases/profiling/network/golang/Dockerfile
rename to test/e2e/cases/profiling/task/network/golang/Dockerfile
diff --git a/test/e2e/cases/profiling/network/golang/docker-compose.yml b/test/e2e/cases/profiling/task/network/golang/docker-compose.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/golang/docker-compose.yml
rename to test/e2e/cases/profiling/task/network/golang/docker-compose.yml
diff --git a/test/e2e/cases/profiling/network/golang/e2e.yaml b/test/e2e/cases/profiling/task/network/golang/e2e.yaml
similarity index 96%
rename from test/e2e/cases/profiling/network/golang/e2e.yaml
rename to test/e2e/cases/profiling/task/network/golang/e2e.yaml
index 1ce5316..30b1b0e 100644
--- a/test/e2e/cases/profiling/network/golang/e2e.yaml
+++ b/test/e2e/cases/profiling/task/network/golang/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/network/golang/go.mod b/test/e2e/cases/profiling/task/network/golang/go.mod
similarity index 100%
rename from test/e2e/cases/profiling/network/golang/go.mod
rename to test/e2e/cases/profiling/task/network/golang/go.mod
diff --git a/test/e2e/cases/profiling/network/golang/go.sum b/test/e2e/cases/profiling/task/network/golang/go.sum
similarity index 100%
rename from test/e2e/cases/profiling/network/golang/go.sum
rename to test/e2e/cases/profiling/task/network/golang/go.sum
diff --git a/test/e2e/cases/profiling/network/golang/service.go b/test/e2e/cases/profiling/task/network/golang/service.go
similarity index 100%
rename from test/e2e/cases/profiling/network/golang/service.go
rename to test/e2e/cases/profiling/task/network/golang/service.go
diff --git a/test/e2e/cases/profiling/network/http1-metrics-cases.yaml b/test/e2e/cases/profiling/task/network/http1-metrics-cases.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/http1-metrics-cases.yaml
rename to test/e2e/cases/profiling/task/network/http1-metrics-cases.yaml
diff --git a/test/e2e/cases/profiling/network/http1-sampled-traces-cases.yaml b/test/e2e/cases/profiling/task/network/http1-sampled-traces-cases.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/http1-sampled-traces-cases.yaml
rename to test/e2e/cases/profiling/task/network/http1-sampled-traces-cases.yaml
diff --git a/test/e2e/cases/profiling/network/http2/Dockerfile b/test/e2e/cases/profiling/task/network/http2/Dockerfile
similarity index 100%
rename from test/e2e/cases/profiling/network/http2/Dockerfile
rename to test/e2e/cases/profiling/task/network/http2/Dockerfile
diff --git a/test/e2e/cases/profiling/network/http2/docker-compose.yml b/test/e2e/cases/profiling/task/network/http2/docker-compose.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/http2/docker-compose.yml
rename to test/e2e/cases/profiling/task/network/http2/docker-compose.yml
diff --git a/test/e2e/cases/profiling/network/http2/e2e.yaml b/test/e2e/cases/profiling/task/network/http2/e2e.yaml
similarity index 96%
rename from test/e2e/cases/profiling/network/http2/e2e.yaml
rename to test/e2e/cases/profiling/task/network/http2/e2e.yaml
index df48e46..452b8ed 100644
--- a/test/e2e/cases/profiling/network/http2/e2e.yaml
+++ b/test/e2e/cases/profiling/task/network/http2/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/network/http2/go.mod b/test/e2e/cases/profiling/task/network/http2/go.mod
similarity index 100%
rename from test/e2e/cases/profiling/network/http2/go.mod
rename to test/e2e/cases/profiling/task/network/http2/go.mod
diff --git a/test/e2e/cases/profiling/network/http2/grpc.go b/test/e2e/cases/profiling/task/network/http2/grpc.go
similarity index 100%
rename from test/e2e/cases/profiling/network/http2/grpc.go
rename to test/e2e/cases/profiling/task/network/http2/grpc.go
diff --git a/test/e2e/cases/profiling/network/http2/service.proto b/test/e2e/cases/profiling/task/network/http2/service.proto
similarity index 100%
rename from test/e2e/cases/profiling/network/http2/service.proto
rename to test/e2e/cases/profiling/task/network/http2/service.proto
diff --git a/test/e2e/cases/profiling/network/nodejs/Dockerfile b/test/e2e/cases/profiling/task/network/nodejs/Dockerfile
similarity index 100%
rename from test/e2e/cases/profiling/network/nodejs/Dockerfile
rename to test/e2e/cases/profiling/task/network/nodejs/Dockerfile
diff --git a/test/e2e/cases/profiling/network/nodejs/docker-compose.yml b/test/e2e/cases/profiling/task/network/nodejs/docker-compose.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/nodejs/docker-compose.yml
rename to test/e2e/cases/profiling/task/network/nodejs/docker-compose.yml
diff --git a/test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml b/test/e2e/cases/profiling/task/network/nodejs/e2e.yaml
similarity index 96%
copy from test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml
copy to test/e2e/cases/profiling/task/network/nodejs/e2e.yaml
index 72e75bf..e12faa2 100644
--- a/test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml
+++ b/test/e2e/cases/profiling/task/network/nodejs/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/network/nodejs/service.js b/test/e2e/cases/profiling/task/network/nodejs/service.js
similarity index 100%
rename from test/e2e/cases/profiling/network/nodejs/service.js
rename to test/e2e/cases/profiling/task/network/nodejs/service.js
diff --git a/test/e2e/cases/profiling/network/python/Dockerfile b/test/e2e/cases/profiling/task/network/python/Dockerfile
similarity index 100%
rename from test/e2e/cases/profiling/network/python/Dockerfile
rename to test/e2e/cases/profiling/task/network/python/Dockerfile
diff --git a/test/e2e/cases/profiling/network/python/docker-compose.yml b/test/e2e/cases/profiling/task/network/python/docker-compose.yml
similarity index 100%
rename from test/e2e/cases/profiling/network/python/docker-compose.yml
rename to test/e2e/cases/profiling/task/network/python/docker-compose.yml
diff --git a/test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml b/test/e2e/cases/profiling/task/network/python/e2e.yaml
similarity index 96%
copy from test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml
copy to test/e2e/cases/profiling/task/network/python/e2e.yaml
index 72e75bf..e12faa2 100644
--- a/test/e2e/cases/profiling/network/c_plus_plus/e2e.yaml
+++ b/test/e2e/cases/profiling/task/network/python/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/network/python/requirements.txt b/test/e2e/cases/profiling/task/network/python/requirements.txt
similarity index 100%
rename from test/e2e/cases/profiling/network/python/requirements.txt
rename to test/e2e/cases/profiling/task/network/python/requirements.txt
diff --git a/test/e2e/cases/profiling/network/python/service.py b/test/e2e/cases/profiling/task/network/python/service.py
similarity index 100%
rename from test/e2e/cases/profiling/network/python/service.py
rename to test/e2e/cases/profiling/task/network/python/service.py
diff --git a/test/e2e/cases/profiling/network/sampling.yaml b/test/e2e/cases/profiling/task/network/sampling.yaml
similarity index 100%
rename from test/e2e/cases/profiling/network/sampling.yaml
rename to test/e2e/cases/profiling/task/network/sampling.yaml
diff --git a/test/e2e/cases/profiling/offcpu/c++/Dockerfile.file b/test/e2e/cases/profiling/task/offcpu/c++/Dockerfile.file
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/c++/Dockerfile.file
rename to test/e2e/cases/profiling/task/offcpu/c++/Dockerfile.file
diff --git a/test/e2e/cases/profiling/offcpu/c++/docker-compose.yml b/test/e2e/cases/profiling/task/offcpu/c++/docker-compose.yml
similarity index 92%
rename from test/e2e/cases/profiling/offcpu/c++/docker-compose.yml
rename to test/e2e/cases/profiling/task/offcpu/c++/docker-compose.yml
index 49aee4e..6839a91 100644
--- a/test/e2e/cases/profiling/offcpu/c++/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/offcpu/c++/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
environment:
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: /file
diff --git a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/offcpu/c++/e2e.yaml
similarity index 97%
rename from test/e2e/cases/profiling/offcpu/c++/e2e.yaml
rename to test/e2e/cases/profiling/task/offcpu/c++/e2e.yaml
index 8c9d512..1a462f5 100644
--- a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/offcpu/c++/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/offcpu/c++/file.cpp b/test/e2e/cases/profiling/task/offcpu/c++/file.cpp
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/c++/file.cpp
rename to test/e2e/cases/profiling/task/offcpu/c++/file.cpp
diff --git a/test/e2e/cases/profiling/offcpu/c++/profiling-analysis.yml b/test/e2e/cases/profiling/task/offcpu/c++/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/c++/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/offcpu/c++/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/offcpu/c/Dockerfile.file b/test/e2e/cases/profiling/task/offcpu/c/Dockerfile.file
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/c/Dockerfile.file
rename to test/e2e/cases/profiling/task/offcpu/c/Dockerfile.file
diff --git a/test/e2e/cases/profiling/offcpu/c/docker-compose.yml b/test/e2e/cases/profiling/task/offcpu/c/docker-compose.yml
similarity index 92%
rename from test/e2e/cases/profiling/offcpu/c/docker-compose.yml
rename to test/e2e/cases/profiling/task/offcpu/c/docker-compose.yml
index 816e685..3013ce5 100644
--- a/test/e2e/cases/profiling/offcpu/c/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/offcpu/c/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
environment:
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: /file
diff --git a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/offcpu/c/e2e.yaml
similarity index 97%
copy from test/e2e/cases/profiling/offcpu/c++/e2e.yaml
copy to test/e2e/cases/profiling/task/offcpu/c/e2e.yaml
index 8c9d512..1a462f5 100644
--- a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/offcpu/c/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/offcpu/c/file.c b/test/e2e/cases/profiling/task/offcpu/c/file.c
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/c/file.c
rename to test/e2e/cases/profiling/task/offcpu/c/file.c
diff --git a/test/e2e/cases/profiling/offcpu/c/profiling-analysis.yml b/test/e2e/cases/profiling/task/offcpu/c/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/c/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/offcpu/c/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/offcpu/expected/instance.yml b/test/e2e/cases/profiling/task/offcpu/expected/instance.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/expected/instance.yml
rename to test/e2e/cases/profiling/task/offcpu/expected/instance.yml
diff --git a/test/e2e/cases/profiling/offcpu/expected/process.yml b/test/e2e/cases/profiling/task/offcpu/expected/process.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/expected/process.yml
rename to test/e2e/cases/profiling/task/offcpu/expected/process.yml
diff --git a/test/e2e/cases/profiling/offcpu/expected/profiling-create.yml b/test/e2e/cases/profiling/task/offcpu/expected/profiling-create.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/expected/profiling-create.yml
rename to test/e2e/cases/profiling/task/offcpu/expected/profiling-create.yml
diff --git a/test/e2e/cases/profiling/offcpu/expected/profiling-schedule-list.yml b/test/e2e/cases/profiling/task/offcpu/expected/profiling-schedule-list.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/expected/profiling-schedule-list.yml
rename to test/e2e/cases/profiling/task/offcpu/expected/profiling-schedule-list.yml
diff --git a/test/e2e/cases/profiling/offcpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/task/offcpu/expected/profiling-task-list.yml
similarity index 94%
rename from test/e2e/cases/profiling/offcpu/expected/profiling-task-list.yml
rename to test/e2e/cases/profiling/task/offcpu/expected/profiling-task-list.yml
index 49ea171..69864ea 100644
--- a/test/e2e/cases/profiling/offcpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/task/offcpu/expected/profiling-task-list.yml
@@ -24,9 +24,12 @@
- e2e-label1
- e2e-label2
{{- end }}
+ processid: null
+ processname: null
taskstarttime: {{ gt .taskstarttime 0 }}
triggertype: FIXED_TIME
fixedtriggerduration: 60
targettype: OFF_CPU
createtime: {{ gt .createtime 0 }}
+ continuousprofilingcauses: []
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/offcpu/expected/service.yml b/test/e2e/cases/profiling/task/offcpu/expected/service.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/expected/service.yml
rename to test/e2e/cases/profiling/task/offcpu/expected/service.yml
diff --git a/test/e2e/cases/profiling/offcpu/golang/Dockerfile.file b/test/e2e/cases/profiling/task/offcpu/golang/Dockerfile.file
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/golang/Dockerfile.file
rename to test/e2e/cases/profiling/task/offcpu/golang/Dockerfile.file
diff --git a/test/e2e/cases/profiling/offcpu/golang/docker-compose.yml b/test/e2e/cases/profiling/task/offcpu/golang/docker-compose.yml
similarity index 92%
rename from test/e2e/cases/profiling/offcpu/golang/docker-compose.yml
rename to test/e2e/cases/profiling/task/offcpu/golang/docker-compose.yml
index e1aa572..41025d2 100644
--- a/test/e2e/cases/profiling/offcpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/offcpu/golang/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
environment:
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: /file
diff --git a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/offcpu/golang/e2e.yaml
similarity index 97%
copy from test/e2e/cases/profiling/offcpu/c++/e2e.yaml
copy to test/e2e/cases/profiling/task/offcpu/golang/e2e.yaml
index 8c9d512..1a462f5 100644
--- a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/offcpu/golang/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/offcpu/golang/file.go b/test/e2e/cases/profiling/task/offcpu/golang/file.go
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/golang/file.go
rename to test/e2e/cases/profiling/task/offcpu/golang/file.go
diff --git a/test/e2e/cases/profiling/offcpu/golang/profiling-analysis.yml b/test/e2e/cases/profiling/task/offcpu/golang/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/golang/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/offcpu/golang/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/offcpu/profiling-cases.yaml b/test/e2e/cases/profiling/task/offcpu/profiling-cases.yaml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/profiling-cases.yaml
rename to test/e2e/cases/profiling/task/offcpu/profiling-cases.yaml
diff --git a/test/e2e/cases/profiling/offcpu/rust/Dockerfile.file b/test/e2e/cases/profiling/task/offcpu/rust/Dockerfile.file
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/rust/Dockerfile.file
rename to test/e2e/cases/profiling/task/offcpu/rust/Dockerfile.file
diff --git a/test/e2e/cases/profiling/offcpu/rust/docker-compose.yml b/test/e2e/cases/profiling/task/offcpu/rust/docker-compose.yml
similarity index 92%
rename from test/e2e/cases/profiling/offcpu/rust/docker-compose.yml
rename to test/e2e/cases/profiling/task/offcpu/rust/docker-compose.yml
index 723e51e..02633df 100644
--- a/test/e2e/cases/profiling/offcpu/rust/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/offcpu/rust/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
environment:
ROVER_PROCESS_DISCOVERY_REGEX_SCANNER_MATCH_CMD: /file
diff --git a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/offcpu/rust/e2e.yaml
similarity index 97%
copy from test/e2e/cases/profiling/offcpu/c++/e2e.yaml
copy to test/e2e/cases/profiling/task/offcpu/rust/e2e.yaml
index 8c9d512..1a462f5 100644
--- a/test/e2e/cases/profiling/offcpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/offcpu/rust/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/offcpu/rust/file.rs b/test/e2e/cases/profiling/task/offcpu/rust/file.rs
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/rust/file.rs
rename to test/e2e/cases/profiling/task/offcpu/rust/file.rs
diff --git a/test/e2e/cases/profiling/offcpu/rust/profiling-analysis.yml b/test/e2e/cases/profiling/task/offcpu/rust/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/offcpu/rust/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/offcpu/rust/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/oncpu/c++/Dockerfile.sqrt b/test/e2e/cases/profiling/task/oncpu/c++/Dockerfile.sqrt
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/c++/Dockerfile.sqrt
rename to test/e2e/cases/profiling/task/oncpu/c++/Dockerfile.sqrt
diff --git a/test/e2e/cases/profiling/oncpu/c++/docker-compose.yml b/test/e2e/cases/profiling/task/oncpu/c++/docker-compose.yml
similarity index 91%
rename from test/e2e/cases/profiling/oncpu/c++/docker-compose.yml
rename to test/e2e/cases/profiling/task/oncpu/c++/docker-compose.yml
index 613092c..05d7d6e 100644
--- a/test/e2e/cases/profiling/oncpu/c++/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/oncpu/c++/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
depends_on:
oap:
diff --git a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/oncpu/c++/e2e.yaml
similarity index 97%
rename from test/e2e/cases/profiling/oncpu/c++/e2e.yaml
rename to test/e2e/cases/profiling/task/oncpu/c++/e2e.yaml
index f607abd..483ae8e 100644
--- a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/oncpu/c++/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/oncpu/c++/profiling-analysis.yml b/test/e2e/cases/profiling/task/oncpu/c++/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/c++/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/oncpu/c++/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/oncpu/c++/sqrt.cpp b/test/e2e/cases/profiling/task/oncpu/c++/sqrt.cpp
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/c++/sqrt.cpp
rename to test/e2e/cases/profiling/task/oncpu/c++/sqrt.cpp
diff --git a/test/e2e/cases/profiling/oncpu/c/Dockerfile.sqrt b/test/e2e/cases/profiling/task/oncpu/c/Dockerfile.sqrt
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/c/Dockerfile.sqrt
rename to test/e2e/cases/profiling/task/oncpu/c/Dockerfile.sqrt
diff --git a/test/e2e/cases/profiling/oncpu/c/docker-compose.yml b/test/e2e/cases/profiling/task/oncpu/c/docker-compose.yml
similarity index 91%
rename from test/e2e/cases/profiling/oncpu/c/docker-compose.yml
rename to test/e2e/cases/profiling/task/oncpu/c/docker-compose.yml
index ed62923..97b8ee5 100644
--- a/test/e2e/cases/profiling/oncpu/c/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/oncpu/c/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
depends_on:
oap:
diff --git a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/oncpu/c/e2e.yaml
similarity index 97%
copy from test/e2e/cases/profiling/oncpu/c++/e2e.yaml
copy to test/e2e/cases/profiling/task/oncpu/c/e2e.yaml
index f607abd..483ae8e 100644
--- a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/oncpu/c/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/oncpu/c/profiling-analysis.yml b/test/e2e/cases/profiling/task/oncpu/c/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/c/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/oncpu/c/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/oncpu/c/sqrt.c b/test/e2e/cases/profiling/task/oncpu/c/sqrt.c
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/c/sqrt.c
rename to test/e2e/cases/profiling/task/oncpu/c/sqrt.c
diff --git a/test/e2e/cases/profiling/oncpu/expected/instance.yml b/test/e2e/cases/profiling/task/oncpu/expected/instance.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/expected/instance.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/instance.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/process-estimate-scale.yml b/test/e2e/cases/profiling/task/oncpu/expected/process-estimate-scale.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/expected/process-estimate-scale.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/process-estimate-scale.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/process.yml b/test/e2e/cases/profiling/task/oncpu/expected/process.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/expected/process.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/process.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-create-prepare.yml b/test/e2e/cases/profiling/task/oncpu/expected/profiling-create-prepare.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/expected/profiling-create-prepare.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/profiling-create-prepare.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-create.yml b/test/e2e/cases/profiling/task/oncpu/expected/profiling-create.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/expected/profiling-create.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/profiling-create.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-schedule-list.yml b/test/e2e/cases/profiling/task/oncpu/expected/profiling-schedule-list.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/expected/profiling-schedule-list.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/profiling-schedule-list.yml
diff --git a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml b/test/e2e/cases/profiling/task/oncpu/expected/profiling-task-list.yml
similarity index 94%
rename from test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/profiling-task-list.yml
index faa04bc..0147501 100644
--- a/test/e2e/cases/profiling/oncpu/expected/profiling-task-list.yml
+++ b/test/e2e/cases/profiling/task/oncpu/expected/profiling-task-list.yml
@@ -24,9 +24,12 @@
- e2e-label1
- e2e-label2
{{- end }}
+ processid: null
+ processname: null
taskstarttime: {{ gt .taskstarttime 0 }}
triggertype: FIXED_TIME
fixedtriggerduration: 60
targettype: ON_CPU
createtime: {{ gt .createtime 0 }}
+ continuousprofilingcauses: []
{{- end }}
\ No newline at end of file
diff --git a/test/e2e/cases/profiling/oncpu/expected/service.yml b/test/e2e/cases/profiling/task/oncpu/expected/service.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/expected/service.yml
rename to test/e2e/cases/profiling/task/oncpu/expected/service.yml
diff --git a/test/e2e/cases/profiling/oncpu/golang/Dockerfile.sqrt b/test/e2e/cases/profiling/task/oncpu/golang/Dockerfile.sqrt
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/golang/Dockerfile.sqrt
rename to test/e2e/cases/profiling/task/oncpu/golang/Dockerfile.sqrt
diff --git a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml b/test/e2e/cases/profiling/task/oncpu/golang/docker-compose.yml
similarity index 91%
rename from test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
rename to test/e2e/cases/profiling/task/oncpu/golang/docker-compose.yml
index 0df418f..89645ef 100644
--- a/test/e2e/cases/profiling/oncpu/golang/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/oncpu/golang/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
depends_on:
oap:
diff --git a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/oncpu/golang/e2e.yaml
similarity index 97%
copy from test/e2e/cases/profiling/oncpu/c++/e2e.yaml
copy to test/e2e/cases/profiling/task/oncpu/golang/e2e.yaml
index f607abd..483ae8e 100644
--- a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/oncpu/golang/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/oncpu/golang/profiling-analysis.yml b/test/e2e/cases/profiling/task/oncpu/golang/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/golang/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/oncpu/golang/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/oncpu/golang/sqrt.go b/test/e2e/cases/profiling/task/oncpu/golang/sqrt.go
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/golang/sqrt.go
rename to test/e2e/cases/profiling/task/oncpu/golang/sqrt.go
diff --git a/test/e2e/cases/profiling/oncpu/profiling-cases.yaml b/test/e2e/cases/profiling/task/oncpu/profiling-cases.yaml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/profiling-cases.yaml
rename to test/e2e/cases/profiling/task/oncpu/profiling-cases.yaml
diff --git a/test/e2e/cases/profiling/oncpu/rust/Dockerfile.sqrt b/test/e2e/cases/profiling/task/oncpu/rust/Dockerfile.sqrt
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/rust/Dockerfile.sqrt
rename to test/e2e/cases/profiling/task/oncpu/rust/Dockerfile.sqrt
diff --git a/test/e2e/cases/profiling/oncpu/rust/docker-compose.yml b/test/e2e/cases/profiling/task/oncpu/rust/docker-compose.yml
similarity index 91%
rename from test/e2e/cases/profiling/oncpu/rust/docker-compose.yml
rename to test/e2e/cases/profiling/task/oncpu/rust/docker-compose.yml
index 405731d..b9b5ee0 100644
--- a/test/e2e/cases/profiling/oncpu/rust/docker-compose.yml
+++ b/test/e2e/cases/profiling/task/oncpu/rust/docker-compose.yml
@@ -18,14 +18,14 @@
services:
oap:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: oap
ports:
- 12800:12800
rover:
extends:
- file: ../../../../base/base-compose.yml
+ file: ../../../../../base/base-compose.yml
service: rover
depends_on:
oap:
diff --git a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml b/test/e2e/cases/profiling/task/oncpu/rust/e2e.yaml
similarity index 97%
copy from test/e2e/cases/profiling/oncpu/c++/e2e.yaml
copy to test/e2e/cases/profiling/task/oncpu/rust/e2e.yaml
index f607abd..483ae8e 100644
--- a/test/e2e/cases/profiling/oncpu/c++/e2e.yaml
+++ b/test/e2e/cases/profiling/task/oncpu/rust/e2e.yaml
@@ -17,7 +17,7 @@
env: compose
file: docker-compose.yml
timeout: 20m
- init-system-environment: ../../../../base/env
+ init-system-environment: ../../../../../base/env
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
diff --git a/test/e2e/cases/profiling/oncpu/rust/profiling-analysis.yml b/test/e2e/cases/profiling/task/oncpu/rust/profiling-analysis.yml
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/rust/profiling-analysis.yml
rename to test/e2e/cases/profiling/task/oncpu/rust/profiling-analysis.yml
diff --git a/test/e2e/cases/profiling/oncpu/rust/sqrt.rs b/test/e2e/cases/profiling/task/oncpu/rust/sqrt.rs
similarity index 100%
rename from test/e2e/cases/profiling/oncpu/rust/sqrt.rs
rename to test/e2e/cases/profiling/task/oncpu/rust/sqrt.rs