winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 030d998bc0a11d9ecffc49d8f22818a00954e07b
parent 5c66da1038f024ca82c1d5ce499b7329d98c0038
Author: yao-msft <50888816+yao-msft@users.noreply.github.com>
Date:   Thu, 15 Feb 2024 20:34:47 -0800

Log configuration input hash in configuration summary telemetry (#4173)


Diffstat:
Msrc/Microsoft.Management.Configuration/ConfigurationProcessor.cpp | 2++
Msrc/Microsoft.Management.Configuration/ConfigurationSet.cpp | 10++++++++++
Msrc/Microsoft.Management.Configuration/ConfigurationSet.h | 4++++
Msrc/Microsoft.Management.Configuration/Telemetry/Telemetry.cpp | 11+++++++----
Msrc/Microsoft.Management.Configuration/Telemetry/Telemetry.h | 1+
5 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/Microsoft.Management.Configuration/ConfigurationProcessor.cpp b/src/Microsoft.Management.Configuration/ConfigurationProcessor.cpp @@ -22,6 +22,7 @@ #include <AppInstallerErrors.h> #include <AppInstallerStrings.h> +#include <AppInstallerSHA256.h> #include <winget/GroupPolicy.h> using namespace std::chrono_literals; @@ -288,6 +289,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation auto configurationSet = parser->GetConfigurationSet(); PropagateLifetimeWatcher(configurationSet.as<Windows::Foundation::IUnknown>()); + configurationSet->SetInputHash(AppInstaller::Utility::SHA256::ConvertToString(AppInstaller::Utility::SHA256::ComputeHash(inputString))); result->Initialize(*configurationSet); } diff --git a/src/Microsoft.Management.Configuration/ConfigurationSet.cpp b/src/Microsoft.Management.Configuration/ConfigurationSet.cpp @@ -183,4 +183,14 @@ namespace winrt::Microsoft::Management::Configuration::implementation { return AppInstaller::WinRT::LifetimeWatcherBase::SetLifetimeWatcher(watcher); } + + void ConfigurationSet::SetInputHash(std::string inputHash) + { + m_inputHash = std::move(inputHash); + } + + const std::string& ConfigurationSet::GetInputHash() const + { + return m_inputHash; + } } diff --git a/src/Microsoft.Management.Configuration/ConfigurationSet.h b/src/Microsoft.Management.Configuration/ConfigurationSet.h @@ -68,6 +68,9 @@ namespace winrt::Microsoft::Management::Configuration::implementation HRESULT STDMETHODCALLTYPE SetLifetimeWatcher(IUnknown* watcher); #if !defined(INCLUDE_ONLY_INTERFACE_METHODS) + void SetInputHash(std::string inputHash); + const std::string& GetInputHash() const; + private: hstring m_name; hstring m_origin; @@ -81,6 +84,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation Windows::Foundation::Collections::IVector<ConfigurationParameter> m_parameters{ winrt::multi_threaded_vector<ConfigurationParameter>() }; Windows::Foundation::Collections::ValueSet m_variables; Windows::Foundation::Uri m_schemaUri = nullptr; + std::string m_inputHash; #endif }; } diff --git a/src/Microsoft.Management.Configuration/Telemetry/Telemetry.cpp b/src/Microsoft.Management.Configuration/Telemetry/Telemetry.cpp @@ -295,6 +295,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation void TelemetryTraceLogger::LogConfigProcessingSummary( const guid& setIdentifier, + std::string_view inputHash, bool fromHistory, ConfigurationUnitIntent runIntent, hresult result, @@ -308,6 +309,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation AICLI_TraceLoggingWriteActivity( "ConfigProcessingSummary", TraceLoggingGuid(setIdentifier, "SetID"), + AICLI_TraceLoggingStringView(inputHash, "InputHash"), TraceLoggingBool(fromHistory, "FromHistory"), TraceLoggingInt32(static_cast<int32_t>(runIntent), "RunIntent"), TraceLoggingHResult(result, "Result"), @@ -322,6 +324,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation WinGet_WriteEventToDiagnostics( "ConfigProcessingSummary", WinGet_EventItem(setIdentifier, "SetID"), + WinGet_EventItem(inputHash, "InputHash"), WinGet_EventItem(fromHistory, "FromHistory"), WinGet_EventItem(static_cast<int32_t>(runIntent), "RunIntent"), WinGet_EventItem(result, "Result"), @@ -344,7 +347,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation ConfigRunSummaryData summaryData = ProcessRunResult(result.UnitResults()); - LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Assert, + LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.GetInputHash(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Assert, summaryData.Result, summaryData.FailurePoint, summaryData.AssertSummary, summaryData.InformSummary, summaryData.ApplySummary); } CATCH_LOG(); @@ -361,7 +364,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation ConfigRunSummaryData summaryData = ProcessRunResult(result.UnitResults()); - LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Assert, + LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.GetInputHash(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Assert, error, ConfigurationUnitResultSource::Internal, summaryData.AssertSummary, summaryData.InformSummary, summaryData.ApplySummary); } CATCH_LOG(); @@ -377,7 +380,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation ConfigRunSummaryData summaryData = ProcessRunResult(result.UnitResults()); - LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Apply, + LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.GetInputHash(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Apply, result.ResultCode(), summaryData.FailurePoint, summaryData.AssertSummary, summaryData.InformSummary, summaryData.ApplySummary); } CATCH_LOG(); @@ -394,7 +397,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation ConfigRunSummaryData summaryData = ProcessRunResult(result.UnitResults()); - LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Apply, + LogConfigProcessingSummary(configurationSet.InstanceIdentifier(), configurationSet.GetInputHash(), configurationSet.IsFromHistory(), ConfigurationUnitIntent::Apply, error, ConfigurationUnitResultSource::Internal, summaryData.AssertSummary, summaryData.InformSummary, summaryData.ApplySummary); } CATCH_LOG(); diff --git a/src/Microsoft.Management.Configuration/Telemetry/Telemetry.h b/src/Microsoft.Management.Configuration/Telemetry/Telemetry.h @@ -85,6 +85,7 @@ namespace winrt::Microsoft::Management::Configuration::implementation // Logs a processing summary event for a configuration set. void LogConfigProcessingSummary( const guid& setIdentifier, + std::string_view inputHash, bool fromHistory, ConfigurationUnitIntent runIntent, hresult result,