diff --git a/.gitlab/benchmarks.yml b/.gitlab/benchmarks.yml new file mode 100644 index 00000000..6b64c3f0 --- /dev/null +++ b/.gitlab/benchmarks.yml @@ -0,0 +1,20 @@ +# Triggers a build within the Datadog infrastructure in the ddprof-build repository +trigger_internal_build: + rules: + - if: $CI_COMMIT_BRANCH =~ /release\/.*/ + when: never + - when: always + allow_failure: false + variables: + DOWNSTREAM_BRANCH: "main" + DDPROF_DEFAULT_BRANCH: "main" + DDPROF_COMMIT_BRANCH: ${CI_COMMIT_BRANCH} + DDROF_COMMIT_SHA: ${CI_COMMIT_SHA} + DPROF_SHORT_COMMIT_SHA: ${CI_COMMIT_SHORT_SHA} + DDPROF_COMMIT_TAG: ${CI_COMMIT_TAG} + trigger: + project: DataDog/apm-reliability/async-profiler-build + strategy: depend + branch: $DOWNSTREAM_BRANCH + forward: + pipeline_variables: true \ No newline at end of file diff --git a/.gitlab/macrobenchmarks.yml b/.gitlab/macrobenchmarks.yml new file mode 100644 index 00000000..edcf39e4 --- /dev/null +++ b/.gitlab/macrobenchmarks.yml @@ -0,0 +1,66 @@ +.macrobenchmarks: + stage: macrobenchmarks + rules: + - if: $POPULATE_CACHE + when: never + - if: ($NIGHTLY_BENCHMARKS || $CI_PIPELINE_SOURCE != "schedule") && $CI_COMMIT_REF_NAME == "master" + when: always + - when: manual + allow_failure: true + tags: ["runner:apm-k8s-same-cpu"] + needs: ["build"] + interruptible: true + timeout: 1h + image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:dd-trace-java-petclinic + script: + ## todo: I need to retrieve profiling lib + - git clone --branch java/petclinic https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform platform && cd platform + - ./steps/run-benchmarks.sh + artifacts: + name: "artifacts" + when: always + paths: + - platform/artifacts/ + expire_in: 3 months + variables: + FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: "true" + + K6_OPTIONS_WARMUP_RATE: 2000 + K6_OPTIONS_WARMUP_DURATION: 5m + K6_OPTIONS_WARMUP_GRACEFUL_STOP: 10s + K6_OPTIONS_WARMUP_PRE_ALLOCATED_VUS: 4 + K6_OPTIONS_WARMUP_MAX_VUS: 4 + + K6_OPTIONS_NORMAL_OPERATION_RATE: 1500 + K6_OPTIONS_NORMAL_OPERATION_DURATION: 10m + K6_OPTIONS_NORMAL_OPERATION_GRACEFUL_STOP: 10s + K6_OPTIONS_NORMAL_OPERATION_PRE_ALLOCATED_VUS: 4 + K6_OPTIONS_NORMAL_OPERATION_MAX_VUS: 4 + + K6_OPTIONS_HIGH_LOAD_RATE: 4000 + K6_OPTIONS_HIGH_LOAD_DURATION: 5m + K6_OPTIONS_HIGH_LOAD_GRACEFUL_STOP: 10s + K6_OPTIONS_HIGH_LOAD_PRE_ALLOCATED_VUS: 4 + K6_OPTIONS_HIGH_LOAD_MAX_VUS: 4 + retry: + max: 2 + when: + - unknown_failure + - data_integrity_failure + - runner_system_failure + - scheduler_failure + - api_failure + +baseline: + extends: .macrobenchmarks + variables: + BP_BENCHMARKS_CONFIGURATION: baseline + TRACER_OPTS: -Ddd.service=bp-java-petclinic + JAVA_OPTS: -javaagent:/app/memcheck/stability-testing-memwatch.jar -Xmx128M + +tracing-profiling: + extends: .macrobenchmarks + variables: + BP_BENCHMARKS_CONFIGURATION: tracing-profiling + TRACER_OPTS: -javaagent:/app/dd-java-agent.jar -Ddd.env=${BP_BENCHMARKS_CONFIGURATION} -Ddd.service=bp-java-petclinic + JAVA_OPTS: -javaagent:/app/memcheck/stability-testing-memwatch.jar -Xmx128M