Skip to content

Commit 612ba54

Browse files
Merge branch 'master' into daniel.mohedano/impacted-tests-update
2 parents a738112 + 7d0a7e8 commit 612ba54

91 files changed

Lines changed: 1281 additions & 152 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/collect_results.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ function get_source_file () {
3535
fi
3636
done
3737
done < <(grep -rl "class $class" "$file_path")
38-
file_path="$common_root"
38+
file_path="/$common_root"
3939
fi
4040
}
4141

.github/workflows/analyze-changes.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
${{ runner.os }}-gradle-
4141
4242
- name: Initialize CodeQL
43-
uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
43+
uses: github/codeql-action/init@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
4444
with:
4545
languages: 'java'
4646
build-mode: 'manual'
@@ -57,7 +57,7 @@ jobs:
5757
--build-cache --parallel --stacktrace --no-daemon --max-workers=4
5858
5959
- name: Perform CodeQL Analysis and upload results to GitHub Security tab
60-
uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
60+
uses: github/codeql-action/analyze@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
6161

6262
trivy:
6363
name: Analyze changes with Trivy
@@ -109,7 +109,7 @@ jobs:
109109
ls -laR "./workspace/.trivy"
110110
111111
- name: Run Trivy security scanner
112-
uses: aquasecurity/trivy-action@6c175e9c4083a92bbca2f9724c8a5e33bc2d97a5 # v0.30.0
112+
uses: aquasecurity/trivy-action@76071ef0d7ec797419534a183b498b4d6366cf37 # v0.31.0
113113
with:
114114
scan-type: rootfs
115115
scan-ref: './workspace/.trivy/'
@@ -122,7 +122,7 @@ jobs:
122122
TRIVY_JAVA_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-java-db,public.ecr.aws/aquasecurity/trivy-java-db
123123

124124
- name: Upload Trivy scan results to GitHub Security tab
125-
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
125+
uses: github/codeql-action/upload-sarif@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
126126
if: always()
127127
with:
128128
sarif_file: 'trivy-results.sarif'

.github/workflows/check-ci-pipelines.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ jobs:
2323
runs-on: ubuntu-latest
2424
steps:
2525
- name: Run Ensure CI Success
26-
uses: DataDog/ensure-ci-success@727e7fe39ae2e1ce7ea336ec85a7369ab0731754
26+
uses: DataDog/ensure-ci-success@4a4b720e881d965254a9de2a4f14d1ec0c3d0d7c
2727
with:
2828
initial-delay-seconds: "500"
2929
max-retries: "60"
3030
ignored-name-patterns: |
31-
dd-gitlab/default-pipeline
32-
dd-gitlab/test_smoke: \[11, 2/2\]
33-
dd-gitlab/test_smoke: \[8, 2/2\]
31+
dd-gitlab/.*
32+
33+
# gitlab pipelines are reported via dd-gitlab/default-pipeline status, which can be used as a GH status check

.github/workflows/update-docker-build-image.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
echo "::notice::Using Docker build image tag: ${TAG}"
5353
- name: Update the Docker build image in GitLab CI config
5454
run: |
55-
sed -i 's|JAVA_BUILD_IMAGE_VERSION:.*|JAVA_BUILD_IMAGE_VERSION:"${{ steps.define-tag.outputs.tag }}"|' .gitlab-ci.yml
55+
sed -i '' -E 's|(BUILDER_IMAGE_VERSION_PREFIX:)[^#]*([#].*)|\1 "${{ steps.define-tag.outputs.tag }}-" \2|' .gitlab-ci.yml
5656
- name: Commit and push changes
5757
env:
5858
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

.gitlab-ci.yml

Lines changed: 70 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,18 @@ stages:
2020
- generate-signing-key
2121

