Share via


What are Windows Performance Analyzer Plugins?

Note

Following features are available in Windows Performance Toolkit (May 2024) release. To learn more, see What's new in the Windows performance toolkit v11.

Windows Performance Analyzer plugins enhance the WPA's functionality by adding support to process and new types of file formats into structured, tabular data that can be analyzed in WPA. While previous versions of WPA supported loading plugins by specifying directories to search via command line arguments, it is now possible to install, update, and manage plugins directly via the new WPA Launcher. Plugins are packed and distributed as. ptix(performance toolkit extension) files, a new format that WPA can read to install plugins to the user's filesystem.

PTIX Package Structure

A PTIX package, identifiable by the .ptix file extension, encapsulates a single WPA plugin along with its associated metadata. This package allows WPA and other SDK drivers to install and manage plugins to a persisted repository.

Key Characteristics:

  1. Self-Contained: Each PTIX package includes all necessary components and dependencies required by the plugin, ensuring it can operate independently.

  2. Single Plugin Per Package: Each PTIX file contains exactly one plugin. This means that whatever is bundled into the PTIX file by the plugin author is treated as a single, standalone plugin within the WPA ecosystem.

  3. Standardized Format: The PTIX package follows a standardized format to ensure consistency and compatibility. The internal structure of the PTIX file includes:

    • The plugin's executable code

    • Metadata files describing the plugin, such as its name, version, and authors.

    • Any additional resources or dependencies required by the plugin, such as the version of the SDK the plugin was compiled against

Benefits of PTIX Packages

  • Ease of Distribution: The standardized PTIX format simplifies the distribution and installation of WPA plugins, making it easier for users to enhance their WPA experience. Once a PTIX is installed, WPA will automatically load and use the plugin every time it is launched.

  • Self-Sufficiency: By packaging all necessary components within a single file, PTIX packages eliminate dependency issues, ensuring that plugins work out of the box.

List of available plugins

Below is a list of WPA plugins that are available to download and install today. We will continue to refresh the list.

1.      Linux and Android plugins – This repository offers various Linux and Android performance analysis tools. The supported plugins in version 1.6.2include:

  • Perfetto for Android & Chromium – Analyzes Android and user traces, along with performance trace files from Chromium-based browsers.

  • Android Logcat – Allows viewing of Android system and application logs recorded with Android Logcat.

  • Linux - LTTng – Processes LTTng performance trace files, which include key Linux performance indicators such as kernel CPU scheduling, system calls, file events, and userspace applications.

  • Linux - Cloud-Init – Processes log files from Cloud-Init.

  • Linux - Microsoft Azure Linux Guest Agent – Processes log files produced by the Microsoft Azure Linux Guest Agent (WALinuxAgent).

  • Linux - Dmesg – Processes Dmesg logs from the Linux/Unix kernel ring buffer.

Note

The Linux and Android plugins are available under "..\Microsoft-Performance-Tools-Linux-Android\MicrosoftPerfToolkitAddins\PTIX" folder

How to install plugins?

Once you have a PTIX package (either from the above list or one developed locally), you can use the new WPA Launcher to install its corresponding WPA plugin. On the main screen, click "Install plugin" or use the plugin icon beside the search box to browse to the PTIX you wish to install.

Image showing Windows Performance Analyzer plugins.

How to build a plugin?

WPA plugins can be created using the Microsoft Performance Toolkit SDK, an open-source library available on GitHub. To get started developing a plugin, please refer to the repository's documentation. Once you are ready to package your plugin to a redistributable PTIX package, you can use the Plugin Packager CLI to create a PTIX. For more information on how to use the tool, please refer to its documentation in the Performance Toolkit SDK's repository.