Verifying ImpulseCore health

How to read the Overview tab — Modules registered, Cron heartbeat, Audit log, CVE feed status — and the SQL spot checks for when the admin UI isn't loading.

Last updated 20 days ago

Verifying ImpulseCore health

The Overview tab is the single page you check when you want to know whether Core and its modules are healthy. Four panels, each with one job.

Modules registered

One row per active Impulse module that has registered itself with Core. Each row shows the module slug, display name, version, and last-registered timestamp.

  • Healthy: every module you've activated appears, with a recent last_registered_at.
  • Empty on a fresh install: expected. The list fills in as you activate each module.
  • Missing module: the module's addon is active in WHMCS but never called ImpulseCore::registerModule(). Re-activate the module's addon (Deactivate, then Activate) to re-fire its activate hook.

Cron runner heartbeat

The timestamp of the most recent Core cron tick, plus a per-task list with last-run timestamps and a green / amber / red indicator.

  • Green — task last ran within its normal cadence.
  • Amber — overdue (last run > 2x the cadence). Worth a glance, not yet an emergency.
  • Red — last run > 4x the cadence. The task is stuck or the runner isn't firing.
  • Every task red — the underlying crontab line isn't firing at all. Skip ahead to the SQL spot check.

A fresh install will show no heartbeat until the first 5-minute tick lands.

Audit log (last 20 events)

The latest 20 entries across every module. Each row shows timestamp, module slug, source (admin / cron / customer / system), action, and severity.

  • Healthy: a steady stream of info events. The activation events that fired during install are at the bottom of the list once volume picks up.
  • Amber territory: isolated warn rows. Worth clicking through to read the context.
  • Investigate: clusters of error severity, especially from one module or one cron task. Open the full Audit tab and filter by module + severity to triage.

CVE feed status

Populates once at least one module ships a SecurityCollector. Shows freshness for the three upstream feeds:

  • Ubuntu USN — should refresh hourly.
  • CISA KEV — should refresh hourly.
  • NVD by CPE — should refresh daily.
  • Healthy: all three timestamps within their cadence.
  • Amber: one feed stale by more than 2x its cadence. Usually a transient network blip; recovers on the next refresh.
  • Red: all three stale. Almost always means the Core cron itself isn't running — start with the cron heartbeat panel.

Empty CVE feed status with no modules registered yet is correct, not a problem.

SQL spot checks when the admin UI isn't loading

If the Overview tab won't render (PHP fatal, blank page, missing addon entry), check straight from the database.

-- Is the cron runner firing at all? SELECT MAX(executed_at) FROM mod_impulsecore_cron_log; -- Should be within the last 5 minutes. -- What modules has Core seen? SELECT slug, display_name, version, last_registered_at FROM mod_impulsecore_modules ORDER BY last_registered_at DESC; -- Recent errors across all modules SELECT created_at, module_slug, action, detail FROM mod_impulsecore_audit_log WHERE severity = 'error' AND created_at > NOW() - INTERVAL 1 DAY ORDER BY created_at DESC LIMIT 50; 

If mod_impulsecore_cron_log has no recent rows, the system crontab isn't firing Core's cron.php. Verify with crontab -l | grep impulsecore and check journalctl -u cron or /var/spool/mail/root for the cron user's error output.

Related