2222
variables:
23+
# Gitlab runner features; see https://docs.gitlab.com/runner/configuration/feature-flags.html
24+
# Fold and time all script sections
25+
FF_SCRIPT_SECTIONS: 1
26+
2327
REGISTRY: 486234852809.dkr.ecr.us-east-1.amazonaws.com
2428
BUILD_JOB_NAME: "build"
2529
DEPENDENCY_CACHE_POLICY: pull
2630
BUILD_CACHE_POLICY: pull
2731
GRADLE_VERSION: "8.5" # must match gradle-wrapper.properties
2832
MAVEN_REPOSITORY_PROXY: "http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/maven-central/"
2933
GRADLE_PLUGIN_PROXY: "http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/gradle-plugin-portal-proxy/"
30-
JAVA_BUILD_IMAGE_VERSION: "v25.05"
34+
BUILDER_IMAGE_VERSION_PREFIX: "" # use either an empty string (e.g. "") for latest images or a version followed by a hyphen (e.g. "v25.05-")
3135
REPO_NOTIFICATION_CHANNEL: "#apm-java-escalations"
3236
DEFAULT_TEST_JVMS: /^(8|11|17|21)$/
3337
PROFILE_TESTS:
@@ -48,7 +52,6 @@ variables:
4852
- "21"
4953
- "semeru11"
5054
- "oracle8"
51-
- "ubuntu17"
5255
- "zulu8"
5356
- "semeru8"
5457
- "ibm8"
@@ -96,8 +99,14 @@ default:
9699
- ONE_INDEXED_NODE_INDEX=${CI_NODE_INDEX:-1}; export NORMALIZED_NODE_INDEX=$((ONE_INDEXED_NODE_INDEX - 1))
97100
- echo "NORMALIZED_NODE_TOTAL=${NORMALIZED_NODE_TOTAL}, NORMALIZED_NODE_INDEX=$NORMALIZED_NODE_INDEX"
98101

102+
.cgroup_info: &cgroup_info
103+
- source .gitlab/gitlab-utils.sh
104+
- gitlab_section_start "cgroup-info" "cgroup info"
105+
- .gitlab/cgroup-info.sh
106+
- gitlab_section_end "cgroup-info"
107+
99108
.gradle_build: &gradle_build
100-
image: ghcr.io/datadog/dd-trace-java-docker-build:${JAVA_BUILD_IMAGE_VERSION}-base
109+
image: ghcr.io/datadog/dd-trace-java-docker-build:${BUILDER_IMAGE_VERSION_PREFIX}base
101110
stage: build
102111
variables:
103112
MAVEN_OPTS: "-Xms64M -Xmx512M"
@@ -127,20 +136,31 @@ default:
127136
policy: $BUILD_CACHE_POLICY
128137
before_script:
129138
- source .gitlab/gitlab-utils.sh
130-
- export GRADLE_USER_HOME=`pwd`/.gradle
139+
- mkdir -p .gradle
140+
- export GRADLE_USER_HOME=$(pwd)/.gradle
141+
- |
142+
# Don't put jvm args here as it will be picked up by child gradle processes used in tests
143+
cat << EOF > $GRADLE_USER_HOME/gradle.properties
144+
mavenRepositoryProxy=$MAVEN_REPOSITORY_PROXY
145+
gradlePluginProxy=$GRADLE_PLUGIN_PROXY
146+
EOF
147+
- |
148+
# replace maven central part by MAVEN_REPOSITORY_PROXY in .mvn/wrapper/maven-wrapper.properties
149+
sed -i "s|https://repo.maven.apache.org/maven2/|$MAVEN_REPOSITORY_PROXY|g" .mvn/wrapper/maven-wrapper.properties
131150
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx$GRADLE_MEM -Xms$GRADLE_MEM -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
132-
- export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS -PmavenRepositoryProxy=$MAVEN_REPOSITORY_PROXY -PgradlePluginProxy=$GRADLE_PLUGIN_PROXY"
151+
- export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS"
133152
- *normalize_node_index
134153
# for weird reasons, gradle will always "chmod 700" the .gradle folder
135154
# with Gitlab caching, .gradle is always owned by root and thus gradle's chmod invocation fails
136155
# This dance is a hack to have .gradle owned by the Gitlab runner user
137156
- gitlab_section_start "gradle-dance" "Fix .gradle directory permissions"
138-
- mkdir -p .gradle
139157
- cp -r .gradle .gradle-copy
140158
- rm -rf .gradle
141159
- mv .gradle-copy .gradle
142160
- ls -la
143161
- gitlab_section_end "gradle-dance"
162+
after_script:
163+
- *cgroup_info
144164

