Checking results with Adaptyst Analyser

After running Adaptyst, you can analyse its results with a separate program called Adaptyst Analyser.

Modules in Adaptyst Analyser

You must install the same modules you use in Adaptyst in Adaptyst Analyser. Each module comes with its Adaptyst Analyser part that can be set up by running:

adaptyst-analyser <path to the Adaptyst Analyser module directory>

You can check the list of currently-installed modules in Adaptyst Analyser by running adaptyst-analyser -l.

Web server / Interactive website

The main functionality of Adaptyst Analyser is a web server serving the interactive website for browsing performance analysis results produced e.g. by Adaptyst.

The server can be started by running adaptyst-analyser <path to results>, where <path to results> is the path to a directory containing result folders created e.g. by Adaptyst. For configuration options, see adaptyst-analyser --help.

Help message printed by adaptyst-analyser --help
usage: adaptyst-analyser [-h] [--version] [-a ADDR] [-t TITLE] [-b CSS] [--force-install] [-u] [-d] [-l] [PATH]

Adaptyst Analyser web server

positional arguments:
  PATH             relative or absolute path to a performance analysis results directory to inspect or an Adaptyst Analyser
                   module directory to install

options:
  -h, --help       show this help message and exit
  --version        print version and exit
  -a ADDR          address and port to bind to, default: 127.0.0.1:8000
  -t TITLE         custom title to be displayed alongside "Adaptyst Analyser" (e.g. if set to XYZ, the displayed entire
                   title will be "Adaptyst Analyser (XYZ)")
  -b CSS           custom background CSS of the website (syntax is the same as in "background" in CSS, do not use
                   semicolons)
  --force-install  (re)install all core JavaScript dependencies even if they are already set up
  -u               update/reinstall the module if it is already installed
  -d               install the module in development mode
  -l               list in detail all installed Adaptyst Analyser modules

When adaptyst-analyser is run, look out for an output line similar to this:

[2024-10-12 13:57:52 +0200] [2192] [INFO] Listening at: http://127.0.0.1:8000 (2192)

The address points to the website where you can browse your profiling results.

Under the hood, Gunicorn and Flask are used (set up automatically when installing Adaptyst Analyser).

If you prefer not to use adaptyst-analyser or you cannot use it, set the FLASK_PROFILING_STORAGE environment variable to the path to a results directory and start the adaptystanalyser.app:app Flask app using a method of your choice.

Using results from other programs than Adaptyst

While Adaptyst Analyser is designed with Adaptyst in mind, it can be used with any other profiler which produces result files in the Adaptyst format.

You can check the “Structure of results” box in Running Adaptyst and the source code of Adaptyst along with its open-source modules for learning how it formats its profiling results.

Website navigation

The website is a window-based system: you start with the main view which is able to host multiple internal windows. You can open as many windows as you wish and every window can be freely moved, resized, and collapsed (by clicking the eye icon in a title bar). All windows persist across performance analysis sessions (so you can e.g. open two windows side-by-side from two different sessions).

After opening the website, follow these two steps:

  1. Select your performance analysis session from the “Please select a performance analysis session” combobox and wait until the session loads.
  2. You will see a visualisation of the system graph of the session. Double-click your node of choice to open more information related to the node as provided by the modules attached to it. The way this is displayed is module-dependent: follow the documentation of the modules.

Window tips

  • If you want to quickly refresh your window or revert its state to the original one (one use case for this in the context of linuxperf is going back to the beginning when analysing a complex flame graph with lots of custom regex-based replacements), click the “refresh” icon in the window header.
  • If you want to rename the title of a window (e.g. to make it easier to distinguish multiple windows of the same type), click the “rename” icon in the window header.