From d9d4887d4a7ee8c98d41a1819379032c33cb0067 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 12 Dec 2025 16:39:53 -0600 Subject: [PATCH 01/23] Add apm-sdks-benchmarks to CI --- .gitlab-ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e5738260aa3..0bff96f9558 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,12 +4,17 @@ include: - local: ".gitlab/macrobenchmarks.yml" - local: ".gitlab/exploration-tests.yml" - local: ".gitlab/ci-visibility-tests.yml" + - project: 'DataDog/apm-reliability/apm-sdks-benchmarks' + file: '.gitlab/ci-java-spring-petclinic.yml' + ref: 'sarahchen6/compare-with-latest-shared-commit' stages: - build - publish - shared-pipeline - benchmarks + - java-spring-petclinic-tests + - java-spring-petclinic-macrobenchmarks - macrobenchmarks - tests - exploration-tests From 732aefdb28028163bd0c5de8c60c67574a77ab31 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 12 Dec 2025 17:02:51 -0600 Subject: [PATCH 02/23] Add thresholds file --- .gitlab/thresholds/java-spring-petclinic.yml | 36 ++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .gitlab/thresholds/java-spring-petclinic.yml diff --git a/.gitlab/thresholds/java-spring-petclinic.yml b/.gitlab/thresholds/java-spring-petclinic.yml new file mode 100644 index 00000000000..9064e7bd352 --- /dev/null +++ b/.gitlab/thresholds/java-spring-petclinic.yml @@ -0,0 +1,36 @@ +# Thresholds set based on guidance in https://datadoghq.atlassian.net/wiki/x/LgI1LgE#How-to-choose-thresholds-for-pre-release-gates%3F + +experiments: + - name: Run SLO breach check + steps: + - name: SLO breach check + run: fail_on_breach + # https://datadoghq.atlassian.net/wiki/x/LgI1LgE#How-to-choose-a-warning-range-for-pre-release-gates%3F + warning_range: 10 + # File spec + # https://datadoghq.atlassian.net/wiki/x/LgI1LgE#Specification + # Measurements + # https://benchmarking.us1.prod.dog/trends?projectId=4&branch=master&trendsTab=per_scenario + scenarios: + # Note that thresholds there are chosen based the confidence interval with a 10% adjustment. + + # Standard macrobenchmarks + # https://benchmarking.us1.prod.dog/trends?projectId=4&branch=master&trendsTab=per_scenario&scenario=normal_operation%2Fonly-tracing&trendsType=scenario + - name: normal_operation/only-tracing + thresholds: + - agg_http_req_duration_p50 < 2.6 ms + - agg_http_req_duration_p99 < 8.5 ms + # https://benchmarking.us1.prod.dog/trends?projectId=4&branch=master&trendsTab=per_scenario&scenario=normal_operation%2Fotel-latest&trendsType=scenario + - name: normal_operation/otel-latest + thresholds: + - agg_http_req_duration_p50 < 2.5 ms + - agg_http_req_duration_p99 < 10 ms + + # https://benchmarking.us1.prod.dog/trends?projectId=4&branch=master&trendsTab=per_scenario&scenario=high_load%2Fonly-tracing&trendsType=scenario + - name: high_load/only-tracing + thresholds: + - throughput > 1100.0 op/s + # https://benchmarking.us1.prod.dog/trends?projectId=4&branch=master&trendsTab=per_scenario&scenario=high_load%2Fotel-latest&trendsType=scenario + - name: high_load/otel-latest + thresholds: + - throughput > 1100.0 op/s From 0beddad3001739ff08efe00778c727dd9cf38356 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 12 Dec 2025 17:10:19 -0600 Subject: [PATCH 03/23] Empty commit to run benchmarks again From 961090742d827e1574663076274c18a51daf9107 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 12 Dec 2025 17:20:11 -0600 Subject: [PATCH 04/23] Empty commit to run benchmarks again From 4fc38a519507cfa2a47c887903dca1ca959b27ce Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 12 Dec 2025 17:31:04 -0600 Subject: [PATCH 05/23] Empty commit to run benchmarks again From bb85a00c8b998620ad799883d9904d7140a44611 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 12 Dec 2025 17:53:16 -0600 Subject: [PATCH 06/23] Empty commit to run benchmarks again From e6573d03d1870483d78de3dd0cf10deb11d1c3d9 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 12 Dec 2025 17:58:20 -0600 Subject: [PATCH 07/23] Empty commit to run benchmarks again From 573ddbc0eb4a15eb40de652c91703a7179f2957b Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 6 Jan 2026 12:20:38 -0500 Subject: [PATCH 08/23] Run microbenchmarks --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8417e2ddb2b..d61720ab46b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ include: - local: ".gitlab/ci-visibility-tests.yml" - project: 'DataDog/apm-reliability/apm-sdks-benchmarks' file: '.gitlab/ci-java-spring-petclinic.yml' - ref: 'sarahchen6/compare-with-latest-shared-commit' + ref: 'sarahchen6/run-java-microbenchmarks' stages: - build @@ -15,6 +15,8 @@ stages: - benchmarks - java-spring-petclinic-tests - java-spring-petclinic-macrobenchmarks + - java-spring-petclinic-microbenchmarks + - java-insecure-bank-microbenchmarks - macrobenchmarks - tests - exploration-tests From d3ae881e32af573c9fd63aaf4075f689a4ddbd0c Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 6 Jan 2026 16:53:26 -0500 Subject: [PATCH 09/23] Add infrastructure stage --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d61720ab46b..da365533bda 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,7 @@ stages: - publish - shared-pipeline - benchmarks + - infrastructure - java-spring-petclinic-tests - java-spring-petclinic-macrobenchmarks - java-spring-petclinic-microbenchmarks From b28e0fa72aed290ad397928468501f02cdda8d25 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 6 Jan 2026 16:57:15 -0500 Subject: [PATCH 10/23] Add another stage --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index da365533bda..b90caf0fcdc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,6 +18,7 @@ stages: - java-spring-petclinic-macrobenchmarks - java-spring-petclinic-microbenchmarks - java-insecure-bank-microbenchmarks + - generate-slos - macrobenchmarks - tests - exploration-tests From 177d4280967b0e5e02838a7a8d186ca905fed651 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 6 Jan 2026 18:10:15 -0500 Subject: [PATCH 11/23] Empty commit to run benchmarks From 1fb5e0c60a074327abbfa94a9d2d129d77430b85 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 6 Jan 2026 18:23:44 -0500 Subject: [PATCH 12/23] Empty commit to run benchmarks again From dbd6c94cd9507756d2af20705dc305fff6f0b3f6 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 7 Jan 2026 08:59:51 -0500 Subject: [PATCH 13/23] Include insecure bank file --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b90caf0fcdc..bfb8e0e434d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,6 +7,9 @@ include: - project: 'DataDog/apm-reliability/apm-sdks-benchmarks' file: '.gitlab/ci-java-spring-petclinic.yml' ref: 'sarahchen6/run-java-microbenchmarks' + - project: 'DataDog/apm-reliability/apm-sdks-benchmarks' + file: '.gitlab/ci-java-insecure-bank.yml' + ref: 'sarahchen6/run-java-microbenchmarks' stages: - build From 9a0a7d5ce870f9c947e0d74a3c29f62f510b8810 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 7 Jan 2026 15:56:53 -0500 Subject: [PATCH 14/23] Empty commit to run benchmarks without full suite From 22465b74a5a7fdcd236cacc651b4d3eac1567cb4 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 7 Jan 2026 16:20:34 -0500 Subject: [PATCH 15/23] Empty commit to run benchmarks with updated file From 63e044f9b6210d9b5d1e34f6b7bb92222164aa6f Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 7 Jan 2026 17:31:45 -0500 Subject: [PATCH 16/23] Empty commit to run benchmarks again From b2793639995dc3dd0fb098ecac51d6f5a0c414e4 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 7 Jan 2026 17:46:22 -0500 Subject: [PATCH 17/23] Empty commit to run benchmarks again From f50106749e3aec4ab44022adfddff71f9c9e8aae Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 7 Jan 2026 18:23:56 -0500 Subject: [PATCH 18/23] Empty commit to run benchmarks again... From 9da26aafd7522658057c84fe42d9252e901875ee Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Thu, 8 Jan 2026 09:56:02 -0500 Subject: [PATCH 19/23] Empty commit to run benchmarks again again From 3d8f8c0fd68221d51e03ca80a83a7a77447bf8c9 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 13 Jan 2026 17:21:51 -0500 Subject: [PATCH 20/23] Empty commit to run benchmarks From fb618b482fb3e56223017b873207402707890d05 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 14 Jan 2026 14:50:42 -0500 Subject: [PATCH 21/23] Try deleting microbenchmarks --- benchmark/Dockerfile | 103 ------------------ benchmark/README.MD | 29 ----- benchmark/benchmarks.sh | 42 ------- benchmark/dacapo/benchmark.json | 45 -------- benchmark/dacapo/run.sh | 41 ------- benchmark/load/insecure-bank/k6.js | 76 ------------- benchmark/load/insecure-bank/start-servers.sh | 28 ----- benchmark/load/petclinic/k6.js | 61 ----------- benchmark/load/petclinic/start-servers.sh | 28 ----- benchmark/load/run.sh | 77 ------------- benchmark/run.sh | 43 -------- .../startup/insecure-bank/benchmark.json | 22 ---- benchmark/startup/petclinic/benchmark.json | 34 ------ benchmark/startup/run.sh | 5 - benchmark/utils/k6.js | 21 ---- benchmark/utils/run-k6-load-test.sh | 21 ---- benchmark/utils/run-on-server-ready.sh | 11 -- benchmark/utils/run-sirun-benchmarks.sh | 41 ------- benchmark/utils/update-java-version.sh | 5 - 19 files changed, 733 deletions(-) delete mode 100644 benchmark/Dockerfile delete mode 100644 benchmark/README.MD delete mode 100755 benchmark/benchmarks.sh delete mode 100644 benchmark/dacapo/benchmark.json delete mode 100755 benchmark/dacapo/run.sh delete mode 100644 benchmark/load/insecure-bank/k6.js delete mode 100755 benchmark/load/insecure-bank/start-servers.sh delete mode 100644 benchmark/load/petclinic/k6.js delete mode 100755 benchmark/load/petclinic/start-servers.sh delete mode 100755 benchmark/load/run.sh delete mode 100755 benchmark/run.sh delete mode 100644 benchmark/startup/insecure-bank/benchmark.json delete mode 100644 benchmark/startup/petclinic/benchmark.json delete mode 100755 benchmark/startup/run.sh delete mode 100644 benchmark/utils/k6.js delete mode 100755 benchmark/utils/run-k6-load-test.sh delete mode 100755 benchmark/utils/run-on-server-ready.sh delete mode 100755 benchmark/utils/run-sirun-benchmarks.sh delete mode 100755 benchmark/utils/update-java-version.sh diff --git a/benchmark/Dockerfile b/benchmark/Dockerfile deleted file mode 100644 index 0279186478a..00000000000 --- a/benchmark/Dockerfile +++ /dev/null @@ -1,103 +0,0 @@ -# Petclinic download and compilation stage -FROM eclipse-temurin:17-jammy as petclinic - -ARG SPRING_PETCLINIC_COMMIT=cefaf55dd124d0635abfe857c3c99a3d3ea62017 - -RUN apt-get update \ - && apt-get -y install git \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* - -RUN set -eux;\ - git init spring-petclinic;\ - cd spring-petclinic;\ - git remote add origin https://github.com/spring-projects/spring-petclinic.git;\ - git fetch --depth 1 origin ${SPRING_PETCLINIC_COMMIT};\ - git checkout ${SPRING_PETCLINIC_COMMIT};\ - ./mvnw dependency:go-offline - -RUN cd spring-petclinic \ - && ./mvnw package -Dmaven.test.skip=true \ - && cp target/*.jar /spring-petclinic.jar - - -# Insecure bank download and compilation stage -FROM eclipse-temurin:17-jammy as insecure-bank - -RUN apt-get update \ - && apt-get -y install git \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* - -RUN git clone --depth 1 --branch malvarez/spring-boot --single-branch https://github.com/hdiv/insecure-bank.git \ - && cd insecure-bank \ - && ./gradlew -q dependencies - -RUN cd insecure-bank \ - && ./gradlew bootWar \ - && cp build/libs/*.war /insecure-bank.war - -# Dacapo download -FROM debian:bookworm-slim as dacapo -RUN apt-get update \ - && apt-get -y install wget unzip \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* - -ARG DACAPO_VERSION=23.11-chopin -# The data for the big benchmarks is removed too ensure the final docker image is not too big -RUN wget -nv -O dacapo.zip https://download.dacapobench.org/chopin/dacapo-$DACAPO_VERSION.zip \ - && mkdir /dacapo \ - && unzip dacapo.zip -d /dacapo/ \ - && rm -rf /dacapo/dacapo-$DACAPO_VERSION/dat/luindex \ - && rm -rf /dacapo/dacapo-$DACAPO_VERSION/dat/lusearch \ - && rm -rf /dacapo/dacapo-$DACAPO_VERSION/dat/graphchi \ - && rm dacapo.zip - -FROM debian:bookworm-slim - -RUN apt-get update \ - && apt-get -y install git curl wget procps gettext-base \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* - -COPY --from=eclipse-temurin:8-jammy /opt/java/openjdk /usr/lib/jvm/8 -COPY --from=eclipse-temurin:11-jammy /opt/java/openjdk /usr/lib/jvm/11 -COPY --from=eclipse-temurin:17-jammy /opt/java/openjdk /usr/lib/jvm/17 - -RUN rm -rf \ - /usr/lib/jvm/*/man \ - /usr/lib/jvm/*/src.zip \ - /usr/lib/jvm/*/lib/src.zip \ - /usr/lib/jvm/*/demo \ - /usr/lib/jvm/*/sample - -ENV JAVA_8_HOME=/usr/lib/jvm/8 -ENV JAVA_11_HOME=/usr/lib/jvm/11 -ENV JAVA_17_HOME=/usr/lib/jvm/17 -ENV JAVA_HOME=${JAVA_8_HOME} -ENV PATH=${PATH}:${JAVA_HOME}/bin - -ARG SIRUN_VERSION=0.1.11 -RUN wget -O sirun.tar.gz https://github.com/DataDog/sirun/releases/download/v$SIRUN_VERSION/sirun-v$SIRUN_VERSION-x86_64-unknown-linux-musl.tar.gz \ - && tar -xzf sirun.tar.gz \ - && rm sirun.tar.gz \ - && mv sirun /usr/bin/sirun - -ARG K6_VERSION=0.45.1 -RUN wget -O k6.tar.gz https://github.com/grafana/k6/releases/download/v$K6_VERSION/k6-v$K6_VERSION-linux-amd64.tar.gz \ - && tar --strip-components=1 -xzf k6.tar.gz \ - && rm k6.tar.gz \ - && mv k6 /usr/bin/k6 - -RUN mkdir -p /app - -COPY --from=petclinic /spring-petclinic.jar /app/spring-petclinic.jar -ENV PETCLINIC=/app/spring-petclinic.jar - -COPY --from=insecure-bank /insecure-bank.war /app/insecure-bank.war -ENV INSECURE_BANK=/app/insecure-bank.war - -COPY --from=dacapo /dacapo/ /app/ -ARG DACAPO_VERSION=23.11-chopin -ENV DACAPO=/app/dacapo-$DACAPO_VERSION.jar diff --git a/benchmark/README.MD b/benchmark/README.MD deleted file mode 100644 index 30f3bbcf864..00000000000 --- a/benchmark/README.MD +++ /dev/null @@ -1,29 +0,0 @@ -# Benchmarks - -This directory contains different types of benchmarks. - -## Running Benchmarks via Docker - -Docker allows the execution of benchmarks without needing to install and configure your development environment. For example, package installation and installation of sirun are performed automatically. - -In order to run benchmarks using Docker, issue the following command from the `benchmark/` folder of this project: - -```sh -./run.sh -``` - -If you run into storage errors (e.g. running out of disk space), try removing all unused Docker containers, networks, and images with `docker system prune -af` before running the script again. Once finished, the reports will be available in the `benchmark/reports/` folder. Note that the script can take ~40 minutes to run. - -### Running specific benchmarks - -If you want to run only a specific category of benchmarks, you can do so via arguments: - -1. Run startup benchmarks -```sh -./run.sh startup [application]? -``` - -2. Run load benchmarks -```sh -./run.sh load [application]? -``` diff --git a/benchmark/benchmarks.sh b/benchmark/benchmarks.sh deleted file mode 100755 index 0b245038afa..00000000000 --- a/benchmark/benchmarks.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash -set -eu - -readonly SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) -export TRACER_DIR="${SCRIPT_DIR}/.." -export REPORTS_DIR="${SCRIPT_DIR}/reports" -export UTILS_DIR="${SCRIPT_DIR}/utils" -export SHELL_UTILS_DIR="${UTILS_DIR}/shell" -export K6_UTILS_DIR="${UTILS_DIR}/k6" -export TRACER="${SCRIPT_DIR}/tracer/dd-java-agent.jar" -export NO_AGENT_VARIANT="no_agent" - -run_benchmarks() { - local type=$1 - if [[ -d "${type}" ]] && [[ -f "${type}/run.sh" ]]; then - cd "${type}" - ./run.sh "$@" - cd "${SCRIPT_DIR}" - fi -} - -# Find or rebuild tracer to be used in the benchmarks -if [[ ! -f "${TRACER}" ]]; then - mkdir -p "${SCRIPT_DIR}/tracer" - cd "${TRACER_DIR}" - readonly TRACER_VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}') - readonly TRACER_COMPILED="${SCRIPT_DIR}/../dd-java-agent/build/libs/dd-java-agent-${TRACER_VERSION}.jar" - if [[ ! -f "${TRACER_COMPILED}" ]]; then - echo "Tracer not found, starting gradle compile ..." - ./gradlew assemble - fi - cp "${TRACER_COMPILED}" "${TRACER}" - cd "${SCRIPT_DIR}" -fi - -if [[ "$#" == '0' ]]; then - for type in 'startup' 'load' 'dacapo'; do - run_benchmarks "$type" - done -else - run_benchmarks "$@" -fi diff --git a/benchmark/dacapo/benchmark.json b/benchmark/dacapo/benchmark.json deleted file mode 100644 index ec0ca767f43..00000000000 --- a/benchmark/dacapo/benchmark.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "dacapo_${BENCHMARK}", - "setup": "bash -c \"mkdir -p ${OUTPUT_DIR}/${VARIANT}\"", - "run": "bash -c \"java ${JAVA_OPTS} -jar ${DACAPO} --converge --scratch-directory=${OUTPUT_DIR}/${VARIANT}/scratch --latency-csv ${BENCHMARK} &> ${OUTPUT_DIR}/${VARIANT}/dacapo.log\"", - "timeout": 150, - "iterations": 1, - "variants": { - "${NO_AGENT_VARIANT}": { - "env": { - "VARIANT": "${NO_AGENT_VARIANT}", - "JAVA_OPTS": "" - } - }, - "tracing": { - "env": { - "VARIANT": "tracing", - "JAVA_OPTS": "-javaagent:${TRACER}" - } - }, - "profiling": { - "env": { - "VARIANT": "profiling", - "JAVA_OPTS": "-javaagent:${TRACER} -Ddd.profiling.enabled=true" - } - }, - "appsec": { - "env": { - "VARIANT": "appsec", - "JAVA_OPTS": "-javaagent:${TRACER} -Ddd.appsec.enabled=true -Ddd.iast.enabled=false" - } - }, - "iast": { - "env": { - "VARIANT": "iast", - "JAVA_OPTS": "-javaagent:${TRACER} -Ddd.iast.enabled=true" - } - }, - "iast_GLOBAL": { - "env": { - "VARIANT": "iast_GLOBAL", - "JAVA_OPTS": "-javaagent:${TRACER} -Ddd.iast.enabled=true -Ddd.iast.context.mode=GLOBAL" - } - } - } -} diff --git a/benchmark/dacapo/run.sh b/benchmark/dacapo/run.sh deleted file mode 100755 index ece44f9e5f0..00000000000 --- a/benchmark/dacapo/run.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -set -eu - -source "${UTILS_DIR}/update-java-version.sh" 11 - -function message() { - echo "$(date +"%T"): $1" -} - -run_benchmark() { - local type=$1 - - message "dacapo benchmark: ${type} started" - - # export the benchmark - export BENCHMARK="${type}" - - # create output folder for the test - export OUTPUT_DIR="${REPORTS_DIR}/dacapo/${type}" - mkdir -p "${OUTPUT_DIR}" - - # substitute environment variables in the json file - benchmark=$(mktemp) - # shellcheck disable=SC2046 - # shellcheck disable=SC2016 - envsubst "$(printf '${%s} ' $(env | cut -d'=' -f1))" "${benchmark}" - - # run the sirun test - sirun "${benchmark}" &>"${OUTPUT_DIR}/${type}.json" - - message "dacapo benchmark: ${type} finished" -} - -if [ "$#" == '2' ]; then - run_benchmark "$2" -else - for benchmark in biojava tomcat ; do - run_benchmark "${benchmark}" - done -fi - diff --git a/benchmark/load/insecure-bank/k6.js b/benchmark/load/insecure-bank/k6.js deleted file mode 100644 index 2dd800fa7e5..00000000000 --- a/benchmark/load/insecure-bank/k6.js +++ /dev/null @@ -1,76 +0,0 @@ -import http from 'k6/http'; -import {checkResponse, isOk, isRedirect} from "../../utils/k6.js"; - -const variants = { - "no_agent": { - "APP_URL": 'http://localhost:8080', - }, - "tracing": { - "APP_URL": 'http://localhost:8081', - }, - "profiling": { - "APP_URL": 'http://localhost:8082', - }, - "iast": { - "APP_URL": 'http://localhost:8083', - }, - "iast_GLOBAL": { - "APP_URL": 'http://localhost:8084', - }, - "iast_FULL": { - "APP_URL": 'http://localhost:8085', - }, -} - -export const options = function (variants) { - let scenarios = {}; - for (const variant of Object.keys(variants)) { - scenarios[`load--insecure-bank--${variant}--warmup`] = { - executor: 'constant-vus', // https://grafana.com/docs/k6/latest/using-k6/scenarios/executors/#all-executors - vus: 5, - duration: '165s', - gracefulStop: '2s', - env: { - "APP_URL": variants[variant]["APP_URL"] - } - }; - - scenarios[`load--insecure-bank--${variant}--high_load`] = { - executor: 'constant-vus', - vus: 5, - startTime: '167s', - duration: '15s', - gracefulStop: '2s', - env: { - "APP_URL": variants[variant]["APP_URL"] - } - }; - } - - return { - discardResponseBodies: true, - scenarios, - } -}(variants); - -export default function () { - - // login form - const loginResponse = http.post(`${__ENV.APP_URL}/login`, { - username: 'john', - password: 'test' - }, { - redirects: 0 - }); - checkResponse(loginResponse, isRedirect); - - // dashboard - const dashboard = http.get(`${__ENV.APP_URL}/dashboard`); - checkResponse(dashboard, isOk); - - // logout - const logout = http.get(`${__ENV.APP_URL}/j_spring_security_logout`, { - redirects: 0 - }); - checkResponse(logout, isRedirect); -} diff --git a/benchmark/load/insecure-bank/start-servers.sh b/benchmark/load/insecure-bank/start-servers.sh deleted file mode 100755 index 4cae95567f2..00000000000 --- a/benchmark/load/insecure-bank/start-servers.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -set -e - -start_server() { - local VARIANT=$1 - local JAVA_OPTS=$2 - - if [ -n "$CI_JOB_TOKEN" ]; then - # Inside BP, so we can assume 24 CPU cores available and set CPU affinity - CPU_AFFINITY_APP=$3 - else - CPU_AFFINITY_APP="" - fi - - mkdir -p "${LOGS_DIR}/${VARIANT}" - ${CPU_AFFINITY_APP}java ${JAVA_OPTS} -Xms3G -Xmx3G -jar ${INSECURE_BANK} &> ${LOGS_DIR}/${VARIANT}/insecure-bank.log &PID=$! - echo "${CPU_AFFINITY_APP}java ${JAVA_OPTS} -Xms3G -Xmx3G -jar ${INSECURE_BANK} &> ${LOGS_DIR}/${VARIANT}/insecure-bank.log [PID=$PID]" -} - -start_server "no_agent" "-Dserver.port=8080" "taskset -c 47 " & -start_server "tracing" "-javaagent:${TRACER} -Dserver.port=8081" "taskset -c 46 " & -start_server "profiling" "-javaagent:${TRACER} -Ddd.profiling.enabled=true -Dserver.port=8082" "taskset -c 45 " & -start_server "iast" "-javaagent:${TRACER} -Ddd.iast.enabled=true -Dserver.port=8083" "taskset -c 44 " & -start_server "iast_GLOBAL" "-javaagent:${TRACER} -Ddd.iast.enabled=true -Ddd.iast.context.mode=GLOBAL -Dserver.port=8084" "taskset -c 43 " & -start_server "iast_FULL" "-javaagent:${TRACER} -Ddd.iast.enabled=true -Ddd.iast.detection.mode=FULL -Dserver.port=8085" "taskset -c 42 " & - -wait diff --git a/benchmark/load/petclinic/k6.js b/benchmark/load/petclinic/k6.js deleted file mode 100644 index debeab10a8e..00000000000 --- a/benchmark/load/petclinic/k6.js +++ /dev/null @@ -1,61 +0,0 @@ -import http from 'k6/http'; -import {checkResponse, isOk} from "../../utils/k6.js"; - -const variants = { - "no_agent": { - "APP_URL": 'http://localhost:8080', - }, - "tracing": { - "APP_URL": 'http://localhost:8081', - }, - "profiling": { - "APP_URL": 'http://localhost:8082', - }, - "appsec": { - "APP_URL": 'http://localhost:8083', - }, - "iast": { - "APP_URL": 'http://localhost:8084', - }, - "code_origins": { - "APP_URL": 'http://localhost:8085', - } -} - -export const options = function (variants) { - const scenarios = {}; - for (const variant of Object.keys(variants)) { - scenarios[`load--petclinic--${variant}--warmup`] = { - executor: 'constant-vus', // https://grafana.com/docs/k6/latest/using-k6/scenarios/executors/#all-executors - vus: 5, - duration: '165s', - gracefulStop: '2s', - env: { - "APP_URL": variants[variant]["APP_URL"] - } - }; - - scenarios[`load--petclinic--${variant}--high_load`] = { - executor: 'constant-vus', - vus: 5, - startTime: '167s', - duration: '15s', - gracefulStop: '2s', - env: { - "APP_URL": variants[variant]["APP_URL"] - } - }; - } - - return { - discardResponseBodies: true, - scenarios, - } -}(variants); - -export default function () { - - // find owner - const ownersList = http.get(`${__ENV.APP_URL}/owners?lastName=`); - checkResponse(ownersList, isOk); -} diff --git a/benchmark/load/petclinic/start-servers.sh b/benchmark/load/petclinic/start-servers.sh deleted file mode 100755 index 1ebbb4e0418..00000000000 --- a/benchmark/load/petclinic/start-servers.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -set -e - -start_server() { - local VARIANT=$1 - local JAVA_OPTS=$2 - - if [ -n "$CI_JOB_TOKEN" ]; then - # Inside BP, so we can assume 24 CPU cores available and set CPU affinity - CPU_AFFINITY_APP=$3 - else - CPU_AFFINITY_APP="" - fi - - mkdir -p "${LOGS_DIR}/${VARIANT}" - ${CPU_AFFINITY_APP}java ${JAVA_OPTS} -Xms2G -Xmx2G -jar ${PETCLINIC} &> ${LOGS_DIR}/${VARIANT}/petclinic.log &PID=$! - echo "${CPU_AFFINITY_APP}java ${JAVA_OPTS} -Xms2G -Xmx2G -jar ${PETCLINIC} &> ${LOGS_DIR}/${VARIANT}/petclinic.log [PID=$!]" -} - -start_server "no_agent" "-Dserver.port=8080" "taskset -c 31-32 " & -start_server "tracing" "-javaagent:${TRACER} -Dserver.port=8081" "taskset -c 33-34 " & -start_server "profiling" "-javaagent:${TRACER} -Ddd.profiling.enabled=true -Dserver.port=8082" "taskset -c 35-36 " & -start_server "appsec" "-javaagent:${TRACER} -Ddd.appsec.enabled=true -Dserver.port=8083" "taskset -c 37-38 " & -start_server "iast" "-javaagent:${TRACER} -Ddd.iast.enabled=true -Dserver.port=8084" "taskset -c 39-40 " & -start_server "code_origins" "-javaagent:${TRACER} -Ddd.code.origin.for.spans.enabled=true -Dserver.port=8085" "taskset -c 41-42 " & - -wait diff --git a/benchmark/load/run.sh b/benchmark/load/run.sh deleted file mode 100755 index 5f2f265b045..00000000000 --- a/benchmark/load/run.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash - -set -e - -function message() { - echo "$(date +"%T"): $1" -} - -function healthcheck() { - local url=$1 - - while true; do - if [[ $(curl -fso /dev/null -w "%{http_code}" "${url}") = 200 ]]; then - break - fi - done -} - -type=$1 - -if [ -n "$CI_JOB_TOKEN" ]; then - # Inside BP, so we can assume 24 CPU cores on the second socket available and set CPU affinity - export CPU_AFFINITY_K6="taskset -c 24-27 " -else - export CPU_AFFINITY_K6="" -fi - -source "${UTILS_DIR}/update-java-version.sh" 17 - -for app in *; do - if [[ ! -d "${app}" ]]; then - continue - fi - - message "${type} benchmark: ${app} started" - - export OUTPUT_DIR="${REPORTS_DIR}/${type}/${app}" - mkdir -p ${OUTPUT_DIR} - - export LOGS_DIR="${ARTIFACTS_DIR}/${type}/${app}" - mkdir -p ${LOGS_DIR} - - # Using profiler variants for healthcheck as they are the slowest - if [ "${app}" == "petclinic" ]; then - HEALTHCHECK_URL=http://localhost:8082 - REPETITIONS_COUNT=2 - elif [ "${app}" == "insecure-bank" ]; then - HEALTHCHECK_URL=http://localhost:8082/login - REPETITIONS_COUNT=2 - else - echo "Unknown app ${app}" - exit 1 - fi - - for i in $(seq 1 $REPETITIONS_COUNT); do - bash -c "${UTILS_DIR}/../${type}/${app}/start-servers.sh" & - - echo "Waiting for serves to start..." - if [ "${app}" == "petclinic" ]; then - for port in $(seq 8080 8085); do - healthcheck http://localhost:$port - done - elif [ "${app}" == "insecure-bank" ]; then - for port in $(seq 8080 8085); do - healthcheck http://localhost:$port/login - done - fi - echo "Servers are up!" - - ( - cd ${app} && - bash -c "${CPU_AFFINITY_K6}${UTILS_DIR}/run-k6-load-test.sh 'pkill java'" - ) - done - - message "${type} benchmark: ${app} finished" -done diff --git a/benchmark/run.sh b/benchmark/run.sh deleted file mode 100755 index bcd3649e9a0..00000000000 --- a/benchmark/run.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash -set -eu - -readonly SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" -readonly INITIAL_DIR="$(pwd)" -readonly TRACER="${SCRIPT_DIR}/tracer/dd-java-agent.jar" - -cd "${SCRIPT_DIR}" - -# Build container image -echo "Building base image ..." -docker build \ - -t dd-trace-java/benchmark \ - . - -# Find or rebuild tracer to be used in the benchmarks -if [[ ! -f "${TRACER}" ]]; then - mkdir -p "${SCRIPT_DIR}/tracer" - cd "${SCRIPT_DIR}/.." - readonly TRACER_VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}') - readonly TRACER_COMPILED="${SCRIPT_DIR}/../dd-java-agent/build/libs/dd-java-agent-${TRACER_VERSION}.jar" - if [ ! -f "${TRACER_COMPILED}" ]; then - echo "Tracer not found, starting gradle compile ..." - ./gradlew assemble - fi - cp "${TRACER_COMPILED}" "${TRACER}" - cd "${SCRIPT_DIR}" -fi - -# Trigger benchmarks -echo "Running benchmarks ..." -docker run --rm \ - -v "${HOME}/.gradle":/home/benchmark/.gradle:delegated \ - -v "${PWD}/..":/tracer:delegated \ - -w /tracer/benchmark \ - -e GRADLE_OPTS="-Dorg.gradle.daemon=false" \ - --entrypoint=./benchmarks.sh \ - --name dd-trace-java-benchmark \ - --cap-add SYS_ADMIN \ - dd-trace-java/benchmark \ - "$@" - -cd "${INITIAL_DIR}" diff --git a/benchmark/startup/insecure-bank/benchmark.json b/benchmark/startup/insecure-bank/benchmark.json deleted file mode 100644 index 17c69a50847..00000000000 --- a/benchmark/startup/insecure-bank/benchmark.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "startup_insecure-bank", - "setup": "bash -c \"mkdir -p ${OUTPUT_DIR}/${VARIANT}\"", - "service": "bash -c \"${UTILS_DIR}/run-on-server-ready.sh http://localhost:8080/login 'pkill java'\"", - "run": "bash -c \"java -javaagent:${TRACER} -Ddd.benchmark.enabled=true -Ddd.benchmark.output.dir=${OUTPUT_DIR}/${VARIANT} ${JAVA_OPTS} -jar ${INSECURE_BANK} &> ${OUTPUT_DIR}/${VARIANT}/insecure-bank.log\"", - "iterations": 10, - "timeout": 60, - "variants": { - "tracing": { - "env": { - "VARIANT": "tracing", - "JAVA_OPTS": "" - } - }, - "iast": { - "env": { - "VARIANT": "iast", - "JAVA_OPTS": "-Ddd.iast.enabled=true" - } - } - } -} diff --git a/benchmark/startup/petclinic/benchmark.json b/benchmark/startup/petclinic/benchmark.json deleted file mode 100644 index 23713c38469..00000000000 --- a/benchmark/startup/petclinic/benchmark.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "startup_petclinic", - "setup": "bash -c \"mkdir -p ${OUTPUT_DIR}/${VARIANT}\"", - "service": "bash -c \"${UTILS_DIR}/run-on-server-ready.sh http://localhost:8080 'pkill java'\"", - "run": "bash -c \"java -javaagent:${TRACER} -Ddd.benchmark.enabled=true -Ddd.benchmark.output.dir=${OUTPUT_DIR}/${VARIANT} ${JAVA_OPTS} -jar ${PETCLINIC} &> ${OUTPUT_DIR}/${VARIANT}/petclinic.log\"", - "iterations": 10, - "timeout": 60, - "variants": { - "tracing": { - "env": { - "VARIANT": "tracing", - "JAVA_OPTS": "" - } - }, - "profiling": { - "env": { - "VARIANT": "profiling", - "JAVA_OPTS": "-Ddd.profiling.enabled=true" - } - }, - "appsec": { - "env": { - "VARIANT": "appsec", - "JAVA_OPTS": "-Ddd.appsec.enabled=true" - } - }, - "iast": { - "env": { - "VARIANT": "iast", - "JAVA_OPTS": "-Ddd.iast.enabled=true" - } - } - } -} diff --git a/benchmark/startup/run.sh b/benchmark/startup/run.sh deleted file mode 100755 index 432c65d3fd5..00000000000 --- a/benchmark/startup/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -eu - -source "${UTILS_DIR}/update-java-version.sh" 17 -"${UTILS_DIR}/run-sirun-benchmarks.sh" "$@" diff --git a/benchmark/utils/k6.js b/benchmark/utils/k6.js deleted file mode 100644 index aa5147ae3c8..00000000000 --- a/benchmark/utils/k6.js +++ /dev/null @@ -1,21 +0,0 @@ -import {check} from 'k6'; - -export function checkResponse(response) { - const checks = Array.prototype.slice.call(arguments, 1); - const reduced = checks.reduce((result, current) => Object.assign(result, current), {}); - check(response, reduced); -} - -export const isOk = { - 'is OK': r => r.status === 200 -}; - -export const isRedirect = { - 'is redirect': r => r.status >= 300 && r.status < 400 -}; - -export function bodyContains(text) { - return { - 'body contains': r => r.body.includes(text) - } -} diff --git a/benchmark/utils/run-k6-load-test.sh b/benchmark/utils/run-k6-load-test.sh deleted file mode 100755 index d3415f54eef..00000000000 --- a/benchmark/utils/run-k6-load-test.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash -set -eu - -command=$1 -exit_code=0 - -cleanup() { - # run the exit command - bash -c "${command}" - exit $exit_code -} - -trap cleanup EXIT ERR INT TERM - -echo "Starting k6 load test, logs are recorded into ${LOGS_DIR}/k6.log..." - -# run the k6 benchmark and store the result as JSON -k6 run k6.js --out "json=${OUTPUT_DIR}/k6_$(date +%s).json" > "${LOGS_DIR}/k6.log" 2>&1 -exit_code=$? - -echo "k6 load test done !!!" diff --git a/benchmark/utils/run-on-server-ready.sh b/benchmark/utils/run-on-server-ready.sh deleted file mode 100755 index 2aad5aa9f70..00000000000 --- a/benchmark/utils/run-on-server-ready.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -set -eu - -url=$1 -command=$2 -# wait for an HTTP server to come up and runs the selected command -while true; do - if [[ $(curl -fso /dev/null -w "%{http_code}" "${url}") = 200 ]]; then - bash -c "${command}" - fi -done diff --git a/benchmark/utils/run-sirun-benchmarks.sh b/benchmark/utils/run-sirun-benchmarks.sh deleted file mode 100755 index c0bc732dcfa..00000000000 --- a/benchmark/utils/run-sirun-benchmarks.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -set -eu - -function message() { - echo "$(date +"%T"): $1" -} - -run_benchmark() { - local type=$1 - local app=$2 - if [[ -d "${app}" ]] && [[ -f "${app}/benchmark.json" ]]; then - - message "${type} benchmark: ${app} started" - cd "${app}" - - # create output folder for the test - export OUTPUT_DIR="${REPORTS_DIR}/${type}/${app}" - mkdir -p "${OUTPUT_DIR}" - - # substitute environment variables in the json file - benchmark=$(mktemp) - # shellcheck disable=SC2046 - # shellcheck disable=SC2016 - envsubst "$(printf '${%s} ' $(env | cut -d'=' -f1))" "${benchmark}" - - # run the sirun test - sirun "${benchmark}" &>"${OUTPUT_DIR}/${app}.json" - - message "${type} benchmark: ${app} finished" - - cd .. - fi -} - -if [ "$#" == '2' ]; then - run_benchmark "$@" -else - for folder in *; do - run_benchmark "$1" "${folder}" - done -fi diff --git a/benchmark/utils/update-java-version.sh b/benchmark/utils/update-java-version.sh deleted file mode 100755 index 3d76603e0ef..00000000000 --- a/benchmark/utils/update-java-version.sh +++ /dev/null @@ -1,5 +0,0 @@ -readonly target=$1 -readonly NEW_PATH=$(echo "${PATH}" | sed -e "s@/usr/lib/jvm/[[:digit:]]\+@/usr/lib/jvm/${target}@g") -export PATH="${NEW_PATH}" - -java --version From 698e89e682ebc53ce7df65c318005678955bf4d0 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 14 Jan 2026 14:56:28 -0500 Subject: [PATCH 22/23] Comment out local benchmarks --- .gitlab/benchmarks.yml | 144 ++++++++++++++++++------------------ .gitlab/macrobenchmarks.yml | 12 +-- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/.gitlab/benchmarks.yml b/.gitlab/benchmarks.yml index 28aef7ad58b..2d817d2df58 100644 --- a/.gitlab/benchmarks.yml +++ b/.gitlab/benchmarks.yml @@ -30,82 +30,82 @@ UPSTREAM_BRANCH: $CI_COMMIT_REF_NAME # The branch or tag name for which project is built. UPSTREAM_COMMIT_SHA: $CI_COMMIT_SHA # The commit revision the project is built for. -benchmarks-startup: - extends: .benchmarks - script: - - !reference [ .benchmarks, script ] - - ./steps/capture-hardware-software-info.sh - - ./steps/run-benchmarks.sh startup - - ./steps/analyze-results.sh startup +# benchmarks-startup: +# extends: .benchmarks +# script: +# - !reference [ .benchmarks, script ] +# - ./steps/capture-hardware-software-info.sh +# - ./steps/run-benchmarks.sh startup +# - ./steps/analyze-results.sh startup -benchmarks-load: - extends: .benchmarks - script: - - !reference [ .benchmarks, script ] - - ./steps/capture-hardware-software-info.sh - - ./steps/run-benchmarks.sh load - - ./steps/analyze-results.sh load +# benchmarks-load: +# extends: .benchmarks +# script: +# - !reference [ .benchmarks, script ] +# - ./steps/capture-hardware-software-info.sh +# - ./steps/run-benchmarks.sh load +# - ./steps/analyze-results.sh load -benchmarks-dacapo: - extends: .benchmarks - script: - - !reference [ .benchmarks, script ] - - ./steps/capture-hardware-software-info.sh - - ./steps/run-benchmarks.sh dacapo - - ./steps/analyze-results.sh dacapo +# benchmarks-dacapo: +# extends: .benchmarks +# script: +# - !reference [ .benchmarks, script ] +# - ./steps/capture-hardware-software-info.sh +# - ./steps/run-benchmarks.sh dacapo +# - ./steps/analyze-results.sh dacapo -benchmarks-post-results: - extends: .benchmarks - tags: ["arch:amd64"] - script: - - !reference [ .benchmarks, script ] - - ./steps/upload-results-to-s3.sh - - ./steps/post-pr-comment.sh - needs: - - job: benchmarks-startup - artifacts: true - - job: benchmarks-load - artifacts: true - - job: benchmarks-dacapo - artifacts: true +# benchmarks-post-results: +# extends: .benchmarks +# tags: ["arch:amd64"] +# script: +# - !reference [ .benchmarks, script ] +# - ./steps/upload-results-to-s3.sh +# - ./steps/post-pr-comment.sh +# needs: +# - job: benchmarks-startup +# artifacts: true +# - job: benchmarks-load +# artifacts: true +# - job: benchmarks-dacapo +# artifacts: true -check-big-regressions: - extends: .benchmarks - needs: - - job: benchmarks-startup - artifacts: true - - job: benchmarks-dacapo - artifacts: true - when: on_success - tags: ["arch:amd64"] - rules: - - if: '$POPULATE_CACHE' - when: never - - if: '$CI_COMMIT_BRANCH =~ /backport-pr-/' - when: never - - if: '$CI_COMMIT_BRANCH !~ /^(master|release\/)/' - when: on_success - - when: never - # ARTIFACTS_DIR /go/src/github.com/DataDog/apm-reliability/dd-trace-java/reports/ - # need to convert them - script: - - !reference [ .benchmarks, script ] - - | - for benchmarkType in startup dacapo; do - find "$ARTIFACTS_DIR/$benchmarkType" -name "benchmark-baseline.json" -o -name "benchmark-candidate.json" | while read file; do - relpath="${file#$ARTIFACTS_DIR/$benchmarkType/}" - prefix="${relpath%/benchmark-*}" # Remove the trailing /benchmark-(baseline|candidate).json - prefix="${prefix#./}" # Remove any leading ./ - prefix="${prefix//\//-}" # Replace / with - - case "$file" in - *benchmark-baseline.json) type="baseline" ;; - *benchmark-candidate.json) type="candidate" ;; - esac - echo "Moving $file to $ARTIFACTS_DIR/${type}-${prefix}.converted.json" - cp "$file" "$ARTIFACTS_DIR/${type}-${prefix}.converted.json" - done - done - - bp-runner $CI_PROJECT_DIR/.gitlab/benchmarks/bp-runner.fail-on-regression.yml --debug +# check-big-regressions: +# extends: .benchmarks +# needs: +# - job: benchmarks-startup +# artifacts: true +# - job: benchmarks-dacapo +# artifacts: true +# when: on_success +# tags: ["arch:amd64"] +# rules: +# - if: '$POPULATE_CACHE' +# when: never +# - if: '$CI_COMMIT_BRANCH =~ /backport-pr-/' +# when: never +# - if: '$CI_COMMIT_BRANCH !~ /^(master|release\/)/' +# when: on_success +# - when: never +# # ARTIFACTS_DIR /go/src/github.com/DataDog/apm-reliability/dd-trace-java/reports/ +# # need to convert them +# script: +# - !reference [ .benchmarks, script ] +# - | +# for benchmarkType in startup dacapo; do +# find "$ARTIFACTS_DIR/$benchmarkType" -name "benchmark-baseline.json" -o -name "benchmark-candidate.json" | while read file; do +# relpath="${file#$ARTIFACTS_DIR/$benchmarkType/}" +# prefix="${relpath%/benchmark-*}" # Remove the trailing /benchmark-(baseline|candidate).json +# prefix="${prefix#./}" # Remove any leading ./ +# prefix="${prefix//\//-}" # Replace / with - +# case "$file" in +# *benchmark-baseline.json) type="baseline" ;; +# *benchmark-candidate.json) type="candidate" ;; +# esac +# echo "Moving $file to $ARTIFACTS_DIR/${type}-${prefix}.converted.json" +# cp "$file" "$ARTIFACTS_DIR/${type}-${prefix}.converted.json" +# done +# done +# - bp-runner $CI_PROJECT_DIR/.gitlab/benchmarks/bp-runner.fail-on-regression.yml --debug .dsm-kafka-benchmarks: stage: benchmarks diff --git a/.gitlab/macrobenchmarks.yml b/.gitlab/macrobenchmarks.yml index b1c5681fb5b..151dcf496e4 100644 --- a/.gitlab/macrobenchmarks.yml +++ b/.gitlab/macrobenchmarks.yml @@ -92,12 +92,12 @@ check-slo-breaches: artifacts: true - job: otel-latest artifacts: true - - job: benchmarks-startup - artifacts: true - - job: benchmarks-load - artifacts: true - - job: benchmarks-dacapo - artifacts: true + # - job: benchmarks-startup + # artifacts: true + # - job: benchmarks-load + # artifacts: true + # - job: benchmarks-dacapo + # artifacts: true script: # macrobenchmarks are located here, files are already in "converted" format - export ARTIFACTS_DIR="$(pwd)/platform/artifacts/" && mkdir -p "${ARTIFACTS_DIR}" From c3597911d523f088ae48baf24b6b097699bcb48a Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 16 Jan 2026 15:49:38 -0500 Subject: [PATCH 23/23] Change stage names --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 706ca302dad..6c1bf1f5156 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,8 +19,8 @@ stages: - infrastructure - java-spring-petclinic-tests - java-spring-petclinic-macrobenchmarks - - java-spring-petclinic-microbenchmarks - - java-insecure-bank-microbenchmarks + - java-startup-microbenchmarks + - java-load-microbenchmarks - generate-slos - macrobenchmarks - tests