Skip to content

Commit 45a451c

Browse files
authored
Merge branch 'main' into taegyunkim/profiles-dictionary-memory-footprint
2 parents 477c1f4 + a97e1d4 commit 45a451c

123 files changed

Lines changed: 7474 additions & 913 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.

.codecov.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ component_management:
1111
name: libdd-crashtracker-ffi # this is a display name, and can be changed freely
1212
paths:
1313
- libdd-crashtracker-ffi
14+
- component_id: agent-client # this is an identifier that should not be changed
15+
name: libdd-agent-client # this is a display name, and can be changed freely
16+
paths:
17+
- libdd-agent-client
1418
- component_id: datadog-alloc # this is an identifier that should not be changed
1519
name: libdd-alloc # this is a display name, and can be changed freely
1620
paths:

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ libdd-data-pipeline*/ @DataDog/libdatadog-apm
5151
libdd-ddsketch*/ @DataDog/libdatadog-apm @DataDog/apm-common-components-core
5252
libdd-dogstatsd-client @DataDog/apm-common-components-core
5353
libdd-http-client @DataDog/apm-common-components-core
54+
libdd-agent-client @DataDog/apm-common-components-core
5455
libdd-library-config*/ @DataDog/apm-sdk-capabilities-rust
5556
libdd-log*/ @DataDog/apm-common-components-core
5657
libdd-otel-thread-ctx/ @DataDog/apm-common-components-core
@@ -103,3 +104,5 @@ tools/sidecar_mockgen/ @DataDog/libdatadog-php
103104
libdd-data-pipeline/src/otlp/ @DataDog/apm-sdk-capabilities-rust
104105
libdd-data-pipeline/tests/test_trace_exporter_otlp_export.rs @DataDog/apm-sdk-capabilities-rust
105106
libdd-trace-utils/src/otlp_encoder/ @DataDog/apm-sdk-capabilities-rust
107+
datadog-sidecar/src/service/ffe_exposures_flusher.rs @DataDog/libdatadog-php @DataDog/libdatadog-apm @DataDog/feature-flagging-and-experimentation-sdk
108+
datadog-sidecar/src/service/ffe_metrics_flusher.rs @DataDog/libdatadog-php @DataDog/libdatadog-apm @DataDog/feature-flagging-and-experimentation-sdk

.github/workflows/release-proposal-test.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,10 @@ jobs:
6565
echo "Skipping cargo package: no crates had a version bump vs the base ref (PKG_ARGS is empty)."
6666
exit 0
6767
fi
68-
cargo package "${PKG_ARGS[@]}" --all-features
68+
# cargo 1.92+ required: earlier versions (incl. the workspace MSRV 1.87) fail to
69+
# resolve sibling crates by version requirement when those versions are not yet on
70+
# crates.io
71+
cargo +1.92.0 package "${PKG_ARGS[@]}" --all-features
6972
echo "upload_artifact=true" >> "$GITHUB_OUTPUT"
7073
7174
- name: Upload crates

AGENTS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ Iterate fastest with `cargo check -p <crate>` while editing; the full validation
5656
```
5757
- **test_spawn_from_lib**: `cargo nextest run --package test_spawn_from_lib --features prefer-dynamic`.
5858

59+
### Code exploration
60+
61+
When searching for code with `grep` or `find`, always exclude the `./target` directory. Only search in it if specifically looking for build artifacts
5962

6063
## Key Conventions
6164

Cargo.lock

Lines changed: 43 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ members = [
5353
"libdd-tinybytes",
5454
"libdd-dogstatsd-client",
5555
"libdd-http-client",
56+
"libdd-agent-client",
5657
"libdd-log",
5758
"libdd-log-ffi",
5859
"libdd-sampling",
@@ -74,7 +75,7 @@ resolver = "2"
7475
[workspace.package]
7576
rust-version = "1.87.0"
7677
edition = "2021"
77-
version = "34.0.0"
78+
version = "35.0.0"
7879
license = "Apache-2.0"
7980
authors = ["Datadog Inc. <info@datadoghq.com>"]
8081

bin_tests/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ bench = false
5252
name = "crashing_test_app"
5353
bench = false
5454

55+
[[bin]]
56+
name = "crashtracker_unix_socket_receiver"
57+
bench = false
58+
5559
[[bin]]
5660
name = "prebuild"
5761
path = "src/bin/prebuild.rs"

bin_tests/src/artifacts.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@ pub fn crashing_app(profile: BuildProfile, panic_abort: bool) -> ArtifactsBuild
3939
}
4040
}
4141

42+
/// Creates an ArtifactsBuild for the Unix socket receiver binary (sidecar-style).
43+
pub fn crashtracker_unix_socket_receiver(profile: BuildProfile) -> ArtifactsBuild {
44+
ArtifactsBuild {
45+
name: "crashtracker_unix_socket_receiver".to_owned(),
46+
build_profile: profile,
47+
artifact_type: ArtifactType::Bin,
48+
..Default::default()
49+
}
50+
}
51+
4252
/// Creates an ArtifactsBuild for the test_the_tests binary.
4353
pub fn test_the_tests(profile: BuildProfile) -> ArtifactsBuild {
4454
ArtifactsBuild {
@@ -87,6 +97,7 @@ pub fn all_prebuild_artifacts() -> Vec<ArtifactsBuild> {
8797
for profile in [BuildProfile::Debug, BuildProfile::Release] {
8898
artifacts.push(crashtracker_bin_test(profile, false));
8999
artifacts.push(crashtracker_receiver(profile));
100+
artifacts.push(crashtracker_unix_socket_receiver(profile));
90101
artifacts.push(test_the_tests(profile));
91102
artifacts.push(profiling_ffi(profile));
92103
artifacts.push(crashing_app(profile, false));
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright 2026-Present Datadog, Inc. https://www.datadoghq.com/
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
//! Sidecar-style crashtracker receiver that listens on a Unix socket.
5+
//! Used by integration tests to verify the socket-based receiver path
6+
7+
#[cfg(not(unix))]
8+
fn main() {}
9+
10+
#[cfg(unix)]
11+
fn main() -> anyhow::Result<()> {
12+
let socket_path = std::env::args()
13+
.nth(1)
14+
.expect("usage: crashtracker_unix_socket_receiver <socket_path>");
15+
libdd_crashtracker::receiver_entry_point_unix_socket(&socket_path)
16+
}

bin_tests/src/modes/behavior.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ pub fn get_behavior(mode_str: &str) -> Box<dyn Behavior> {
140140
"errno_preservation" => Box::new(test_016_errno_preservation::Test),
141141
"multi_thread_collection" => Box::new(test_017_multi_thread_collection::Test),
142142
"thread_limit" => Box::new(test_018_thread_limit::Test),
143+
"sidecar_donothing" => Box::new(test_019_sidecar_donothing::Test),
144+
"sidecar_multi_thread_collection" => {
145+
Box::new(test_020_sidecar_multi_thread_collection::Test)
146+
}
143147
"runtime_preload_logger" => Box::new(test_000_donothing::Test),
144148
_ => panic!("Unknown mode: {mode_str}"),
145149
}

0 commit comments

Comments
 (0)