User/sheilk/add api usage telemetry (#7320)

* winml telemetry

* change name to ApiUsage

Co-authored-by: Sheil Kumar <sheilk@microsoft.com>
This commit is contained in:
Sheil Kumar 2021-04-12 17:51:25 -07:00 committed by GitHub
parent 4971310d6a
commit b7c89ce78a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 0 deletions

View file

@ -11,6 +11,8 @@
namespace WINML_EXPERIMENTALP {
LearningModelBuilder::LearningModelBuilder(int64_t opset) : inputs_(nullptr), outputs_(nullptr), operators_(nullptr), inert_session_(nullptr) {
telemetry_helper.LogApiUsage("LearningModelBuilder::LearningModelBuilder");
WINML_THROW_IF_FAILED(CreateOnnxruntimeEngineFactory(engine_factory_.put()));
WINML_THROW_IF_FAILED(engine_factory_->CreateEmptyModel(opset, model_.put()));
inputs_ = winrt::make<winml_experimentalp::LearningModelInputs>(*this);
@ -44,12 +46,16 @@ winml_experimental::LearningModelOperatorSet LearningModelBuilder::Operators() {
}
winml::LearningModel LearningModelBuilder::CreateModel() {
telemetry_helper.LogApiUsage("LearningModelBuilder::CreateModel");
com_ptr<_winml::IModel> model_clone;
model_->CloneModel(model_clone.put());
return winrt::make<winmlp::LearningModel>(engine_factory_.get(), model_clone.get(), nullptr);
}
void LearningModelBuilder::Save(const winrt::hstring& file_name) {
telemetry_helper.LogApiUsage("LearningModelBuilder::Save");
model_->SaveModel(file_name.c_str(), file_name.size());
}

View file

@ -12,6 +12,8 @@ LearningModelSessionOptionsExperimental::LearningModelSessionOptionsExperimental
}
wfc::IMapView<winrt::hstring, uint32_t> LearningModelSessionOptionsExperimental::GetNamedDimensionOverrides() {
telemetry_helper.LogApiUsage("LearningModelSessionOptionsExperimental::GetNamedDimensionOverrides");
return overrides_;
}

View file

@ -36,6 +36,7 @@ class Profiler;
#define WINML_TLM_RUNTIME_PERF_VERSION 0
#define WINML_TLM_NATIVE_API_INTRAOP_THREADS_VERSION 0
#define WINML_TLM_NAMED_DIMENSION_OVERRIDE_VERSION 0
#define WINML_TLM_EXPERIMENTAL_API_VERSION 0
#define WinMLTraceLoggingWrite(hProvider, EventName, ...) \
TraceLoggingWrite(hProvider, \
@ -82,6 +83,7 @@ class WinMLTelemetryHelper {
TraceLoggingUnregister(provider_);
}
void LogApiUsage(const char* name);
void LogWinMLShutDown();
void LogWinMLSuspended();
void LogRuntimeError(HRESULT hr, std::string message, PCSTR file, PCSTR function, int line);

View file

@ -16,6 +16,22 @@ WinMLTelemetryHelper::WinMLTelemetryHelper()
WinMLTelemetryHelper::~WinMLTelemetryHelper() {
}
void WinMLTelemetryHelper::LogApiUsage(const char* name){
if (!telemetry_enabled_)
return;
WinMLTraceLoggingWrite(
provider_,
"ApiUsage",
TraceLoggingKeyword(WINML_PROVIDER_KEYWORD_DEFAULT),
TelemetryPrivacyDataTag(PDT_ProductAndServiceUsage),
//Telemetry info
TraceLoggingUInt8(WINML_TLM_EXPERIMENTAL_API_VERSION, "experimentalSchemaVersion"),
// named dimension override info
TraceLoggingString(name, "name"),
TraceLoggingKeyword(MICROSOFT_KEYWORD_MEASURES));
}
void WinMLTelemetryHelper::LogWinMLShutDown() {
std::string message = BINARY_NAME;
message += " is unloaded";