@@ -57,6 +57,10 @@ TRACELOGGING_DEFINE_PROVIDER(telemetry_provider_handle, "Microsoft.ML.ONNXRuntim
5757#pragma warning(pop)
5858#endif
5959
60+ #ifndef ORT_CALLER_FRAMEWORK
61+ #define ORT_CALLER_FRAMEWORK " "
62+ #endif
63+
6064std::mutex WindowsTelemetry::mutex_;
6165std::mutex WindowsTelemetry::provider_change_mutex_;
6266uint32_t WindowsTelemetry::global_register_count_ = 0 ;
@@ -184,7 +188,8 @@ void WindowsTelemetry::LogProcessInfo() const {
184188 TraceLoggingUInt8 (0 , " schemaVersion" ),
185189 TraceLoggingString (ORT_VERSION, " runtimeVersion" ),
186190 TraceLoggingBool (IsDebuggerPresent (), " isDebuggerAttached" ),
187- TraceLoggingBool (isRedist, " isRedist" ));
191+ TraceLoggingBool (isRedist, " isRedist" ),
192+ TraceLoggingString (ORT_CALLER_FRAMEWORK, " frameworkName" ));
188193
189194 process_info_logged = true ;
190195}
@@ -220,7 +225,11 @@ void WindowsTelemetry::LogEvaluationStart() const {
220225void WindowsTelemetry::LogSessionCreation (uint32_t session_id, int64_t ir_version, const std::string& model_producer_name,
221226 const std::string& model_producer_version, const std::string& model_domain,
222227 const std::unordered_map<std::string, int >& domain_to_version_map,
228+ const std::string& model_file_name,
223229 const std::string& model_graph_name,
230+ const std::string& model_weight_type,
231+ const std::string& model_graph_hash,
232+ const std::string& model_weight_hash,
224233 const std::unordered_map<std::string, std::string>& model_metadata,
225234 const std::string& loaded_from, const std::vector<std::string>& execution_provider_ids,
226235 bool use_fp16, bool captureState) const {
@@ -285,7 +294,11 @@ void WindowsTelemetry::LogSessionCreation(uint32_t session_id, int64_t ir_versio
285294 TraceLoggingString (model_domain.c_str (), " modelDomain" ),
286295 TraceLoggingBool (use_fp16, " usefp16" ),
287296 TraceLoggingString (domain_to_version_string.c_str (), " domainToVersionMap" ),
297+ TraceLoggingString (model_file_name.c_str (), " modelFileName" ),
288298 TraceLoggingString (model_graph_name.c_str (), " modelGraphName" ),
299+ TraceLoggingString (model_weight_type.c_str (), " modelWeightType" ),
300+ TraceLoggingString (model_graph_hash.c_str (), " modelGraphHash" ),
301+ TraceLoggingString (model_weight_hash.c_str (), " modelWeightHash" ),
289302 TraceLoggingString (model_metadata_string.c_str (), " modelMetaData" ),
290303 TraceLoggingString (loaded_from.c_str (), " loadedFrom" ),
291304 TraceLoggingString (execution_provider_string.c_str (), " executionProviderIds" ));
@@ -307,7 +320,11 @@ void WindowsTelemetry::LogSessionCreation(uint32_t session_id, int64_t ir_versio
307320 TraceLoggingString (model_domain.c_str (), " modelDomain" ),
308321 TraceLoggingBool (use_fp16, " usefp16" ),
309322 TraceLoggingString (domain_to_version_string.c_str (), " domainToVersionMap" ),
323+ TraceLoggingString (model_file_name.c_str (), " modelFileName" ),
310324 TraceLoggingString (model_graph_name.c_str (), " modelGraphName" ),
325+ TraceLoggingString (model_weight_type.c_str (), " modelWeightType" ),
326+ TraceLoggingString (model_graph_hash.c_str (), " modelGraphHash" ),
327+ TraceLoggingString (model_weight_hash.c_str (), " modelWeightHash" ),
311328 TraceLoggingString (model_metadata_string.c_str (), " modelMetaData" ),
312329 TraceLoggingString (loaded_from.c_str (), " loadedFrom" ),
313330 TraceLoggingString (execution_provider_string.c_str (), " executionProviderIds" ));
@@ -356,10 +373,22 @@ void WindowsTelemetry::LogRuntimeError(uint32_t session_id, const common::Status
356373#endif
357374}
358375
359- void WindowsTelemetry::LogRuntimePerf (uint32_t session_id, uint32_t total_runs_since_last, int64_t total_run_duration_since_last) const {
376+ void WindowsTelemetry::LogRuntimePerf (uint32_t session_id, uint32_t total_runs_since_last, int64_t total_run_duration_since_last,
377+ std::unordered_map<int64_t , long long > duration_per_batch_size) const {
360378 if (global_register_count_ == 0 || enabled_ == false )
361379 return ;
362380
381+ // Convert duration_per_batch_size to a formatted string
382+ std::string total_duration_per_batch_size;
383+ for (const auto & entry : duration_per_batch_size) {
384+ if (!total_duration_per_batch_size.empty ()) {
385+ total_duration_per_batch_size += " , " ;
386+ }
387+ total_duration_per_batch_size += std::to_string (entry.first );
388+ total_duration_per_batch_size += " : " ;
389+ total_duration_per_batch_size += std::to_string (entry.second );
390+ }
391+
363392 TraceLoggingWrite (telemetry_provider_handle,
364393 " RuntimePerf" ,
365394 TraceLoggingBool (true , " UTCReplace_AppSessionGuid" ),
@@ -369,7 +398,8 @@ void WindowsTelemetry::LogRuntimePerf(uint32_t session_id, uint32_t total_runs_s
369398 TraceLoggingUInt8 (0 , " schemaVersion" ),
370399 TraceLoggingUInt32 (session_id, " sessionId" ),
371400 TraceLoggingUInt32 (total_runs_since_last, " totalRuns" ),
372- TraceLoggingInt64 (total_run_duration_since_last, " totalRunDuration" ));
401+ TraceLoggingInt64 (total_run_duration_since_last, " totalRunDuration" ),
402+ TraceLoggingString (total_duration_per_batch_size.c_str (), " totalRunDurationPerBatchSize" ));
373403}
374404
375405void WindowsTelemetry::LogExecutionProviderEvent (LUID* adapterLuid) const {
0 commit comments