145165
build:
146166
extends: .gradle_build
@@ -218,6 +238,38 @@ populate_dep_cache:
218238
# - GRADLE_TARGET: ":smokeTest"
219239
# CACHE_TYPE: "smoke"
220240

241+
publish-artifacts-to-s3:
242+
image: registry.ddbuild.io/images/mirror/amazon/aws-cli:2.4.29
243+
stage: publish
244+
needs: [ build ]
245+
script:
246+
- source upstream.env
247+
- export VERSION="${UPSTREAM_TRACER_VERSION%~*}" # remove ~githash from the end of version
248+
- aws s3 cp workspace/dd-java-agent/build/libs/dd-java-agent-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-java-agent.jar
249+
- aws s3 cp workspace/dd-trace-api/build/libs/dd-trace-api-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-trace-api.jar
250+
- aws s3 cp workspace/dd-trace-ot/build/libs/dd-trace-ot-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-trace-ot.jar
251+
- aws s3 cp workspace/dd-java-agent/build/libs/dd-java-agent-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-java-agent.jar
252+
- aws s3 cp workspace/dd-trace-api/build/libs/dd-trace-api-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-trace-api.jar
253+
- aws s3 cp workspace/dd-trace-ot/build/libs/dd-trace-ot-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-trace-ot.jar
254+
- |
255+
cat << EOF > links.json
256+
{
257+
"S3 Links": [
258+
{
259+
"external_link": {
260+
"label": "Public Link to dd-java-agent.jar",
261+
"url": "https://s3.us-east-1.amazonaws.com/dd-trace-java-builds/${CI_PIPELINE_ID}/dd-java-agent.jar"
262+
}
263+
}
264+
]
265+
}
266+
EOF
267+
artifacts:
268+
reports:
269+
annotations:
270+
- links.json
271+
272+
221273
spotless:
222274
extends: .gradle_build
223275
stage: tests
@@ -228,7 +280,7 @@ spotless:
228280

229281
test_published_artifacts:
230282
extends: .gradle_build
231-
image: ghcr.io/datadog/dd-trace-java-docker-build:${JAVA_BUILD_IMAGE_VERSION}-7 # Needs Java7 for some tests
283+
image: ghcr.io/datadog/dd-trace-java-docker-build:${BUILDER_IMAGE_VERSION_PREFIX}7 # Needs Java7 for some tests
232284
stage: tests
233285
needs: [ build ]
234286
variables:
@@ -244,6 +296,7 @@ test_published_artifacts:
244296
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx1G -Xms1G -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
245297
- ./gradlew check --info $GRADLE_ARGS
246298
after_script:
299+
- *cgroup_info
247300
- source .gitlab/gitlab-utils.sh
248301
- gitlab_section_start "collect-reports" "Collecting reports"
249302
- .circleci/collect_reports.sh
@@ -262,6 +315,7 @@ test_published_artifacts:
262315
script:
263316
- ./gradlew $GRADLE_TARGET -PskipTests -PrunBuildSrcTests -PskipSpotless -PtaskPartitionCount=$NORMALIZED_NODE_TOTAL -PtaskPartition=$NORMALIZED_NODE_INDEX $GRADLE_ARGS
264317
after_script:
318+
- *cgroup_info
265319
- source .gitlab/gitlab-utils.sh
266320
- gitlab_section_start "collect-reports" "Collecting reports"
267321
- .circleci/collect_reports.sh --destination ./check_reports --move
@@ -320,8 +374,9 @@ muzzle:
320374
- ./gradlew writeMuzzleTasksToFile $GRADLE_ARGS
321375
- sort workspace/build/muzzleTasks > sortedMuzzleTasks
322376
- split --number=l/$NORMALIZED_NODE_TOTAL --suffix-length=1 --numeric-suffixes sortedMuzzleTasks muzzleSplit
323-
- ./gradlew `cat muzzleSplit${NORMALIZED_NODE_INDEX} | xargs` $GRADLE_ARGS
377+
- ./gradlew $(cat muzzleSplit${NORMALIZED_NODE_INDEX} | xargs) $GRADLE_ARGS
324378
after_script:
379+
- *cgroup_info
325380
- source .gitlab/gitlab-utils.sh
326381
- gitlab_section_start "collect-reports" "Collecting reports"
327382
- .circleci/collect_reports.sh
@@ -342,6 +397,7 @@ muzzle-dep-report:
342397
- export SKIP_BUILDSCAN="true"
343398
- ./gradlew generateMuzzleReport muzzleInstrumentationReport $GRADLE_ARGS
344399
after_script:
400+
- *cgroup_info
345401
- .circleci/collect_muzzle_deps.sh
346402
artifacts:
347403
when: always
@@ -366,7 +422,7 @@ muzzle-dep-report:
366422

