Skip to content

Commit 935f074

Browse files
khanayan123claude
andcommitted
Register root session ID env var in environment registry
Use environment::lookup() instead of std::getenv() directly, and register DD_ROOT_CPP_SESSION_ID in DD_LIST_ENVIRONMENT_VARIABLES per project convention. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0a419c2 commit 935f074

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

include/datadog/environment.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ namespace environment {
8181
MACRO(DD_APM_TRACING_ENABLED, BOOLEAN, true) \
8282
MACRO(DD_TRACE_RESOURCE_RENAMING_ENABLED, BOOLEAN, false) \
8383
MACRO(DD_TRACE_RESOURCE_RENAMING_ALWAYS_SIMPLIFIED_ENDPOINT, BOOLEAN, false) \
84-
MACRO(DD_EXTERNAL_ENV, STRING, "")
84+
MACRO(DD_EXTERNAL_ENV, STRING, "") \
85+
MACRO(DD_ROOT_CPP_SESSION_ID, STRING, \
86+
ENV_DEFAULT_RESOLVED_IN_CODE( \
87+
"Internal: root session ID inherited across exec. Set " \
88+
"automatically by the tracer; do not set manually."))
8589

8690
#define ENV_DEFAULT_RESOLVED_IN_CODE(X) X
8791
#define WITH_COMMA(ARG, TYPE, DEFAULT_VALUE) ARG,
@@ -95,7 +99,7 @@ enum Variable { DD_LIST_ENVIRONMENT_VARIABLES(WITH_COMMA) };
9599
#define QUOTED_WITH_COMMA(ARG, TYPE, DEFAULT_VALUE) \
96100
WITH_COMMA(QUOTED(ARG), TYPE, DEFAULT_VALUE)
97101

98-
inline const char *const variable_names[] = {
102+
inline const char* const variable_names[] = {
99103
DD_LIST_ENVIRONMENT_VARIABLES(QUOTED_WITH_COMMA)};
100104

101105
#undef QUOTED

src/datadog/tracer.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ namespace tracing {
4040
namespace {
4141

4242
std::string get_root_session_id(const std::string& runtime_id) {
43-
if (const char* env = std::getenv("_DD_ROOT_CPP_SESSION_ID")) {
44-
return std::string(env);
43+
if (auto val = environment::lookup(environment::DD_ROOT_CPP_SESSION_ID)) {
44+
return std::string(*val);
4545
}
4646
return runtime_id;
4747
}
@@ -76,7 +76,8 @@ Tracer::Tracer(const FinalizedTracerConfig& config,
7676
baggage_extraction_enabled_(false),
7777
tracing_enabled_(config.tracing_enabled),
7878
resource_renaming_mode_(config.resource_renaming_mode) {
79-
setenv("_DD_ROOT_CPP_SESSION_ID", signature_.root_session_id.c_str(), 1);
79+
setenv(environment::name(environment::DD_ROOT_CPP_SESSION_ID).data(),
80+
signature_.root_session_id.c_str(), 1);
8081

8182
telemetry::init(config.telemetry, signature_, logger_, config.http_client,
8283
config.event_scheduler, config.agent_url);

0 commit comments

Comments
 (0)