Alerting on average CPU percentage on multi-core processors, redux

I’m running this version:

bash-4.4$ ./validate.php
===========================================
Component | Version
--------- | -------
LibreNMS  | 26.3.1 (2026-03-17T05:25:34-04:00)
DB Schema | 2026_03_05_112733_ospfv3_instances_nullable (374)
PHP       | 8.2.28
Python    | 3.6.8
Database  | MariaDB 10.3.39-MariaDB
RRDTool   | 1.7.0
SNMP      | 5.8
===========================================

[OK]    Composer Version: 2.9.5
[OK]    Dependencies up-to-date.
[OK]    Database Connected
[OK]    Database Schema is current
[OK]    SQL Server meets minimum requirements
[OK]    lower_case_table_names is enabled
[OK]    MySQL engine is optimal
[OK]    Database and column collations are correct
[OK]    Database schema correct
[OK]    MySQL and PHP time match
[OK]    Distributed Polling setting is enabled globally
[OK]    Connected to rrdcached
[OK]    Active pollers found
[OK]    Dispatcher Service is enabled
[OK]    Locks are functional
[OK]    Python wrapper cron entry is not present
[OK]    Redis is functional
[OK]    rrdtool version ok
[OK]    Connected to rrdcached
[WARN]  Your local git contains modified files, this could prevent automatic updates.
        [FIX]:
        You can fix this with ./scripts/github-remove
        Modified Files:
         resources/definitions/os_discovery/dell-os10.yaml

I am trying to implement the solution that is provided in this post:

It seems dead simple. I’ve defined this macro:

bash-4.4$ lnms config:get alert.macros.rule.processors_usage_avg_perc
(SELECT AVG(%processors.processor_usage))

I’ve got the rule set up in the alerts:

But this thing is going off every day for what looks like is 85% of a single core (as luck would have it, it isn’t right now, but it was a few minutes ago when I started writing this post).

You can see, the most recent machine to alert on this has not come anywhere close to 85%:

Thanks in advance for your help!

PS: the docs still reference an old way of doing this that seems no longer to be the recommended way in the previous post, or is that post wrong and this is still necessary?

AFAIK, this is not solved yet.

Maybe it could be solved by adding a synthetic CPU that averages all CPUs. (this is more me thinking out loud)

Oh rats! It looked very much like the previous post would just solve it. Is there any way to mark that as not a thing that works, just as it would have saved me some time?

I think that’s probably a good idea/what most people would want.

Alternatively, I guess I could set something to be like "6400%”, but I guess that still requires a synthetic CPU?