From 22ecd02a3d325e37b74fb1af3654cf20d9abe41c Mon Sep 17 00:00:00 2001 From: Ayan Khan Date: Tue, 7 Apr 2026 14:06:59 -0400 Subject: [PATCH 1/5] chore: update dd-trace-cpp submodule to stable session ID headers branch Points to ayan.khan/stable-session-id-headers tip for integration validation of DD-Session-ID and DD-Root-Session-ID telemetry headers. Co-Authored-By: Claude Opus 4.6 (1M context) --- dd-trace-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-trace-cpp b/dd-trace-cpp index f8c39137..2ba87be7 160000 --- a/dd-trace-cpp +++ b/dd-trace-cpp @@ -1 +1 @@ -Subproject commit f8c39137d4066486e20102f772913276b391f7f7 +Subproject commit 2ba87be75f1e91a76299f70c61a01fc18fba767b From 3e999bcbc31a3c4b47b8e92f92540478a6443b19 Mon Sep 17 00:00:00 2001 From: Ayan Khan Date: Wed, 8 Apr 2026 17:46:43 -0400 Subject: [PATCH 2/5] feat: seed root session ID in master before workers fork Generate root_session_id in create_datadog_main_conf (master process) and pass it to TracerConfig in make_tracer (worker process). All workers inherit the same root via fork memory copy, ensuring consistent DD-Root-Session-ID across telemetry from all workers. Co-Authored-By: Claude Opus 4.6 (1M context) --- dd-trace-cpp | 2 +- src/datadog_conf.h | 1 + src/ngx_http_datadog_module.cpp | 3 +++ src/tracing_library.cpp | 4 ++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dd-trace-cpp b/dd-trace-cpp index 2ba87be7..8b810cc1 160000 --- a/dd-trace-cpp +++ b/dd-trace-cpp @@ -1 +1 @@ -Subproject commit 2ba87be75f1e91a76299f70c61a01fc18fba767b +Subproject commit 8b810cc1413460c0d26bcf8f3763cbc34914ebb1 diff --git a/src/datadog_conf.h b/src/datadog_conf.h index 0b2e67d5..d413e016 100644 --- a/src/datadog_conf.h +++ b/src/datadog_conf.h @@ -94,6 +94,7 @@ struct datadog_main_conf_t { // module configuration, instead we grab the values from the environment // of the master process and apply them later in the worker processes after // `fork()`. + std::string root_session_id; std::vector environment_variables; // If `propagation_styles` is empty, then use the defaults instead. // `propagation_styles` is populated by the "datadog_propagation_styles" diff --git a/src/ngx_http_datadog_module.cpp b/src/ngx_http_datadog_module.cpp index 138d3901..27e71b5f 100644 --- a/src/ngx_http_datadog_module.cpp +++ b/src/ngx_http_datadog_module.cpp @@ -1,5 +1,7 @@ #include "ngx_http_datadog_module.h" +#include + #include #include #include @@ -408,6 +410,7 @@ static void *create_datadog_main_conf(ngx_conf_t *conf) noexcept { if (register_destructor(conf->pool, main_conf)) { return nullptr; // error } + main_conf->root_session_id = dd::RuntimeID::generate().string(); return main_conf; } diff --git a/src/tracing_library.cpp b/src/tracing_library.cpp index 4da37089..4bfbc46f 100644 --- a/src/tracing_library.cpp +++ b/src/tracing_library.cpp @@ -55,6 +55,10 @@ dd::Expected TracingLibrary::make_tracer( config.integration_version = NGINX_VERSION; config.service = "nginx"; + if (!nginx_conf.root_session_id.empty()) { + config.root_session_id = nginx_conf.root_session_id; + } + if (nginx_conf.apm_tracing_enabled != NGX_CONF_UNSET) { config.tracing_enabled = {nginx_conf.apm_tracing_enabled == 1}; } From 267814e3e4ad64425c34d65a7329ff171228f29b Mon Sep 17 00:00:00 2001 From: Ayan Khan Date: Fri, 10 Apr 2026 14:05:16 -0400 Subject: [PATCH 3/5] chore: update dd-trace-cpp submodule to latest Co-Authored-By: Claude Opus 4.6 (1M context) --- dd-trace-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-trace-cpp b/dd-trace-cpp index 8b810cc1..e61e8121 160000 --- a/dd-trace-cpp +++ b/dd-trace-cpp @@ -1 +1 @@ -Subproject commit 8b810cc1413460c0d26bcf8f3763cbc34914ebb1 +Subproject commit e61e8121ca7c27fb9b39e5866a70b2fcdeb50463 From 4adedd461b2f61e42ab5ac8d2e7b83a9b73c648e Mon Sep 17 00:00:00 2001 From: Ayan Khan Date: Mon, 13 Apr 2026 11:14:56 -0400 Subject: [PATCH 4/5] fix: remove submodule pin, keep only src changes Co-Authored-By: Claude Opus 4.6 (1M context) --- dd-trace-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-trace-cpp b/dd-trace-cpp index e61e8121..f8c39137 160000 --- a/dd-trace-cpp +++ b/dd-trace-cpp @@ -1 +1 @@ -Subproject commit e61e8121ca7c27fb9b39e5866a70b2fcdeb50463 +Subproject commit f8c39137d4066486e20102f772913276b391f7f7 From 44fc0fd58dd291ca5beca1e81595b0f1d4670984 Mon Sep 17 00:00:00 2001 From: Ayan Khan Date: Mon, 13 Apr 2026 11:26:46 -0400 Subject: [PATCH 5/5] chore: update dd-trace-cpp submodule to main (includes #295) Co-Authored-By: Claude Opus 4.6 (1M context) --- dd-trace-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-trace-cpp b/dd-trace-cpp index f8c39137..92cdfe6f 160000 --- a/dd-trace-cpp +++ b/dd-trace-cpp @@ -1 +1 @@ -Subproject commit f8c39137d4066486e20102f772913276b391f7f7 +Subproject commit 92cdfe6fb5713f0caef02d1e749eff3bcd171baf