deploy/platform/kubernetes/templates/feature-rover/profiling.yaml (66 lines of code) (raw):

# 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. # {{- if .Values.features.rover.enabled}} apiVersion: v1 kind: ConfigMap metadata: name: profiling-config namespace: {{ .Values.sampleServices.namespace }} labels: app: profiling-config data: network-profiling-sampling.yaml: | samplings: - min_duration: 0 when_4xx: true when_5xx: true setting: require_request: true require_response: true --- apiVersion: batch/v1 kind: CronJob metadata: name: ebpf-profiling-trgigger namespace: {{ .Values.sampleServices.namespace }} spec: schedule: "10 */2 * * *" successfulJobsHistoryLimit: 1 failedJobsHistoryLimit: 1 jobTemplate: spec: template: metadata: annotations: sidecar.istio.io/inject: "false" spec: containers: - name: ebpf-profiling-trigger image: "{{ .Values.features.rover.swctl.image }}" imagePullPolicy: IfNotPresent command: - /bin/sh - -c - > /swctl --base-url={{ template "skywalking.oap.address.http" . }}/graphql profiling ebpf create fixed \ --service-name mesh-svr::recommendation --labels mesh-envoy --duration=9m --target-type ON_CPU; /swctl --base-url={{ template "skywalking.oap.address.http" . }}/graphql profiling ebpf create fixed \ --service-name mesh-svr::app --labels mesh-envoy --duration=9m --target-type ON_CPU; /swctl --base-url={{ template "skywalking.oap.address.http" . }}/graphql profiling ebpf create fixed \ --service-name mesh-svr::songs --labels mesh-envoy --duration=9m --target-type ON_CPU; /swctl --base-url={{ template "skywalking.oap.address.http" . }}/graphql profiling ebpf create fixed \ --service-name mesh-svr::gateway --labels mesh-envoy --duration=9m --target-type ON_CPU; /swctl --base-url={{ template "skywalking.oap.address.http" . }}/graphql profiling ebpf create fixed \ --service-name mesh-svr::songs --labels mesh-envoy --duration=9m --target-type OFF_CPU; apk update && apk add yq; /swctl --base-url={{ template "skywalking.oap.address.http" . }}/graphql profiling ebpf create network \ --sampling-config=/profiling/network-profiling-sampling.yaml \ --service-name=mesh-svr::recommendation \ --instance-name=$(/swctl --base-url={{ template "skywalking.oap.address.http" . }}/graphql instance ls --service-name mesh-svr::recommendation|yq e '.[0].name' -); volumeMounts: - name: profiling-config mountPath: /profiling restartPolicy: Never volumes: - name: profiling-config configMap: name: profiling-config {{- end }}