Werk #20060: Add performance profiling with interactive flamegraphs
| Component | Setup | ||
| Title | Add performance profiling with interactive flamegraphs | ||
| Date | Jul 13, 2026 | ||
| Level | Prominent Change | ||
| Class | New Feature | ||
| Compatibility | Incompatible - Manual interaction might be required | ||
| Checkmk versions & editions |
|
You can now inspect the performance of Checkmk GUI requests and cmk
command-line runs directly in the web interface, visualized as interactive
flamegraphs.
What changed
Checkmk collects cProfile data from profiled GUI requests and from cmk
--profile command-line runs into a shared profiles directory.
A new page under Setup > Maintenance > Performance profiles lists all
collected profiles.
From there you can open any profile as an interactive flamegraph to drill into
call stacks, spot hotspots, and sort functions by their own and cumulative
runtime.
Incompatible change
cmk --profile no longer writes a profile.out dump and a show_profile.py
helper script into the current working directory. Instead, the profile is now
stored under var/check_mk/profiles (the shared profiles directory), and the
path to the written file is printed to stderr after the run. Once the feature is
enabled, the same profile also shows up on the Performance profiles page. If
you have scripts that read profile.out from the working directory, adjust them
to the new location.
How to use it
The feature is off by default. Turn it on under Setup > General > Global settings in the Developer Tools section: open Performance profiles and tick Enable performance profiles. This makes the Setup > Maintenance > Performance profiles page available and lets Checkmk record profiles. The same setting also controls how many profiles are kept and for how long.
To capture GUI requests as well, set Profile requests (also under Developer
Tools) to profile by request or for all requests. Command-line profiles created
with cmk --profile show up in the same list automatically once the feature is
enabled.
Why this matters
Until now the raw .prof dumps produced by request profiling and cmk
--profile had to be collected from disk and analyzed with external tooling.
This feature turns that data into a self-service diagnostics workflow inside
Checkmk, making it much easier to track down slow requests and command-line
runs.