diff --git a/.circleci/config.continue.yml.j2 b/.circleci/config.continue.yml.j2 index ca4d78856e7..87fd6886ad1 100644 --- a/.circleci/config.continue.yml.j2 +++ b/.circleci/config.continue.yml.j2 @@ -179,9 +179,14 @@ commands: display_memory_usage: steps: - run: - name: Max Memory Used + name: Runner Memory Usage # The file does not seem to exist when DLC is disabled - command: cat /sys/fs/cgroup/memory/memory.max_usage_in_bytes || true + command: | + # Show cgroupv2 memory usage + printf "cgroup memory.peak: $(cat /sys/fs/cgroup/memory.peak 2>/dev/null || echo 'not found')%s\n" + printf "cgroup memory.max : $(cat /sys/fs/cgroup/memory.max 2>/dev/null || echo 'not found')%s\n" + printf "cgroup memory.high: $(cat /sys/fs/cgroup/memory.high 2>/dev/null || echo 'not found')%s\n" + printf "ram memory : $(grep MemTotal /proc/meminfo | tr -s ' ' | cut -d ' ' -f 2)%s\n" when: always @@ -282,9 +287,11 @@ commands: jobs: build: <<: *defaults - resource_class: xlarge parameters: + resourceClass: + type: string + default: xlarge gradleTarget: type: string cacheType: @@ -296,6 +303,7 @@ jobs: type: string default: ".*" + resource_class: << parameters.resourceClass >> steps: - setup_code @@ -304,15 +312,15 @@ jobs: - restore_dependency_cache: cacheType: << parameters.cacheType >> - + - run: name: Build Project command: >- {% if is_nightly %} - ./gradlew resolveAndLockAll --write-locks && + ./gradlew resolveAndLockAll --write-locks --no-daemon && {% endif %} MAVEN_OPTS="-Xms64M -Xmx256M" - GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx2560M -Xms2560M -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'" + GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx2560M -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'" ./gradlew clean << parameters.gradleTarget >> -PskipTests @@ -384,6 +392,9 @@ jobs: <<: *defaults parameters: + resourceClass: + type: string + default: medium+ parallelism: type: integer default: 1 @@ -395,7 +406,7 @@ jobs: type: string default: ".*" - resource_class: medium+ + resource_class: << parameters.resourceClass >> parallelism: << parameters.parallelism >> @@ -445,6 +456,8 @@ jobs: when: on_fail command: .circleci/cancel_workflow.sh + - display_memory_usage + build_clean_cache: <<: *defaults @@ -493,13 +506,13 @@ jobs: tests: &tests <<: *defaults - # since tests use test containers, they will use a Linux VM / Remote Docker executor, so there is no medium+ size - resource_class: large - docker: - image: << pipeline.parameters.docker_image >>:{{ docker_image_prefix }}<< parameters.testJvm >> parameters: + resourceClass: + type: string + default: large environment: type: string default: "" @@ -535,6 +548,9 @@ jobs: cacheType: type: string + # since tests use test containers, they will use a Linux VM / Remote Docker executor, so there is no medium+ size + resource_class: << parameters.resourceClass >> + parallelism: << parameters.parallelism >> steps: @@ -652,13 +668,18 @@ jobs: exit 1 fi + # TODO: merge xlarge_tests and tests? or rename this? xlarge_tests: <<: *tests docker: + # The first image listed in your configuration for a job is referred to as the primary container image + # and this is where all steps in the job will run. Secondary containers can also be specified to run + # alongside for running services, such as, databases. - image: << pipeline.parameters.docker_image >>:{{ docker_image_prefix }}<< parameters.testJvm >> environment: - CI_USE_TEST_AGENT=true + - image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent:v1.11.0 environment: - LOG_LEVEL=DEBUG @@ -667,8 +688,6 @@ jobs: - DD_POOL_TRACE_CHECK_FAILURES=true - DD_DISABLE_ERROR_RESPONSES=true - ENABLED_CHECKS=trace_content_length,trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service,trace_dd_service - # TODO: merge xlarge_tests and tests? or rename this? - resource_class: large # The only way to do fan-in in CircleCI seems to have a proper job, so let's have one that @@ -969,15 +988,18 @@ build_test_jobs: &build_test_jobs cacheType: base - build: name: build_inst + resourceClass: 2xlarge gradleTarget: :instrumentationTest cacheType: inst triggeredBy: *instrumentation_modules - build: name: build_latestdep + resourceClass: 2xlarge gradleTarget: :instrumentationLatestDepTest cacheType: latestdep - build: name: build_smoke + resourceClass: 2xlarge gradleTarget: :smokeTest cacheType: smoke - build: @@ -1001,6 +1023,7 @@ build_test_jobs: &build_test_jobs requires: - ok_to_test name: check_base + resourceClass: large gradleTarget: ":baseCheck" cacheType: base @@ -1008,6 +1031,7 @@ build_test_jobs: &build_test_jobs requires: - ok_to_test name: check_inst + resourceClass: 2xlarge parallelism: 5 gradleTarget: ":instrumentationCheck" cacheType: inst @@ -1017,6 +1041,7 @@ build_test_jobs: &build_test_jobs requires: - ok_to_test name: check_smoke + resourceClass: large gradleTarget: ":smokeCheck" cacheType: smoke @@ -1075,6 +1100,7 @@ build_test_jobs: &build_test_jobs requires: - ok_to_test name: z_test_<< matrix.testJvm >>_inst + resourceClass: xlarge gradleTarget: ":instrumentationTest" gradleParameters: "-PskipFlakyTests" triggeredBy: *instrumentation_modules @@ -1103,6 +1129,7 @@ build_test_jobs: &build_test_jobs - ok_to_test - build_latestdep name: test_8_inst_latest + resourceClass: xlarge gradleTarget: ":instrumentationLatestDepTest" gradleParameters: "-PskipFlakyTests" triggeredBy: *instrumentation_modules @@ -1117,6 +1144,7 @@ build_test_jobs: &build_test_jobs - ok_to_test - build_latestdep name: test_17_inst_latest + resourceClass: xlarge gradleTarget: ":instrumentationLatestDepTest" gradleParameters: "-PskipFlakyTests" triggeredBy: *instrumentation_modules @@ -1304,6 +1332,7 @@ build_test_jobs: &build_test_jobs requires: - ok_to_test name: z_test_8_smoke + resourceClass: xlarge gradleTarget: "stageMainDist :smokeTest" gradleParameters: "-PskipFlakyTests" stage: smoke