From 4d10f7aef88d0e50cbede21fa7c8ef681c016252 Mon Sep 17 00:00:00 2001 From: Xavier Lamorlette Date: Fri, 24 Apr 2026 19:27:58 +0200 Subject: [PATCH 1/4] For system tests, get the agent URL from the tracer configuration instead of simply checking the environment variable --- test/system-tests/request_handler.cpp | 36 +++++++++++++++++++-------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/test/system-tests/request_handler.cpp b/test/system-tests/request_handler.cpp index 0e318c388..3104bf881 100644 --- a/test/system-tests/request_handler.cpp +++ b/test/system-tests/request_handler.cpp @@ -12,6 +12,21 @@ #include "httplib.h" #include "utils.h" +namespace { + +std::string get_agent_url_from_traces_url(std::string traces_url) { + // Strip the API path from the traces URL to get the agent URL + constexpr std::string_view traces_api_path = "/v0.4/traces"; + if (traces_url.size() >= traces_api_path.size() && + traces_url.compare(traces_url.size() - traces_api_path.size(), + traces_api_path.size(), traces_api_path) == 0) { + traces_url.resize(traces_url.size() - traces_api_path.size()); + } + return traces_url; +} + +} // namespace + RequestHandler::RequestHandler( datadog::tracing::FinalizedTracerConfig& tracerConfig, std::shared_ptr scheduler, @@ -47,17 +62,18 @@ void RequestHandler::on_trace_config(const httplib::Request& /* req */, httplib::Response& res) { auto tracer_cfg = nlohmann::json::parse(tracer_.config()); + const std::string agent_url = get_agent_url_from_traces_url(tracer_cfg["collector"]["config"]["traces_url"]); + // clang-format off - auto response_body = nlohmann::json{ - { "config", { - { "dd_service", tracer_cfg["defaults"]["service"]}, - { "dd_env", tracer_cfg["defaults"]["environment"]}, - { "dd_version", tracer_cfg["environment_variables"]["version"]}, - { "dd_trace_enabled", tracer_cfg["environment_variables"]["report_traces"]}, - { "dd_trace_agent_url", tracer_cfg["environment_variables"]["DD_TRACE_AGENT_URL"]} - } - } - }; + auto response_body = nlohmann::json{ + {"config", { + {"dd_service", tracer_cfg["defaults"]["service"]}, + {"dd_env", tracer_cfg["defaults"]["environment"]}, + {"dd_version", tracer_cfg["environment_variables"]["version"]}, + {"dd_trace_enabled", tracer_cfg["environment_variables"]["report_traces"]}, + {"dd_trace_agent_url", agent_url} + }} + }; // clang-format on if (tracer_cfg.contains("trace_sampler")) { From 40225efb2e4c01ba02a1aadbfb9f19c7e7010969 Mon Sep 17 00:00:00 2001 From: Xavier Lamorlette Date: Fri, 5 Jun 2026 19:03:36 +0200 Subject: [PATCH 2/4] For system tests, get version from tracer configuration instead of environment variable --- test/system-tests/request_handler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/system-tests/request_handler.cpp b/test/system-tests/request_handler.cpp index 3104bf881..58a39b513 100644 --- a/test/system-tests/request_handler.cpp +++ b/test/system-tests/request_handler.cpp @@ -69,7 +69,7 @@ void RequestHandler::on_trace_config(const httplib::Request& /* req */, {"config", { {"dd_service", tracer_cfg["defaults"]["service"]}, {"dd_env", tracer_cfg["defaults"]["environment"]}, - {"dd_version", tracer_cfg["environment_variables"]["version"]}, + {"dd_version", tracer_cfg["defaults"]["version"]}, {"dd_trace_enabled", tracer_cfg["environment_variables"]["report_traces"]}, {"dd_trace_agent_url", agent_url} }} From 4866bc43bac1ac0ddd46c16c8d10746d5dbdd39d Mon Sep 17 00:00:00 2001 From: Xavier Lamorlette Date: Fri, 5 Jun 2026 19:08:44 +0200 Subject: [PATCH 3/4] For system tests, get dd_trace_enabled from tracer configuration instead of environment variable --- test/system-tests/request_handler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/system-tests/request_handler.cpp b/test/system-tests/request_handler.cpp index 58a39b513..973ab09ac 100644 --- a/test/system-tests/request_handler.cpp +++ b/test/system-tests/request_handler.cpp @@ -70,7 +70,7 @@ void RequestHandler::on_trace_config(const httplib::Request& /* req */, {"dd_service", tracer_cfg["defaults"]["service"]}, {"dd_env", tracer_cfg["defaults"]["environment"]}, {"dd_version", tracer_cfg["defaults"]["version"]}, - {"dd_trace_enabled", tracer_cfg["environment_variables"]["report_traces"]}, + {"dd_trace_enabled", tracer_cfg["report_traces"]}, {"dd_trace_agent_url", agent_url} }} }; From 1a8e8109c40b053137cd16758e2108b189d89b3f Mon Sep 17 00:00:00 2001 From: Xavier Lamorlette Date: Fri, 5 Jun 2026 19:19:19 +0200 Subject: [PATCH 4/4] nano code cleaning --- test/system-tests/request_handler.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/system-tests/request_handler.cpp b/test/system-tests/request_handler.cpp index 973ab09ac..df6055837 100644 --- a/test/system-tests/request_handler.cpp +++ b/test/system-tests/request_handler.cpp @@ -16,6 +16,7 @@ namespace { std::string get_agent_url_from_traces_url(std::string traces_url) { // Strip the API path from the traces URL to get the agent URL + // This API path is defined in src/datadog/datadog_agent.cpp. constexpr std::string_view traces_api_path = "/v0.4/traces"; if (traces_url.size() >= traces_api_path.size() && traces_url.compare(traces_url.size() - traces_api_path.size(), @@ -25,7 +26,7 @@ std::string get_agent_url_from_traces_url(std::string traces_url) { return traces_url; } -} // namespace +} // namespace RequestHandler::RequestHandler( datadog::tracing::FinalizedTracerConfig& tracerConfig, @@ -62,7 +63,8 @@ void RequestHandler::on_trace_config(const httplib::Request& /* req */, httplib::Response& res) { auto tracer_cfg = nlohmann::json::parse(tracer_.config()); - const std::string agent_url = get_agent_url_from_traces_url(tracer_cfg["collector"]["config"]["traces_url"]); + const std::string agent_url = get_agent_url_from_traces_url( + tracer_cfg["collector"]["config"]["traces_url"]); // clang-format off auto response_body = nlohmann::json{