diff --git a/Cargo.lock b/Cargo.lock index afac19e..a8d1c7e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -811,17 +811,17 @@ dependencies = [ [[package]] name = "libdd-library-config" -version = "1.0.0" -source = "git+https://github.com/DataDog/libdatadog.git?tag=v29.0.0#001bd56fcbba34fa4ec3f9798a6c4fbcddeffa40" +version = "2.0.0" +source = "git+https://github.com/DataDog/libdatadog.git?tag=v35.0.0#aa78483fba211c72ca3759c76318895f45e0184b" dependencies = [ "anyhow", + "libc", "libdd-trace-protobuf", "memfd", "prost", "rand", "rmp", "rmp-serde", - "rustix", "serde", "serde_yaml", ] @@ -883,8 +883,8 @@ dependencies = [ [[package]] name = "libdd-trace-protobuf" -version = "1.1.0" -source = "git+https://github.com/DataDog/libdatadog.git?tag=v29.0.0#001bd56fcbba34fa4ec3f9798a6c4fbcddeffa40" +version = "3.0.2" +source = "git+https://github.com/DataDog/libdatadog.git?tag=v35.0.0#aa78483fba211c72ca3759c76318895f45e0184b" dependencies = [ "prost", "serde", diff --git a/crates/process_discovery/Cargo.toml b/crates/process_discovery/Cargo.toml index 30f94b4..4aa80ce 100644 --- a/crates/process_discovery/Cargo.toml +++ b/crates/process_discovery/Cargo.toml @@ -8,7 +8,7 @@ crate-type = ["cdylib", "rlib"] [dependencies] anyhow = "1" -libdd-library-config = { git = "https://github.com/DataDog/libdatadog.git", tag = "v29.0.0" } +libdd-library-config = { git = "https://github.com/DataDog/libdatadog.git", tag = "v35.0.0", features = ["otel-thread-ctx"] } napi = { version = "2" } napi-derive = { version = "2", default-features = false } diff --git a/crates/process_discovery/src/lib.rs b/crates/process_discovery/src/lib.rs index 3649959..3bf3516 100644 --- a/crates/process_discovery/src/lib.rs +++ b/crates/process_discovery/src/lib.rs @@ -21,6 +21,16 @@ pub struct TracerMetadata { pub service_version: Option, pub process_tags: Option, pub container_id: Option, + /// Ordered list of attribute key names for thread-level OTEP-4947 + /// context records. Key indices on the wire index into this list. + /// libdatadog's OTel process-context conversion prepends the + /// implicit `datadog.local_root_span_id` entry at wire index 0, so + /// callers should only set their additional keys here — entry 0 in + /// this list corresponds to wire key index 1. + /// + /// `null`/omitted (the default) disables the thread-context-related + /// attributes in the OTel process context entirely. + pub threadlocal_attribute_keys: Option>, } #[napi] @@ -36,6 +46,7 @@ pub fn store_metadata(data: &TracerMetadata) -> napi::Result { for (const fd in fds) {