From d1a8696e98196ffd17ee6056ec94a55b692cab2e Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Tue, 12 Nov 2024 19:00:19 +0100 Subject: [PATCH] Reduce the amount of diagnostic messages sent Done by deduplicating them. Signed-off-by: Bob Weinand Handle case where the applictaion is stopped without other telemetry sent This lead down to a path where the Stop action was actually enqueued without being ever causing a removal of the Application instances. Signed-off-by: Bob Weinand --- Cargo.lock | 42 ++++++++++++++++++++++++++++++++++ components-rs/remote_config.rs | 5 ++-- components-rs/sidecar.h | 5 ++++ libdatadog | 2 +- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 68e1cb81ae..8dca58a0e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1349,6 +1349,7 @@ dependencies = [ "page_size", "portable-atomic", "rand 0.8.5", + "schemars", "serde", "serde_json", "tempfile", @@ -2003,6 +2004,12 @@ dependencies = [ "proc-macro-error", ] +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + [[package]] name = "educe" version = "0.4.23" @@ -4555,6 +4562,30 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.71", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -4652,6 +4683,17 @@ dependencies = [ "syn 2.0.71", ] +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.71", +] + [[package]] name = "serde_json" version = "1.0.128" diff --git a/components-rs/remote_config.rs b/components-rs/remote_config.rs index b0fce241bc..7086e9bb5b 100644 --- a/components-rs/remote_config.rs +++ b/components-rs/remote_config.rs @@ -14,7 +14,7 @@ use datadog_remote_config::{ use datadog_sidecar::service::blocking::SidecarTransport; use datadog_sidecar::service::{InstanceId, QueueId}; use datadog_sidecar::shm_remote_config::{RemoteConfigManager, RemoteConfigUpdate}; -use datadog_sidecar_ffi::ddog_sidecar_send_debugger_data; +use datadog_sidecar_ffi::{ddog_sidecar_send_debugger_data, ddog_sidecar_send_debugger_diagnostics}; use ddcommon::Endpoint; use ddcommon_ffi::slice::AsBytes; use ddcommon_ffi::{CharSlice, MaybeError}; @@ -531,5 +531,6 @@ pub unsafe extern "C" fn ddog_send_debugger_diagnostics<'a>( "Submitting debugger diagnostics data: {:?}", serde_json::to_string(&payload).unwrap() ); - ddog_sidecar_send_debugger_data(transport, instance_id, queue_id, vec![payload]) + + ddog_sidecar_send_debugger_diagnostics(transport, instance_id, queue_id, payload) } diff --git a/components-rs/sidecar.h b/components-rs/sidecar.h index 248113edbc..549415bfbc 100644 --- a/components-rs/sidecar.h +++ b/components-rs/sidecar.h @@ -223,6 +223,11 @@ ddog_MaybeError ddog_sidecar_send_debugger_datum(struct ddog_SidecarTransport ** ddog_QueueId queue_id, struct ddog_DebuggerPayload *payload); +ddog_MaybeError ddog_sidecar_send_debugger_diagnostics(struct ddog_SidecarTransport **transport, + const struct ddog_InstanceId *instance_id, + ddog_QueueId queue_id, + struct ddog_DebuggerPayload diagnostics_payload); + ddog_MaybeError ddog_sidecar_set_remote_config_data(struct ddog_SidecarTransport **transport, const struct ddog_InstanceId *instance_id, const ddog_QueueId *queue_id, diff --git a/libdatadog b/libdatadog index 75b1ab55b8..5495314ed6 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit 75b1ab55b84f1fa22165e73241e7f0ec4cd12228 +Subproject commit 5495314ed6b457c3a1589944c87ce615189f6795