From 7aedfeb653d249ef1ef750b1160ab9b4973a2b5b Mon Sep 17 00:00:00 2001 From: Gregory LEOCADIE Date: Thu, 20 Nov 2025 16:19:28 +0100 Subject: [PATCH] Add support for process_tags --- examples/ffi/exporter.cpp | 2 +- libdd-profiling-ffi/src/exporter.rs | 10 +++++++++- libdd-profiling/src/exporter/mod.rs | 12 ++++++++++++ libdd-profiling/tests/form.rs | 1 + 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/examples/ffi/exporter.cpp b/examples/ffi/exporter.cpp index d2e07d8752..b96af1a481 100644 --- a/examples/ffi/exporter.cpp +++ b/examples/ffi/exporter.cpp @@ -140,7 +140,7 @@ int main(int argc, char *argv[]) { } auto build_result = ddog_prof_Exporter_Request_build( - exporter, encoded_profile, files_to_compress_and_export, files_to_export_unmodified, nullptr, + exporter, encoded_profile, files_to_compress_and_export, files_to_export_unmodified, nullptr, nullptr, &internal_metadata_example, &info_example); ddog_prof_EncodedProfile_drop(encoded_profile); diff --git a/libdd-profiling-ffi/src/exporter.rs b/libdd-profiling-ffi/src/exporter.rs index d5c0cbc295..a9d50e5c1d 100644 --- a/libdd-profiling-ffi/src/exporter.rs +++ b/libdd-profiling-ffi/src/exporter.rs @@ -220,6 +220,7 @@ pub unsafe extern "C" fn ddog_prof_Exporter_Request_build( files_to_compress_and_export: Slice, files_to_export_unmodified: Slice, optional_additional_tags: Option<&libdd_common_ffi::Vec>, + optional_process_tags: Option<&libdd_common_ffi::Vec>, optional_internal_metadata_json: Option<&CharSlice>, optional_info_json: Option<&CharSlice>, ) -> Result> { @@ -229,7 +230,7 @@ pub unsafe extern "C" fn ddog_prof_Exporter_Request_build( let files_to_compress_and_export = into_vec_files(files_to_compress_and_export); let files_to_export_unmodified = into_vec_files(files_to_export_unmodified); let tags = optional_additional_tags.map(|tags| tags.iter().cloned().collect()); - + let process_tags = optional_process_tags.map(|tags| tags.iter().cloned().collect()); let internal_metadata = parse_json("internal_metadata", optional_internal_metadata_json)?; let info = parse_json("info", optional_info_json)?; @@ -238,6 +239,7 @@ pub unsafe extern "C" fn ddog_prof_Exporter_Request_build( files_to_compress_and_export.as_slice(), files_to_export_unmodified.as_slice(), tags.as_ref(), + process_tags.as_ref(), internal_metadata, info, )?; @@ -486,6 +488,7 @@ mod tests { None, None, None, + None, ) }; @@ -571,6 +574,7 @@ mod tests { Slice::empty(), Slice::empty(), None, + None, Some(&raw_internal_metadata), None, ) @@ -620,6 +624,7 @@ mod tests { Slice::empty(), Slice::empty(), None, + None, Some(&raw_internal_metadata), None, ) @@ -693,6 +698,7 @@ mod tests { Slice::empty(), None, None, + None, Some(&raw_info), ) }; @@ -763,6 +769,7 @@ mod tests { Slice::empty(), None, None, + None, Some(&raw_info), ) }; @@ -786,6 +793,7 @@ mod tests { None, None, None, + None, ) }; diff --git a/libdd-profiling/src/exporter/mod.rs b/libdd-profiling/src/exporter/mod.rs index 70e6e2d436..9b54a551b7 100644 --- a/libdd-profiling/src/exporter/mod.rs +++ b/libdd-profiling/src/exporter/mod.rs @@ -187,6 +187,7 @@ impl ProfileExporter { files_to_compress_and_export: &[File], files_to_export_unmodified: &[File], additional_tags: Option<&Vec>, + process_tags: Option<&Vec>, internal_metadata: Option, info: Option, ) -> anyhow::Result { @@ -200,6 +201,16 @@ impl ProfileExporter { tags_profiler.push(','); } + let tags_process = if let Some(process_tags) = process_tags { + process_tags + .iter() + .map(|tag| tag.as_ref()) + .collect::>() + .join(",") + } else { + String::new() + }; + if let Some(aas_metadata) = &*azure_app_services::AAS_METADATA { let aas_tags = [ ("aas.resource.id", aas_metadata.get_resource_id()), @@ -253,6 +264,7 @@ impl ProfileExporter { let event = json!({ "attachments": attachments, "tags_profiler": tags_profiler, + "process_tags": tags_process, "start": DateTime::::from(profile.start).format("%Y-%m-%dT%H:%M:%S%.9fZ").to_string(), "end": DateTime::::from(profile.end).format("%Y-%m-%dT%H:%M:%S%.9fZ").to_string(), "family": self.family.as_ref(), diff --git a/libdd-profiling/tests/form.rs b/libdd-profiling/tests/form.rs index e13ba371f5..d3bf0bc9a1 100644 --- a/libdd-profiling/tests/form.rs +++ b/libdd-profiling/tests/form.rs @@ -23,6 +23,7 @@ fn multipart( files_to_compress_and_export, files_to_export_unmodified, None, + None, internal_metadata, info, )