@@ -62,8 +62,9 @@ HTTPClient::URL make_telemetry_endpoint(HTTPClient::URL url) {
6262
6363void 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
316317void 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
366321void Telemetry::app_closing () {
0 commit comments