diff --git a/.gitlab/benchmarks/bp-runner.fail-on-breach.yml b/.gitlab/benchmarks/bp-runner.macrobenchmarks.fail-on-breach.yml similarity index 100% rename from .gitlab/benchmarks/bp-runner.fail-on-breach.yml rename to .gitlab/benchmarks/bp-runner.macrobenchmarks.fail-on-breach.yml diff --git a/.gitlab/benchmarks/bp-runner.microbenchmarks.fail-on-breach.yml b/.gitlab/benchmarks/bp-runner.microbenchmarks.fail-on-breach.yml new file mode 100644 index 00000000000..47d88d61d09 --- /dev/null +++ b/.gitlab/benchmarks/bp-runner.microbenchmarks.fail-on-breach.yml @@ -0,0 +1,37 @@ +# Thresholds set based on guidance in https://datadoghq.atlassian.net/wiki/spaces/APMINT/pages/5070193198/How+to+set+up+pre-release+performance+quality+gates#How-to-choose-thresholds-for-pre-release-gates%3F + +experiments: + - name: SLO Check + steps: + - name: SLO Check + run: fail_on_breach + scenarios: + # flask_simple + - name: flasksimple-tracer + thresholds: + - execution_time < 3.65 ms + - max_rss_usage < 52.50 MB + - name: flasksimple-profiler + thresholds: + - execution_time < 2.10 ms + - max_rss_usage < 43.80 MB + - name: flasksimple-debugger + thresholds: + - execution_time < 2.00 ms + - max_rss_usage < 42.50 MB + - name: flasksimple-iast-get + thresholds: + - execution_time < 2.00 ms + - max_rss_usage < 44.75 MB + - name: flasksimple-appsec-get + thresholds: + - execution_time < 4.75 ms + - max_rss_usage < 62.10 MB + - name: flasksimple-appsec-post + thresholds: + - execution_time < 6.75 ms + - max_rss_usage < 62.40 MB + - name: flasksimple-appsec-telemetry + thresholds: + - execution_time < 4.75 ms + - max_rss_usage < 62.40 MB diff --git a/.gitlab/benchmarks/macrobenchmarks.yml b/.gitlab/benchmarks/macrobenchmarks.yml index 888ef7461b6..d99d11f8ebf 100644 --- a/.gitlab/benchmarks/macrobenchmarks.yml +++ b/.gitlab/benchmarks/macrobenchmarks.yml @@ -383,7 +383,7 @@ check-slo-breaches: expire_in: 3 months script: - export ARTIFACTS_DIR="$(pwd)/platform/artifacts/" - - bp-runner .gitlab/benchmarks/bp-runner.fail-on-breach.yml + - bp-runner .gitlab/benchmarks/bp-runner.macrobenchmarks.fail-on-breach.yml notify-slo-breaches: extends: .notify-slo-breaches @@ -391,4 +391,4 @@ notify-slo-breaches: needs: ["check-slo-breaches"] when: always variables: - CHANNEL: "apm-python-release" \ No newline at end of file + CHANNEL: "apm-python-release" diff --git a/.gitlab/benchmarks/microbenchmarks.yml b/.gitlab/benchmarks/microbenchmarks.yml index f997cca00da..8418d6eb25a 100644 --- a/.gitlab/benchmarks/microbenchmarks.yml +++ b/.gitlab/benchmarks/microbenchmarks.yml @@ -1,6 +1,7 @@ stages: - build - test + - gate - report variables: @@ -229,3 +230,20 @@ check-big-regressions: variables: # Gitlab and BP specific env vars. Do not modify. KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-py + + +check-slo-breaches: + stage: gate + when: always + tags: ["arch:amd64"] + image: registry.ddbuild.io/images/benchmarking-platform-tools-ubuntu:latest + artifacts: + name: "artifacts" + when: always + paths: + - artifacts/ + - reports/ + expire_in: 3 months + script: + - export ARTIFACTS_DIR="$(pwd)/reports/" + - bp-runner .gitlab/benchmarks/bp-runner.microbenchmarks.fail-on-breach.yml