Bug: Checkmk 2.5 GUI very slow on Terminal Server without GPU acceleration (backdrop-filter)

CMK version:2.5.0p8
OS version:RHEL10


Error message: (none — this is not a crash/error, but a GUI performance regression)

Output of “cmk --debug -vvn hostname”: No errors, host/service checks run normally. This is purely a frontend rendering issue, unrelated to monitoring/check execution.


Description:

Since upgrading from 2.4 to 2.5, the Checkmk GUI is extremely slow/laggy when accessed from a Windows Terminal Server / RDP session without 3D/GPU acceleration. Scrolling, opening menus, and general UI interaction feel sluggish, while the same GUI on a regular PC with GPU acceleration is fast. This behavior did not exist in 2.4.

Root cause found:

The 2.5 UI introduced backdrop-filter:blur(...) CSS rules (e.g. theme.css for the Facelift theme, and the new Vue-based frontend bundle under cmk-frontend-vue/assets/). backdrop-filter is GPU-composited by the browser. Without hardware acceleration, the browser falls back to software rendering for the blur effect, which is very expensive and causes the whole UI to feel slow — confirmed by installing a browser extension that strips/rewrites backdrop-filter, which immediately fixes the issue.

Workarounds:

  1. Server-side CSS patch (per Checkmk site): Copy the affected CSS files into the site’s local/ override hierarchy (survives updates in principle, but the Vue bundle filename is content-hashed and changes on every rebuild, so this needs to be re-applied after updates) and replace the backdrop-filter value with none:
grep -rl "backdrop-filter" ~/share/check_mk/web/htdocs --include="*.css"

then mirror the found files under ~/local/share/check_mk/web/htdocs/... and patch:

sed -i -E 's/(-webkit-)?backdrop-filter:[^;]+;/\1backdrop-filter:none;/g' <file>

  1. Reverse-proxy level patch (no per-site changes needed, survives Checkmk updates): If you already run a local Apache in front of the site (e.g. for Kerberos auth), you can rewrite the CSS response on the fly using mod_substitute, so you don’t have to touch/re-patch anything inside the OMD site after updates:
<LocationMatch ^/\w+/check_mk/themes/facelift/theme.css>
    AddOutputFilterByType SUBSTITUTE text/css
    Substitute "s|backdrop-filter:blur(1.5px)|backdrop-filter:none|ni"
</LocationMatch>
<LocationMatch ^/\w+/check_mk/cmk-frontend-vue/assets>
    AddOutputFilterByType SUBSTITUTE text/css
    Substitute "s|backdrop-filter:blur(1.5px)|backdrop-filter:none|ni"
</LocationMatch>

This approach is nice because it doesn’t require touching the Checkmk site’s file structure at all and keeps working across omd update.

Question to the community / Checkmk team:

  • Is this a known issue for 2.5? I couldn’t find an existing Werk/bug report about it.

  • Would it make sense for Checkmk to guard the backdrop-filter effect behind a media query (e.g. prefers-reduced-transparency / @supports) or make it configurable in Global Settings, so RDS/Citrix/thin-client users without GPU acceleration aren’t affected by default?

3 Likes

@theyken haven’t had this issue ourselves yet, but this looks like something that the UX department will care about :slight_smile:

1 Like

Hi @p.hasterok

Thank you so much for reporting the issue (and @gstolz for tagging) ! We have opened an internal bug ticket to solve it :slight_smile:

Cheers

Tanja

5 Likes