367423
.test_job:
368424
extends: .gradle_build
369-
image: ghcr.io/datadog/dd-trace-java-docker-build:$testJvm
425+
image: ghcr.io/datadog/dd-trace-java-docker-build:${BUILDER_IMAGE_VERSION_PREFIX}$testJvm
370426
tags: [ "docker-in-docker:amd64" ] # use docker-in-docker runner for testcontainers
371427
needs: [ build_tests ]
372428
stage: tests
@@ -387,7 +443,7 @@ muzzle-dep-report:
387443
when: on_success
388444
- if: $NON_DEFAULT_JVMS == "true"
389445
when: on_success
390-
- if: $CI_PIPELINE_SOURCE == "schedule"
446+
- if: $CI_COMMIT_BRANCH == "master"
391447
when: on_success
392448
script:
393449
- >
@@ -401,6 +457,7 @@ muzzle-dep-report:
401457
after_script:
402458
- *restore_pretest_env
403459
- *set_datadog_api_keys
460+
- *cgroup_info
404461
- source .gitlab/gitlab-utils.sh
405462
- gitlab_section_start "collect-reports" "Collecting reports"
406463
- .circleci/collect_reports.sh
@@ -553,20 +610,18 @@ test_smoke:
553610
GRADLE_PARAMS: "-PskipFlakyTests"
554611
CACHE_TYPE: "smoke"
555612
parallel:
556-
matrix: *test_matrix_2
613+
matrix: *test_matrix_4
557614

558615
test_ssi_smoke:
559616
extends: .test_job
560-
rules:
561-
- if: $CI_PIPELINE_SOURCE == "schedule"
562-
when: on_success
617+
rules: *master_only
563618
variables:
564619
GRADLE_TARGET: "stageMainDist :smokeTest"
565620
CACHE_TYPE: "smoke"
566621
DD_INJECT_FORCE: "true"
567622
DD_INJECTION_ENABLED: "tracer"
568623
parallel:
569-
matrix: *test_matrix_2
624+
matrix: *test_matrix_4
570625

571626
test_smoke_graalvm:
572627
extends: .test_job

.gitlab/benchmarks.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
timeout: 1h
55
tags: ["runner:apm-k8s-tweaked-metal"]
66
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:dd-trace-java-benchmarks
7-
needs: [ "build" ]
7+
needs: [ "build", "publish-artifacts-to-s3" ]
88
rules:
99
- if: '$POPULATE_CACHE'
1010
when: never
@@ -85,7 +85,7 @@ benchmarks-post-results:
8585
interruptible: true
8686
timeout: 1h
8787
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:java-dsm-kafka
88-
needs: [ "build" ]
88+
needs: [ "build", "publish-artifacts-to-s3"]
8989
script:
9090
- git clone --branch java/kafka-dsm-overhead https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform.git platform && cd platform
9191
- ./steps/run-benchmarks.sh
@@ -129,7 +129,7 @@ debugger-benchmarks:
129129
interruptible: true
130130
timeout: 1h
131131
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:java-debugger
132-
needs: ["build"]
132+
needs: ["build", "publish-artifacts-to-s3"]
133133
script:
134134
- export ARTIFACTS_DIR="$(pwd)/reports" && mkdir -p "${ARTIFACTS_DIR}"
135135
- git clone --branch java/debugger-benchmarks https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform.git /platform && cd /platform

