diff --git a/datadog-sidecar-ffi/src/lib.rs b/datadog-sidecar-ffi/src/lib.rs index eaa970c40a..b1f824387a 100644 --- a/datadog-sidecar-ffi/src/lib.rs +++ b/datadog-sidecar-ffi/src/lib.rs @@ -614,6 +614,7 @@ pub unsafe extern "C" fn ddog_sidecar_session_set_config( flush_interval_milliseconds: u32, remote_config_poll_interval_millis: u32, telemetry_heartbeat_interval_millis: u32, + telemetry_extended_heartbeat_interval_millis: u64, force_flush_size: usize, force_drop_size: usize, log_level: ffi::CharSlice, @@ -643,6 +644,9 @@ pub unsafe extern "C" fn ddog_sidecar_session_set_config( telemetry_heartbeat_interval: Duration::from_millis( telemetry_heartbeat_interval_millis as u64, ), + telemetry_extended_heartbeat_interval: Duration::from_millis( + telemetry_extended_heartbeat_interval_millis, + ), force_flush_size, force_drop_size, log_level: log_level.to_utf8_lossy().into(), diff --git a/datadog-sidecar-ffi/tests/sidecar.rs b/datadog-sidecar-ffi/tests/sidecar.rs index 311f9b73a0..4d282ad4fe 100644 --- a/datadog-sidecar-ffi/tests/sidecar.rs +++ b/datadog-sidecar-ffi/tests/sidecar.rs @@ -98,6 +98,7 @@ fn test_ddog_sidecar_register_app() { 1000, 1000000, 1, + 86400000, 10000000, 10000000, "".into(), @@ -151,6 +152,7 @@ fn test_ddog_sidecar_register_app() { 1000, 1000000, 1, + 86400000, 10000000, 10000000, "".into(), diff --git a/datadog-sidecar/src/service/mod.rs b/datadog-sidecar/src/service/mod.rs index f5c4271577..4d1ebf2df8 100644 --- a/datadog-sidecar/src/service/mod.rs +++ b/datadog-sidecar/src/service/mod.rs @@ -58,6 +58,7 @@ pub struct SessionConfig { pub flush_interval: Duration, pub remote_config_poll_interval: Duration, pub telemetry_heartbeat_interval: Duration, + pub telemetry_extended_heartbeat_interval: Duration, pub force_flush_size: usize, pub force_drop_size: usize, pub log_level: String, diff --git a/datadog-sidecar/src/service/sidecar_server.rs b/datadog-sidecar/src/service/sidecar_server.rs index 27957846f2..2a34b5c593 100644 --- a/datadog-sidecar/src/service/sidecar_server.rs +++ b/datadog-sidecar/src/service/sidecar_server.rs @@ -640,12 +640,16 @@ impl SidecarInterface for ConnectionSidecarHandler { *session.process_tags.lock_or_panic() = config.process_tags.clone(); session.modify_telemetry_config(|cfg| { cfg.telemetry_heartbeat_interval = config.telemetry_heartbeat_interval; + cfg.telemetry_extended_heartbeat_interval = + config.telemetry_extended_heartbeat_interval; let endpoint = get_product_endpoint( libdd_telemetry::config::PROD_INTAKE_SUBDOMAIN, &config.endpoint, ); cfg.set_endpoint(endpoint).ok(); cfg.telemetry_heartbeat_interval = config.telemetry_heartbeat_interval; + cfg.telemetry_extended_heartbeat_interval = + config.telemetry_extended_heartbeat_interval; }); session.modify_trace_config(|cfg| { let endpoint = get_product_endpoint( diff --git a/libdd-telemetry/src/worker/mod.rs b/libdd-telemetry/src/worker/mod.rs index 6da6725acf..a9179b428e 100644 --- a/libdd-telemetry/src/worker/mod.rs +++ b/libdd-telemetry/src/worker/mod.rs @@ -483,9 +483,9 @@ impl TelemetryWorker { self.data.integrations.unflush_stored(); self.data.configurations.unflush_stored(); - let app_started = data::Payload::AppStarted(self.build_app_started()); - match self.send_payload(&app_started).await { - Ok(()) => self.payload_sent_success(&app_started), + let extended_hb = data::Payload::AppExtendedHeartbeat(self.build_app_started()); + match self.send_payload(&extended_hb).await { + Ok(()) => self.payload_sent_success(&extended_hb), Err(err) => self.log_err(&err), } #[allow(clippy::unwrap_used)]