Data diagnostics opt-in

This commit is contained in:
Stefan Markovic
2024-09-24 13:47:38 +02:00
parent 2146dff3bf
commit bea3607ea0
242 changed files with 2546 additions and 1283 deletions

View File

@@ -188,6 +188,9 @@
<ProjectReference Include="..\..\..\common\logger\logger.vcxproj">
<Project>{d9b8fc84-322a-4f9f-bbb9-20915c47ddfd}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\common\Telemetry\EtwTrace\EtwTrace.vcxproj">
<Project>{8f021b46-362b-485c-bfba-ccf83e820cbd}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\common\Themes\Themes.vcxproj">
<Project>{98537082-0fdb-40de-abd8-0dc5a4269bab}</Project>
</ProjectReference>

View File

@@ -65,7 +65,4 @@
<ItemGroup>
<ResourceCompile Include="PowerRenameUI.rc" />
</ItemGroup>
<ItemGroup>
<Natvis Include="$(MSBuildThisFileDirectory)..\..\natvis\wil.natvis" />
</ItemGroup>
</Project>

View File

@@ -22,7 +22,7 @@ using namespace PowerRenameUI::implementation;
namespace fs = std::filesystem;
//#define DEBUG_BENCHMARK_100K_ENTRIES
#define DEBUG_BENCHMARK_100K_ENTRIES
std::vector<std::wstring> g_files;
@@ -121,7 +121,7 @@ void App::OnLaunched(LaunchActivatedEventArgs const&)
}
#ifdef DEBUG_BENCHMARK_100K_ENTRIES
const std::wstring_view ROOT_PATH = L"R:\\PowerRenameBenchmark";
const std::wstring_view ROOT_PATH = L"C:\\PowerRenameBenchmark";
std::wstring subdirectory_name = L"0";
std::error_code _;
@@ -136,7 +136,7 @@ void App::OnLaunched(LaunchActivatedEventArgs const&)
g_files.push_back(fs::path{ ROOT_PATH });
constexpr int pow2_threshold = 10;
constexpr int num_files = 100'000;
constexpr int num_files = 10;
for (int i = 0; i < num_files; ++i)
{
fs::path file_path{ ROOT_PATH };

View File

@@ -12,6 +12,8 @@
#include <common/utils/logger_helper.h>
#include <common/utils/process_path.h>
#include <common/Telemetry/EtwTrace/EtwTrace.h>
#include <atlstr.h>
#include <exception>
#include <string>
@@ -211,6 +213,8 @@ namespace winrt::PowerRenameUI::implementation
InitializeComponent();
m_etwTrace.UpdateState(true);
listView_ExplorerItems().ApplyTemplate();
#ifdef ENABLE_RECYCLING_VIRTUALIZATION_MODE
if (auto scrollViewer = FindScrollViewer(listView_ExplorerItems()); scrollViewer)
@@ -313,6 +317,9 @@ namespace winrt::PowerRenameUI::implementation
{
LastRunSettingsInstance().UpdateLastWindowSize(m_updatedWindowSize->first, m_updatedWindowSize->second);
}
m_etwTrace.Flush();
m_etwTrace.UpdateState(false);
}
void MainWindow::InvalidateItemListViewState()

View File

@@ -5,6 +5,8 @@
#include "winrt/Windows.UI.Xaml.Interop.h"
#include "winrt/Windows.UI.Xaml.Controls.Primitives.h"
#include <common/Telemetry/EtwTrace/EtwTrace.h>
#include "MainWindow.g.h"
#include "PatternSnippet.h"
#include "ExplorerItem.h"
@@ -143,6 +145,8 @@ namespace winrt::PowerRenameUI::implementation
void SetCheckboxesFromFlags(DWORD flags);
void UpdateCounts();
Shared::Trace::ETWTrace m_etwTrace{};
HWND m_window{};
bool m_disableCountUpdate = false;

View File

@@ -29,6 +29,4 @@
#include <string>
#include <random>
#include <ProjectTelemetry.h>
#include <winrt/base.h>

View File

