From d84be98217a23356b39b2fe90bf5cd2d653b86bd Mon Sep 17 00:00:00 2001 From: iunanua Date: Thu, 16 Apr 2026 18:19:47 +0200 Subject: [PATCH 1/7] Generate a dev version and install prod version from crates.io --- utils/build/docker/rust/install_ddtrace.sh | 31 ++++++++++++++--- utils/build/docker/rust/parametric/Cargo.lock | 34 +++++++++---------- utils/build/docker/rust/parametric/Cargo.toml | 2 +- utils/build/docker/rust/parametric/Dockerfile | 4 ++- 4 files changed, 48 insertions(+), 23 deletions(-) diff --git a/utils/build/docker/rust/install_ddtrace.sh b/utils/build/docker/rust/install_ddtrace.sh index 996df4bd6fc..54819492e99 100755 --- a/utils/build/docker/rust/install_ddtrace.sh +++ b/utils/build/docker/rust/install_ddtrace.sh @@ -16,10 +16,33 @@ fi if [ -e /binaries/dd-trace-rs ]; then echo "install from /binaries/datadog-opentelemetry with metrics-http and metrics-grpc features" - cargo add --path /binaries/dd-trace-rs/datadog-opentelemetry --features metrics-http,metrics-grpc + + cd /binaries/dd-trace-rs + + # get the version from the cargo.lock + current_version=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[] | select(.name == "datadog-opentelemetry") | .version') + + # bump minor (middle segment); reset patch to 0 — expects MAJOR.MINOR.PATCH + IFS=. read -r major minor patch <<<"$current_version" + if [[ -z "${minor:-}" || -z "${patch:-}" ]]; then + echo "expected semver MAJOR.MINOR.PATCH, got: $current_version" >&2 + exit 1 + fi + new_version="${major}.$((minor + 1)).0" + + if [ -e /binaries/dd-trace-rs/.git ]; then + dev_version="${new_version}-dev+$(git -C /binaries/dd-trace-rs rev-parse HEAD)" + else + dev_version="${new_version}-dev" + fi + + echo "generating dev version $dev_version from $current_version" + cargo release version -p datadog-opentelemetry "$dev_version" -x --no-confirm + + cd /usr/app + cargo add --path /binaries/dd-trace-rs/datadog-opentelemetry --features metrics-http,metrics-grpc,logs-http,logs-grpc else - # TODO: add lastest release from crates.io - echo "install from --git $REPO_URL --tag $PROD_TAG with metrics-http and metrics-grpc features" - cargo add --git "$REPO_URL" --tag "$PROD_TAG" datadog-opentelemetry --features metrics-http,metrics-grpc + echo "install from crates.io with metrics-http and metrics-grpc features" + cargo add datadog-opentelemetry --features metrics-http,metrics-grpc,logs-http,logs-grpc fi diff --git a/utils/build/docker/rust/parametric/Cargo.lock b/utils/build/docker/rust/parametric/Cargo.lock index 58fa41c0919..4e669a3942d 100644 --- a/utils/build/docker/rust/parametric/Cargo.lock +++ b/utils/build/docker/rust/parametric/Cargo.lock @@ -328,7 +328,7 @@ dependencies = [ [[package]] name = "datadog-opentelemetry" -version = "0.3.1" +version = "0.3.2" dependencies = [ "anyhow", "arc-swap", @@ -950,9 +950,9 @@ checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libdd-common" -version = "2.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e5593b91f61eee38cddc9fdcbc99c9fad697b5d925e226bd500d86b4295380b" +checksum = "c779949577250487179d904508f18750070e9a01eb58dce378409ec5fa066f3b" dependencies = [ "anyhow", "bytes", @@ -981,9 +981,9 @@ dependencies = [ [[package]] name = "libdd-data-pipeline" -version = "2.0.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2704d0fcc9281cc844a63d15188aecc84d45725b77e489cc04ad30959b2000" +checksum = "358411451d99011f13c7628acee25dc144f2bbeade87acf10fa7d5ffce1053dc" dependencies = [ "anyhow", "arc-swap", @@ -1020,9 +1020,9 @@ dependencies = [ [[package]] name = "libdd-dogstatsd-client" -version = "1.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a457381568835e7c3646f3f2d44ff4f3ebcda44d87332e2fdaeb20e6a8365dcd" +checksum = "e6f8eca39d1e2ef6267cf77fc51eb7ebc7d4f44827e150b4d317c29d8c33bf87" dependencies = [ "anyhow", "cadence", @@ -1034,9 +1034,9 @@ dependencies = [ [[package]] name = "libdd-telemetry" -version = "3.0.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7bb67a865fe7e8a16aacc7bc43a805fb3b907c713e0b212e7a7abe6e0735cb" +checksum = "78774ffce79da677602829d7fe27468283e5349010e974257233edf4cd12b783" dependencies = [ "anyhow", "base64 0.22.1", @@ -1068,9 +1068,9 @@ dependencies = [ [[package]] name = "libdd-trace-normalization" -version = "1.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a737b43f01d6a0cbd1399c5b89863a5d2663fe7b19bf1d3ea28048abab396353" +checksum = "ab12e095f3589d02ceed76556e7aa8a1b5bc928a900e143b624e2331294e54b5" dependencies = [ "anyhow", "libdd-trace-protobuf", @@ -1078,9 +1078,9 @@ dependencies = [ [[package]] name = "libdd-trace-protobuf" -version = "2.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0a54921e03174f3ff7ad8506ff9e13637e546ef0b1f369ae463eacebda8e88" +checksum = "1809242895edc53ac51a21287829f42474e749dbc222ea7f414cb3f0d1f91d4e" dependencies = [ "prost", "serde", @@ -1089,9 +1089,9 @@ dependencies = [ [[package]] name = "libdd-trace-stats" -version = "1.0.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea447dc8a5d84c6b5eb6ea877c4fea4149fd29f6b45fcfc5cfd7edf82a18e056" +checksum = "d92b882863f7c531d51e73f7bc5930c705e47829332128d9bdcad0fea3b2b942" dependencies = [ "hashbrown 0.15.5", "libdd-ddsketch", @@ -1101,9 +1101,9 @@ dependencies = [ [[package]] name = "libdd-trace-utils" -version = "2.0.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a59e9a0a41bb17d06fb85a70db3be04e53ddfb8f61a593939bb9677729214db" +checksum = "870506e9bb79c93ce5bbfe9d715c53c7ea393a177c7299f0bf43745c0adea0c7" dependencies = [ "anyhow", "bytes", diff --git a/utils/build/docker/rust/parametric/Cargo.toml b/utils/build/docker/rust/parametric/Cargo.toml index f13ea6d79ab..ccbd99e3e1d 100644 --- a/utils/build/docker/rust/parametric/Cargo.toml +++ b/utils/build/docker/rust/parametric/Cargo.toml @@ -35,4 +35,4 @@ opentelemetry-stdout = { version = "0.31.0", features = ["trace", "logs"] } opentelemetry-semantic-conventions = { version = "0.31.0" } -datadog-opentelemetry = { path = "../../../../../binaries/dd-trace-rs/datadog-opentelemetry", features = ["logs-grpc", "logs-http"] } +datadog-opentelemetry = { path = "../../../../../binaries/dd-trace-rs/datadog-opentelemetry", features = ["metrics-grpc", "metrics-http", "logs-grpc", "logs-http"] } diff --git a/utils/build/docker/rust/parametric/Dockerfile b/utils/build/docker/rust/parametric/Dockerfile index f126cfe961e..9ea3a2da312 100644 --- a/utils/build/docker/rust/parametric/Dockerfile +++ b/utils/build/docker/rust/parametric/Dockerfile @@ -5,7 +5,9 @@ COPY utils/build/docker/rust/parametric/../install_ddtrace.sh ./binaries/ /binar COPY utils/build/docker/rust/parametric/Cargo.toml /usr/app/ COPY utils/build/docker/rust/parametric/src /usr/app/ -RUN apt-get update && apt-get install -y --no-install-recommends openssh-client git +RUN apt-get update && apt-get install -y --no-install-recommends openssh-client git jq build-essential perl libssl-dev + +RUN cargo install cargo-release@0.25.18 --locked RUN /binaries/install_ddtrace.sh From 4a47f2ecf84805aba1d482b7f5e0fac4a33567fe Mon Sep 17 00:00:00 2001 From: iunanua Date: Fri, 17 Apr 2026 09:10:28 +0200 Subject: [PATCH 2/7] clean up --- utils/build/docker/rust/install_ddtrace.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/utils/build/docker/rust/install_ddtrace.sh b/utils/build/docker/rust/install_ddtrace.sh index 54819492e99..413dfd80249 100755 --- a/utils/build/docker/rust/install_ddtrace.sh +++ b/utils/build/docker/rust/install_ddtrace.sh @@ -5,7 +5,6 @@ set -eu cd /usr/app REPO_URL=https://github.com/DataDog/dd-trace-rs -PROD_TAG=datadog-opentelemetry-v0.3.1 if [ -e /binaries/rust-load-from-git ]; then rev_or_branch=$( Date: Fri, 17 Apr 2026 09:28:32 +0200 Subject: [PATCH 3/7] Remove previous datadog-opentelemetry dependency --- utils/build/docker/rust/install_ddtrace.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/build/docker/rust/install_ddtrace.sh b/utils/build/docker/rust/install_ddtrace.sh index 413dfd80249..bf44e95e487 100755 --- a/utils/build/docker/rust/install_ddtrace.sh +++ b/utils/build/docker/rust/install_ddtrace.sh @@ -13,6 +13,9 @@ if [ -e /binaries/rust-load-from-git ]; then git clone -b "$rev_or_branch" "$REPO_URL" /binaries/dd-trace-rs fi +# remove previous depedency on datadog-opentelemetry +cargo remove datadog-opentelemetry + if [ -e /binaries/dd-trace-rs ]; then echo "install from /binaries/datadog-opentelemetry with metrics-http and metrics-grpc features" From ba3218588cbeb903d96114d45cdf5bb833650264 Mon Sep 17 00:00:00 2001 From: iunanua Date: Fri, 17 Apr 2026 10:24:38 +0200 Subject: [PATCH 4/7] Remove previous datadog-opentelemetry dependency --- utils/build/docker/rust/install_ddtrace.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/utils/build/docker/rust/install_ddtrace.sh b/utils/build/docker/rust/install_ddtrace.sh index bf44e95e487..25188852fa9 100755 --- a/utils/build/docker/rust/install_ddtrace.sh +++ b/utils/build/docker/rust/install_ddtrace.sh @@ -13,9 +13,6 @@ if [ -e /binaries/rust-load-from-git ]; then git clone -b "$rev_or_branch" "$REPO_URL" /binaries/dd-trace-rs fi -# remove previous depedency on datadog-opentelemetry -cargo remove datadog-opentelemetry - if [ -e /binaries/dd-trace-rs ]; then echo "install from /binaries/datadog-opentelemetry with metrics-http and metrics-grpc features" @@ -42,9 +39,12 @@ if [ -e /binaries/dd-trace-rs ]; then cargo release version -p datadog-opentelemetry "$dev_version" -x --no-confirm cd /usr/app - cargo add --path /binaries/dd-trace-rs/datadog-opentelemetry --features metrics-http,metrics-grpc,logs-http,logs-grpc + cargo add datadog-opentelemetry --path /binaries/dd-trace-rs/datadog-opentelemetry --features metrics-http,metrics-grpc,logs-http,logs-grpc else echo "install from crates.io with metrics-http and metrics-grpc features" + + # remove previous depedency on datadog-opentelemetry and add the new one from crates.io + cargo remove datadog-opentelemetry || true cargo add datadog-opentelemetry --features metrics-http,metrics-grpc,logs-http,logs-grpc fi From 34b0ec877701858f814325a331ebe54dafc9ac9c Mon Sep 17 00:00:00 2001 From: iunanua Date: Fri, 17 Apr 2026 10:27:15 +0200 Subject: [PATCH 5/7] enable prod --- tests/test_the_test/test_compute_libraries_and_scenarios.py | 1 + utils/scripts/compute_libraries_and_scenarios.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_the_test/test_compute_libraries_and_scenarios.py b/tests/test_the_test/test_compute_libraries_and_scenarios.py index 7f72308f192..2519e246ac0 100644 --- a/tests/test_the_test/test_compute_libraries_and_scenarios.py +++ b/tests/test_the_test/test_compute_libraries_and_scenarios.py @@ -27,6 +27,7 @@ "python", "python_lambda", "ruby", + "rust" ] default_libs_with_dev = [ "cpp", diff --git a/utils/scripts/compute_libraries_and_scenarios.py b/utils/scripts/compute_libraries_and_scenarios.py index 1549811f671..4e6d15526bc 100644 --- a/utils/scripts/compute_libraries_and_scenarios.py +++ b/utils/scripts/compute_libraries_and_scenarios.py @@ -151,7 +151,6 @@ def get_outputs(self) -> dict[str, Any]: "version": "prod", } for library in sorted(self.selected) - if library not in ("rust",) ] + [ { "library": library, From 3668133e3ffbee35c8a7a22e2d575397586c046c Mon Sep 17 00:00:00 2001 From: iunanua Date: Fri, 17 Apr 2026 10:39:02 +0200 Subject: [PATCH 6/7] linter --- tests/test_the_test/test_compute_libraries_and_scenarios.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_the_test/test_compute_libraries_and_scenarios.py b/tests/test_the_test/test_compute_libraries_and_scenarios.py index 2519e246ac0..57c32b1a3e6 100644 --- a/tests/test_the_test/test_compute_libraries_and_scenarios.py +++ b/tests/test_the_test/test_compute_libraries_and_scenarios.py @@ -27,7 +27,7 @@ "python", "python_lambda", "ruby", - "rust" + "rust", ] default_libs_with_dev = [ "cpp", From a7756fe0c84b143689b97112b729a46fa67f757b Mon Sep 17 00:00:00 2001 From: iunanua Date: Fri, 17 Apr 2026 11:28:46 +0200 Subject: [PATCH 7/7] use short git SHA --- utils/build/docker/rust/install_ddtrace.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/build/docker/rust/install_ddtrace.sh b/utils/build/docker/rust/install_ddtrace.sh index 25188852fa9..aa472b17f05 100755 --- a/utils/build/docker/rust/install_ddtrace.sh +++ b/utils/build/docker/rust/install_ddtrace.sh @@ -30,7 +30,7 @@ if [ -e /binaries/dd-trace-rs ]; then new_version="${major}.$((minor + 1)).0" if [ -e /binaries/dd-trace-rs/.git ]; then - dev_version="${new_version}-dev+$(git -C /binaries/dd-trace-rs rev-parse HEAD)" + dev_version="${new_version}-dev+$(git -C /binaries/dd-trace-rs rev-parse --short HEAD)" else dev_version="${new_version}-dev" fi