User interface for recording and managing ETW traces
C++ Python Batchfile Roff C Assembly
Clone or download
randomascii Update list of which Chrome categories to trace
In crrev.com/c/1052130 one of the Chrome tracing categories was renamed.
This change aligns the UIforETW UI to match Chrome.

In crrev.com/c//1134516 support was added for ETW tracing of Chrome's
"latency" category and this change adds UIforETW support. This is an
extremely useful (low-bandwidth, performance analysis relevant) category
which I'm now going trace by default.
Latest commit b8f52da Jul 15, 2018
Permalink
Failed to load latest commit information.
DummyChrome Simplified recording of Chrome ETW events Aug 8, 2015
ETWEventDemo Move ETWEventDemo out of the 'bin' directory and update its comments. Apr 11, 2015
ETWInsights Upgrade ETWInsights to VC++ 2015 Mar 30, 2016
ETWProviders Add sampling of arbitrary performance counters Oct 24, 2016
EventEmitter Add support for disabling background monitoring Aug 4, 2017
LabScripts Delete temporary .etl files in stop_tracing.bat May 1, 2017
PowerMon Command-line tool for monitoring Intel power MSRs May 11, 2016
RetrieveSymbols Get RetrieveSymbols to use https in test mode Nov 5, 2015
UIforETW Update list of which Chrome categories to trace Jul 15, 2018
bin Rearrange hidden columns in default WPA profile May 4, 2018
include/ETWProviders Miscellaneous fixes from /analyze C++ Core Checks Mar 28, 2018
lib Add sampling of arbitrary performance counters Oct 24, 2016
third_party First UIforETW commit. Apr 10, 2015
.gitignore Fixing .gitignore for .vs directories Oct 27, 2017
AUTHORS Make flamegraph generation python script more flexible Apr 29, 2016
CONTRIBUTING First UIforETW commit. Apr 10, 2015
CONTRIBUTORS Make flamegraph generation python script more flexible Apr 29, 2016
CompatibilityManifest.man Add missing compatibility manifest. Apr 10, 2015
LICENSE First UIforETW commit. Apr 10, 2015
README Update README to point to etwcentral Feb 1, 2018
SignBinaries.bat Add batch file to sign main executables Mar 26, 2017
excludecopy.txt Update file exclude list for package_etw.bat Mar 3, 2017
make_zip_file.py Included etwpackage\ in etwpackage.zip paths Aug 11, 2015
package_etw.bat Update packaging script to sign all binaries Sep 8, 2017
rename_to_version.py Clean up package_etw.bat Jun 18, 2017

README

UIforETW is a user interface for recording ETW (Event Tracing for
Windows) traces, which allow amazingly deep investigations of
performance problems on Windows. Its goals include:
 - making recording ETW traces easy for non-developers
 - making it easy to record additional contextual data such as user
input and CPU temperature in order to make trace analysis easier
 - making trace management easier for developers
 - working around bugs in WPT (Windows Performance Toolkit)

Tutorials on how to use ETW to investigate performance problems on
Windows can be found here:
https://tinyurl.com/etwcentral

For specific details on this project see this post which includes
some documentation and an explanation for why this project was
created:
https://randomascii.wordpress.com/2015/04/14/uiforetw-windows-performance-made-easier/

UIforETW makes it much easier to control how traces are recorded than
using batch files or Microsoft's wprui. UIforETW also works around
numerous problems with ETW tracing (fixing symbol loading issues)
and adds extra features such as categorizing chrome processes,
monitoring working sets, etc.

UIforETW also lists all the recorded traces and displays editable notes
associated with each one.

UIforETW has some features that are specific to Chrome developers - but
it is fully functional for non-Chrome developers as well.

When adding TraceLogging and EventSource providers, UIforETW supports
the same *Name naming convention as other ETW tools. See
https://blogs.msdn.microsoft.com/dcook/2015/09/08/etw-provider-names-and-guids/
to ensure that your provider name and GUID conform to the convention.
EventSource providers should automatically match.

If you want to use UIforETW then you should download the latest
etwpackage.zip from the releases page at:
https://github.com/google/UIforETW/releases

If you want to build or modify UIforETW then you should clone the repo
from https://github.com/google/UIforETW.git and then build
UIforETW\UIforETW.sln.

Pull requests are welcomed. For information on contributing see the
CONTRIBUTING file. When writing commit messages try following the
general guidelines from here:
http://chris.beams.io/posts/git-commit/
Small pull requests are preferred - it's better to do several small
pull requests, each with a unifying theme - than to do one huge pull
request.

This is not an official Google project and is not supported by Google
in any way.