Skip to content

Commit c169d35

Browse files
committed
Add continuous benchmarking pipeline
1 parent 5336a60 commit c169d35

File tree

1 file changed

+72
-1
lines changed

1 file changed

+72
-1
lines changed

.gitlab/benchmarks.yml

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ variables:
33
# The Dockerfile to this image is located at:
44
# https://github.com/DataDog/benchmarking-platform/tree/dd-trace-php
55

6-
benchmarks:
6+
microbenchmarks:
77
stage: benchmarks
88
rules:
99
- changes:
@@ -39,3 +39,74 @@ benchmarks:
3939

4040
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-php
4141
FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: "true"
42+
43+
wait_for_circle_ci_release:
44+
stage: benchmarks
45+
rules:
46+
- if: $CI_COMMIT_REF_NAME == "master"
47+
when: always
48+
- when: manual
49+
tags: [ "arch:amd64" ]
50+
interruptible: true
51+
timeout: 45m
52+
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:php_laravel-realworld
53+
script:
54+
- git clone --branch php/laravel-realworld https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform platform && cd platform
55+
- ./steps/wait-for-circle-ci-release.sh
56+
allow_failure: true
57+
58+
.macrobenchmarks:
59+
stage: benchmarks
60+
rules:
61+
- if: $CI_COMMIT_REF_NAME == "master"
62+
when: always
63+
- when: manual
64+
tags: ["runner:apm-k8s-same-cpu"]
65+
needs: ["wait_for_circle_ci_release"]
66+
interruptible: true
67+
timeout: 1h
68+
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:php_laravel-realworld
69+
script:
70+
- git clone --branch php/laravel-realworld https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform platform && cd platform
71+
- bp-runner bp-runner.yml --debug
72+
artifacts:
73+
name: "artifacts"
74+
when: always
75+
paths:
76+
- artifacts/
77+
expire_in: 3 months
78+
variables:
79+
FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: "true"
80+
81+
K6_OPTIONS_NORMAL_OPERATION_RATE: 30
82+
K6_OPTIONS_NORMAL_OPERATION_DURATION: 10m
83+
K6_OPTIONS_NORMAL_OPERATION_GRACEFUL_STOP: 1m
84+
K6_OPTIONS_NORMAL_OPERATION_PRE_ALLOCATED_VUS: 4
85+
K6_OPTIONS_NORMAL_OPERATION_MAX_VUS: 4
86+
87+
K6_OPTIONS_HIGH_LOAD_RATE: 200
88+
K6_OPTIONS_HIGH_LOAD_DURATION: 5m
89+
K6_OPTIONS_HIGH_LOAD_GRACEFUL_STOP: 30s
90+
K6_OPTIONS_HIGH_LOAD_PRE_ALLOCATED_VUS: 4
91+
K6_OPTIONS_HIGH_LOAD_MAX_VUS: 4
92+
93+
# Workaround: Currently we're not running the benchmarks on every PR, but GitHub still shows them as pending.
94+
# By marking the benchmarks as allow_failure, this should go away. (This workaround should be removed once the
95+
# benchmarks get changed to run on every PR)
96+
allow_failure: true
97+
98+
macrobenchmarks:
99+
extends: .macrobenchmarks
100+
parallel:
101+
matrix:
102+
- DD_BENCHMARKS_CONFIGURATION: baseline
103+
PHP_VERSION: "8.1"
104+
105+
- DD_BENCHMARKS_CONFIGURATION: baseline
106+
PHP_VERSION: "7.4"
107+
108+
- DD_BENCHMARKS_CONFIGURATION: only-tracing
109+
PHP_VERSION: "8.1"
110+
111+
- DD_BENCHMARKS_CONFIGURATION: only-tracing
112+
PHP_VERSION: "7.4"

0 commit comments

Comments
 (0)