.gitlab/cgroup-info.sh

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
#!/usr/bin/env bash
2+
3+
print_metric() {
4+
local label="$1"
5+
local raw_value="$2"
6+
local trimmed_value
7+
8+
# Use read -rd '' to trim leading/trailing IFS whitespace (space, tab, newline)
9+
read -rd '' trimmed_value <<< "$raw_value" || :
10+
11+
# Check if trimmed_value contains a newline character for formatting
12+
if [[ "$trimmed_value" == *$'\n'* ]]; then
13+
local indent=" "
14+
# Using a more robust way to handle potential leading/trailing newlines in raw_value for printf
15+
printf "%-35s :\n" "$label"
16+
printf "%s\n" "$indent${trimmed_value//$'\n'/$'\n'$indent}" # Indent and print the value on new lines
17+
else
18+
printf "%-35s : %s\n" "$label" "$trimmed_value"
19+
fi
20+
}
21+
22+
cat_file() {
23+
cat "$1" 2>/dev/null || echo 'not found'
24+
}
25+
26+
# Show cgroup memory usage
27+
print_metric "RAM memory" "$( (grep MemTotal /proc/meminfo | tr -s ' ' | cut -d ' ' -f 2) 2>/dev/null || echo 'not found')"
28+
29+
if [ -f /sys/fs/cgroup/cgroup.controllers ]; then
30+
# cgroup v2
31+
print_metric "cgroup v2 memory.peak" "$(cat_file /sys/fs/cgroup/memory.peak)"
32+
print_metric "cgroup v2 memory.max" "$(cat_file /sys/fs/cgroup/memory.max)"
33+
print_metric "cgroup v2 memory.high" "$(cat_file /sys/fs/cgroup/memory.high)"
34+
print_metric "cgroup v2 memory.current" "$(cat_file /sys/fs/cgroup/memory.current)"
35+
if [ -f /sys/fs/cgroup/memory.pressure ]; then
36+
print_metric "cgroup v2 memory.pressure" "$(cat_file /sys/fs/cgroup/memory.pressure)"
37+
fi
38+
if [ -f /sys/fs/cgroup/memory.events ]; then
39+
print_metric "cgroup v2 memory.events oom" "$( (grep -E '^oom\\s' /sys/fs/cgroup/memory.events | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
40+
print_metric "cgroup v2 memory.events oom_kill" "$( (grep -E '^oom_kill\\s' /sys/fs/cgroup/memory.events | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
41+
print_metric "cgroup v2 memory.events high" "$( (grep -E '^high\\s' /sys/fs/cgroup/memory.events | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
42+
fi
43+
44+
# CPU metrics
45+
print_metric "cgroup v2 cpu.max" "$(cat_file /sys/fs/cgroup/cpu.max)"
46+
print_metric "cgroup v2 cpu.nr_throttled" "$( (grep -E "^nr_throttled[[:space:]]+" /sys/fs/cgroup/cpu.stat | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
47+
print_metric "cgroup v2 cpu.throttled_usec" "$( (grep -E "^throttled_usec[[:space:]]+" /sys/fs/cgroup/cpu.stat | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
48+
print_metric "cgroup v2 cpu.usage_usec" "$( (grep -E "^usage_usec[[:space:]]+" /sys/fs/cgroup/cpu.stat | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
49+
if [ -f /sys/fs/cgroup/cpu.pressure ]; then # cpu.pressure might not exist on older kernels/setups
50+
print_metric "cgroup v2 cpu.pressure" "$(cat_file /sys/fs/cgroup/cpu.pressure)"
51+
fi
52+
53+
elif [ -d "/sys/fs/cgroup/memory" ]; then # Assuming if memory cgroup v1 exists, cpu might too
54+
# cgroup v1
55+
# Note: In cgroup v1, memory stats are typically found under /sys/fs/cgroup/memory/
56+
# The specific path might vary if inside a nested cgroup.
57+
# This script assumes it's running in a context where /sys/fs/cgroup/memory/ points to the relevant cgroup.
58+
print_metric "cgroup v1 memory.usage_in_bytes" "$(cat_file /sys/fs/cgroup/memory/memory.usage_in_bytes)"
59+
print_metric "cgroup v1 memory.limit_in_bytes" "$(cat_file /sys/fs/cgroup/memory/memory.limit_in_bytes)"
60+
print_metric "cgroup v1 memory.failcnt" "$(cat_file /sys/fs/cgroup/memory/memory.failcnt)"
61+
print_metric "cgroup v1 memory.max_usage_in_bytes" "$(cat_file /sys/fs/cgroup/memory/memory.max_usage_in_bytes)"
62+
63+
# Throttling stats from /sys/fs/cgroup/cpu/cpu.stat
64+
if [ -f /sys/fs/cgroup/cpu/cpu.stat ]; then
65+
print_metric "cgroup v1 cpu.nr_throttled" "$( (grep -E "^nr_throttled[[:space:]]+" /sys/fs/cgroup/cpu/cpu.stat | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
66+
print_metric "cgroup v1 cpu.throttled_time_ns" "$( (grep -E "^throttled_time[[:space:]]+" /sys/fs/cgroup/cpu/cpu.stat | cut -d' ' -f2) 2>/dev/null || echo 'not found')"
67+
else
68+
# Print not found for these specific metrics if cpu.stat is missing, to avoid ambiguity
69+
print_metric "cgroup v1 cpu.nr_throttled" "not found (cpu.stat)"
70+
print_metric "cgroup v1 cpu.throttled_time_ns" "not found (cpu.stat)"
71+
fi
72+
# CPU Quota settings from /sys/fs/cgroup/cpu/
73+
print_metric "cgroup v1 cpu.cfs_period_us" "$(cat_file /sys/fs/cgroup/cpu/cpu.cfs_period_us)"
74+
print_metric "cgroup v1 cpu.cfs_quota_us" "$(cat_file /sys/fs/cgroup/cpu/cpu.cfs_quota_us)"
75+
# CPU usage from /sys/fs/cgroup/cpuacct/ (usually same hierarchy as cpu)
76+
print_metric "cgroup v1 cpuacct.usage_ns" "$(cat_file /sys/fs/cgroup/cpuacct/cpuacct.usage)"
77+
print_metric "cgroup v1 cpuacct.usage_user_ns" "$(cat_file /sys/fs/cgroup/cpuacct/cpuacct.usage_user)"
78+
print_metric "cgroup v1 cpuacct.usage_sys_ns" "$(cat_file /sys/fs/cgroup/cpuacct/cpuacct.usage_sys)"
79+
80+
else
81+
printf "cgroup memory paths not found. Neither cgroup v2 controller file nor cgroup v1 memory directory detected.\n"
82+
fi
83+

.gitlab/one-pipeline.locked.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# DO NOT EDIT THIS FILE MANUALLY
22
# This file is auto-generated by automation.
33
include:
4-
- remote: https://gitlab-templates.ddbuild.io/libdatadog/one-pipeline/ca/05e116339b9780a138a474d0348e97debfca97f27bbc4ca489cf4e4c90d9cc94/one-pipeline.yml
4+
- remote: https://gitlab-templates.ddbuild.io/libdatadog/one-pipeline/ca/f2050f53c1f5aed62a24e6b406c746e7d593230ce02b5d56d2a2296db763ebf4/one-pipeline.yml

0 commit comments

Comments
 (0)