@@ -2,69 +2,66 @@
#include "trace.h"
#include "Settings.h"
#include <common/Telemetry/TraceBase.h>
TRACELOGGING_DEFINE_PROVIDER(
g_hProvider,
"Microsoft.PowerToys",
// {38e8889b-9731-53f5-e901-e8a7c1753074}
(0x38e8889b, 0x9731, 0x53f5, 0xe9, 0x01, 0xe8, 0xa7, 0xc1, 0x75, 0x30, 0x74),
TraceLoggingOptionProjectTelemetry());
void Trace::RegisterProvider() noexcept
{
TraceLoggingRegister(g_hProvider);
}
void Trace::UnregisterProvider() noexcept
{
TraceLoggingUnregister(g_hProvider);
}
g_hProvider,
"Microsoft.PowerToys",
// {38e8889b-9731-53f5-e901-e8a7c1753074}
(0x38e8889b, 0x9731, 0x53f5, 0xe9, 0x01, 0xe8, 0xa7, 0xc1, 0x75, 0x30, 0x74),
TraceLoggingOptionProjectTelemetry());
void Trace::Invoked() noexcept
{
TraceLoggingWrite(
TraceLoggingWriteWrapper(
g_hProvider,
"PowerRename_Invoked",
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
TraceLoggingEventTag(MICROSOFT_EVENTTAG_DROP_PII));
}
void Trace::InvokedRet(_In_ HRESULT hr) noexcept
{
TraceLoggingWrite(
TraceLoggingWriteWrapper(
g_hProvider,
"PowerRename_InvokedRet",
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingHResult(hr),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
TraceLoggingEventTag(MICROSOFT_EVENTTAG_DROP_PII));
}
void Trace::EnablePowerRename(_In_ bool enabled) noexcept
{
TraceLoggingWrite(
TraceLoggingWriteWrapper(
g_hProvider,
"PowerRename_EnablePowerRename",
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
TraceLoggingEventTag(MICROSOFT_EVENTTAG_DROP_PII),
TraceLoggingBoolean(enabled, "Enabled"));
}
void Trace::UIShownRet(_In_ HRESULT hr) noexcept
{
TraceLoggingWrite(
TraceLoggingWriteWrapper(
g_hProvider,
"PowerRename_UIShownRet",
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingHResult(hr),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
TraceLoggingEventTag(MICROSOFT_EVENTTAG_DROP_PII));
}
void Trace::RenameOperation(_In_ UINT totalItemCount, _In_ UINT selectedItemCount, _In_ UINT renameItemCount, _In_ DWORD flags, _In_ PCWSTR extensionList) noexcept
{
TraceLoggingWrite(
TraceLoggingWriteWrapper(
g_hProvider,
"PowerRename_RenameOperation",
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
TraceLoggingEventTag(MICROSOFT_EVENTTAG_DROP_PII),
TraceLoggingUInt32(totalItemCount, "TotalItemCount"),
TraceLoggingUInt32(selectedItemCount, "SelectedItemCount"),
TraceLoggingUInt32(renameItemCount, "RenameItemCount"),
@@ -74,11 +71,12 @@ void Trace::RenameOperation(_In_ UINT totalItemCount, _In_ UINT selectedItemCoun
void Trace::SettingsChanged() noexcept
{
TraceLoggingWrite(
TraceLoggingWriteWrapper(
g_hProvider,
"PowerRename_SettingsChanged",
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE),
TraceLoggingEventTag(MICROSOFT_EVENTTAG_DROP_PII),
TraceLoggingBoolean(CSettingsInstance().GetEnabled(), "IsEnabled"),
TraceLoggingBoolean(CSettingsInstance().GetShowIconOnMenu(), "ShowIconOnMenu"),
TraceLoggingBoolean(CSettingsInstance().GetExtendedContextMenuOnly(), "ExtendedContextMenuOnly"),

View File

@@ -1,9 +1,9 @@
#pragma once
class Trace {
#include <common/Telemetry/TraceBase.h>
class Trace : public telemetry::TraceBase {
public:
static void RegisterProvider() noexcept;
static void UnregisterProvider() noexcept;
static void Invoked() noexcept;
static void InvokedRet(_In_ HRESULT hr) noexcept;
static void EnablePowerRename(_In_ bool enabled) noexcept;