Missing pollers table in alert rules since update to 1.38

Hi there,

I’ve had some issues with being able to edit alert rules since the update to 1.38 and the new look alert editing. Now, librenms doesn’t know what “pollers” is when trying to edit the pollers rule (ie, the old style and the alert that is/was in place is "%pollers.time_taken >= “250"”. But now, can’t edit this rule because %pollers (or just pollers) doesn’t show up.

There’s still a lot of other tables that do, such as macros, access_points, applications, etc. etc. But pollers.* is gone.

Here’s my validate.php output: - please note that I am aware of my global change of storage_perc_warn to 60, and the modified file is due to a fix needing to be applied to allow storage_perc_warn to be used in an alert rule as “%storage.storage_perc” >= storage.storage_perc_warn (which broke in this update to 1.38 as well).

====================================

Component Version
LibreNMS 1.38
DB Schema 247
PHP 5.6.35-1~dotdeb+7.1
MySQL 5.5.59-0+deb7u1
RRDTool 1.4.7
SNMP NET-SNMP 5.4.3

====================================

[OK] Composer Version: 1.6.4
[OK] Dependencies up-to-date.
[OK] Database connection successful
[FAIL] Database: incorrect column (storage/storage_perc_warn)
[FAIL] We have detected that your database schema may be wrong, please report the following to us on IRC or the community site (https://t.libren.ms/5gscd):
[FIX] Run the following SQL statements to fix.
SQL Statements:
ALTER TABLE storage CHANGE storage_perc_warn storage_perc_warn int(11) NULL DEFAULT ‘60’ ;
[FAIL] fping6 could not be executed. fping6 must have CAP_NET_RAW capability (getcap) or suid. Selinux exlusions may be required.
(/usr/bin/fping6: can’t create raw socket (must run as root?) : Address family not supported by protocol)
[WARN] Your local git contains modified files, this could prevent automatic updates.
[FIX] You can fix this with ./scripts/github-remove
Modified Files:
LibreNMS/Alerting/QueryBuilderFilter.php
rrd/.gitignore

Thanks.

Alerts are per device.

Pollers cannot be tied to a device. Also pollers.time_taken is not always what you think it is. If you could create an alert rule like this it will trigger for all devices if it is triggered (or no devices because it is malformed)

If you want to alert when a device takes too long to poll, I suggest you use. devices.last_polled_timetaken >= 290

Well crud, there is an rule in the collection defining the broken rule… how silly. Need to fix that.

Interesting… isn’t the rule from the collection supposed to be allowing an alert to happen if the total poll run time is excessive? Not just against one device…?

No, the rule in the collection is just plain broken.

Also, There is not really a concept of total poll run in LibreNMS any more. It is continuous and can overlap even.

OK, I understand that a little better now then, that makes sense.

I’ll replace the rule with one that checks against long device polls.

Thanks muchly!