Skip to content

Commit 2dfc89d

Browse files
khanayan123claude
andcommitted
fix: store session_id in local var, simplify app_started() via send_payload()
Address reviewer nits: - Cache sig.runtime_id.string() in set_session_headers to avoid double call - Replace app_started() body with send_payload("app-started", ...) since send_payload is a superset with additional response metrics Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent ccd3fa2 commit 2dfc89d

1 file changed

Lines changed: 4 additions & 49 deletions

File tree

src/datadog/telemetry/telemetry_impl.cpp

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,9 @@ HTTPClient::URL make_telemetry_endpoint(HTTPClient::URL url) {
6262

6363
void set_session_headers(DictWriter& headers,
6464
const tracing::TracerSignature& sig) {
65-
headers.set("DD-Session-ID", sig.runtime_id.string());
66-
if (sig.root_session_id != sig.runtime_id.string()) {
65+
const auto& session_id = sig.runtime_id.string();
66+
headers.set("DD-Session-ID", session_id);
67+
if (sig.root_session_id != session_id) {
6768
headers.set("DD-Root-Session-ID", sig.root_session_id);
6869
}
6970
}
@@ -314,53 +315,7 @@ void Telemetry::log_warning(std::string message) {
314315
}
315316

316317
void Telemetry::app_started() {
317-
auto payload = app_started_payload();
318-
319-
auto on_headers = [payload_size = payload.size(),
320-
debug_enabled = config_.debug,
321-
&sig = tracer_signature_](DictWriter& headers) {
322-
headers.set("Content-Type", "application/json");
323-
headers.set("Content-Length", std::to_string(payload_size));
324-
headers.set("DD-Telemetry-API-Version", "v2");
325-
headers.set("DD-Client-Library-Language", "cpp");
326-
headers.set("DD-Client-Library-Version", tracer_version);
327-
headers.set("DD-Telemetry-Request-Type", "app-started");
328-
set_session_headers(headers, sig);
329-
if (debug_enabled) {
330-
headers.set("DD-Telemetry-Debug-Enabled", "true");
331-
}
332-
};
333-
334-
auto on_response = [logger = logger_](int response_status, const DictReader&,
335-
std::string response_body) {
336-
if (response_status < 200 || response_status >= 300) {
337-
logger->log_error([&](auto& stream) {
338-
stream << "Unexpected telemetry response status " << response_status
339-
<< " with body (if any, starts on next line):\n"
340-
<< response_body;
341-
});
342-
}
343-
};
344-
345-
auto on_error = [logger = logger_](Error error) {
346-
logger->log_error(error.with_prefix(
347-
"Error occurred during HTTP request for telemetry: "));
348-
};
349-
350-
increment_counter(internal_metrics::requests, {"endpoint:agent"});
351-
add_datapoint(internal_metrics::bytes_sent, {"endpoint:agent"},
352-
payload.size());
353-
354-
auto post_result =
355-
http_client_->post(telemetry_endpoint_, on_headers, std::move(payload),
356-
std::move(on_response), std::move(on_error),
357-
clock_().tick + request_timeout);
358-
if (auto* error = post_result.if_error()) {
359-
increment_counter(internal_metrics::errors,
360-
{"type:network", "endpoint:agent"});
361-
logger_->log_error(
362-
error->with_prefix("Unexpected error submitting telemetry event: "));
363-
}
318+
send_payload("app-started", app_started_payload());
364319
}
365320

366321
void Telemetry::app_closing() {

0 commit comments

Comments
 (0)