From f58b495860db5a7ba9ee38006188000b4eb9d3f8 Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Wed, 15 Apr 2026 15:17:07 +0200 Subject: [PATCH 1/2] feat(benchmarks): add PHP parallel benchmarks to benchmarks pipeline (LANGPLAT-883) --- .gitlab/benchmarks.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.gitlab/benchmarks.yml b/.gitlab/benchmarks.yml index cf59e166688..26d096a85da 100644 --- a/.gitlab/benchmarks.yml +++ b/.gitlab/benchmarks.yml @@ -258,3 +258,21 @@ notify-slo-breaches: rules: *pre-release-performance-quality-gates-rules variables: CHANNEL: "guild-dd-php" + +apm-sdk-benchmarks: + stage: benchmarks + when: manual + allow_failure: true + # No `needs:` here — unlike dd-trace-py which uploads per-pipeline wheels to + # S3 (keyed by CI_PIPELINE_ID), dd-trace-php publishes to S3 keyed by VERSION + # string only. The apm-sdks-benchmarks fetch script downloads the latest + # GitHub release instead of a specific pipeline build. + trigger: + project: DataDog/apm-reliability/apm-sdks-benchmarks + branch: main + variables: + # PARENT_PIPELINE_ID (not CI_PIPELINE_ID): benchmarks.yml runs as a child + # pipeline, so CI_PIPELINE_ID here is the child pipeline ID. PARENT_PIPELINE_ID + # is explicitly forwarded from the parent pipeline in .gitlab-ci.yml and + # identifies the main dd-trace-php pipeline that triggered this run. + TARGET_REF: $PARENT_PIPELINE_ID From bea5e8e86d960ea9236b774658da02cdfaea9150 Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Thu, 16 Apr 2026 15:39:21 +0200 Subject: [PATCH 2/2] feat(benchmarks): add PHP parallel benchmarks via apm-sdks-benchmarks include Switch from a trigger job to a GitLab CI include, pulling the PHP Laravel Realworld parallel benchmark jobs directly into this pipeline. Adds two new stages: php-laravel-realworld-parallel and php-laravel-realworld-parallel-slo. --- .gitlab/benchmarks.yml | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/.gitlab/benchmarks.yml b/.gitlab/benchmarks.yml index 26d096a85da..3d43d943bc4 100644 --- a/.gitlab/benchmarks.yml +++ b/.gitlab/benchmarks.yml @@ -3,6 +3,13 @@ include: file: 'images/templates/gitlab/check-slo-breaches.template.yml' - project: 'DataDog/benchmarking-platform-tools' file: 'images/templates/gitlab/notify-slo-breaches.template.yml' + - project: 'DataDog/apm-reliability/apm-sdks-benchmarks' + file: '.gitlab/ci-php-laravel-realworld-parallel.yml' + ref: 'main' + +stages: + - php-laravel-realworld-parallel + - php-laravel-realworld-parallel-slo variables: BASE_CI_IMAGE: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:dd-trace-php-82-dev @@ -258,21 +265,3 @@ notify-slo-breaches: rules: *pre-release-performance-quality-gates-rules variables: CHANNEL: "guild-dd-php" - -apm-sdk-benchmarks: - stage: benchmarks - when: manual - allow_failure: true - # No `needs:` here — unlike dd-trace-py which uploads per-pipeline wheels to - # S3 (keyed by CI_PIPELINE_ID), dd-trace-php publishes to S3 keyed by VERSION - # string only. The apm-sdks-benchmarks fetch script downloads the latest - # GitHub release instead of a specific pipeline build. - trigger: - project: DataDog/apm-reliability/apm-sdks-benchmarks - branch: main - variables: - # PARENT_PIPELINE_ID (not CI_PIPELINE_ID): benchmarks.yml runs as a child - # pipeline, so CI_PIPELINE_ID here is the child pipeline ID. PARENT_PIPELINE_ID - # is explicitly forwarded from the parent pipeline in .gitlab-ci.yml and - # identifies the main dd-trace-php pipeline that triggered this run. - TARGET_REF: $PARENT_PIPELINE_ID