Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added nightly/manual CI jobs for dd-trace-go macrobenchmarks #2106

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitlab-ci.yml
@@ -1,5 +1,6 @@
stages:
- benchmarks
- macrobenchmarks
- test-apps

variables:
Expand All @@ -12,4 +13,5 @@ variables:

include:
- ".gitlab/benchmarks.yml"
- ".gitlab/macrobenchmarks.yml"
- ".gitlab/test-apps.yml"
275 changes: 275 additions & 0 deletions .gitlab/macrobenchmarks.yml
@@ -0,0 +1,275 @@
variables:
BENCHMARKS_CI_IMAGE: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:dd-trace-go-macrobenchmarks

.dd-trace-go-macrobenchmarks:
stage: macrobenchmarks
tags: ["runner:apm-k8s-same-cpu"]
timeout: 1h
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: always
- when: manual
# If you have a problem with Gitlab cache, see Troubleshooting section in Benchmarking Platform docs
image: $BENCHMARKS_CI_IMAGE
script:
- export ARTIFACTS_DIR="$(pwd)/reports" && (mkdir "${ARTIFACTS_DIR}" || :)
- export DD_API_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-go.dd_api_key --with-decryption --query "Parameter.Value" --out text)
- git clone --branch igoragoli/migrate_go_macrobenchmark_from_ktg https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform /platform && cd /platform
- ./steps/capture-hardware-software-info.sh
- ./steps/run-benchmarks.sh
- "./steps/upload-results-to-s3.sh || :"
artifacts:
name: "reports"
paths:
- reports/
expire_in: 3 months
variables:
FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: "true" # Important tweak for stability of benchmarks
K6_RUN_ID_PREFIX: ci
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-go
# Workaround: Currently we're not running the benchmarks on every PR, but GitHub still shows them as pending.
# By marking the benchmarks as allow_failure, this should go away. (This workaround should be removed once the
# benchmarks get changed to run on every PR)
allow_failure: true

go118-baseline-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go118-baseline
ENABLE_DDPROF: "false"
ENABLE_TRACING: "false"
ENABLE_PROFILING: "false"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.18"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go118-only-trace-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go118-only-trace
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "false"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.18"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go118-only-profile-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go118-only-profile
ENABLE_DDPROF: "false"
ENABLE_TRACING: "false"
ENABLE_PROFILING: "true"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.18"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go118-profile-trace-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go118-profile-trace
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "true"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.18"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go118-trace-asm-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go118-trace-asm
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "false"
ENABLE_APPSEC: "true"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.18"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go118-profile-trace-asm-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go118-profile-trace-asm
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "true"
ENABLE_APPSEC: "true"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.18"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go119-baseline-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go119-baseline
ENABLE_DDPROF: "false"
ENABLE_TRACING: "false"
ENABLE_PROFILING: "false"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.19"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go119-only-trace-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go119-only-trace
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "false"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.19"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go119-only-profile-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go119-only-profile
ENABLE_DDPROF: "false"
ENABLE_TRACING: "false"
ENABLE_PROFILING: "true"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.19"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go119-profile-trace-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go119-profile-trace
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "true"
ENABLE_APPSEC: "false"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.19"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go119-trace-asm-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go119-trace-asm
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "false"
ENABLE_APPSEC: "true"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.19"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4
go119-profile-trace-asm-macrobenchmark:
extends: .dd-trace-go-macrobenchmarks
variables:
K6_RUN_ID_PREFIX: ci
DD_BENCHMARKS_CONFIGURATION: go119-profile-trace-asm
ENABLE_DDPROF: "false"
ENABLE_TRACING: "true"
ENABLE_PROFILING: "true"
ENABLE_APPSEC: "true"
DD_INSTRUMENTATION_TELEMETRY_ENABLED: "true"
DD_INSTRUMENTATION_TELEMETRY_DEBUG: "true"
DD_PROFILING_EXECUTION_TRACE_ENABLED: "false"
GO_VERSION: "1.19"
GO_PROF_APP_BUILD_VARIANT: candidate
DD_TRACE_GO_VERSION: latest
K6_RATE_: 15
K6_DURATION_: 20m
K6_GRACEFUL_STOP_: 1m
K6_PRE_ALLOCATED_VUS_: 4
K6_MAX_VUS_: 4