How to monitor storage usage
Where to find aggregate and per-bucket storage usage, how often it refreshes, and what to do if usage isn't updating.
Last updated 20 days ago
How to monitor storage usage
When you'd do this
You want to see how much storage and bandwidth your customers are consuming, spot a runaway tenant, or sanity-check a billing dispute. ImpulseMinio collects usage on a recurring schedule and exposes it in a few places.
Where usage shows up
- Servers tab. Each server row shows aggregate used vs. allocated storage, current tenant count, and last-collected timestamp.
- Customers tab. Each service row shows that customer's storage used, bucket count, and bandwidth used this billing period.
- Service Module tab in WHMCS. Per-customer detail β per-bucket usage, request counts, and bandwidth split by ingress/egress.
- Customer client area. ImpulseDrive's customer panel shows the customer their own usage. They don't need to ask you for routine quota checks.
How often it refreshes
Usage is collected by a periodic task that rides on ImpulseCore's cron runner. It typically runs hourly and pushes a row per service into the usage table. The Servers tab and Customers tab read from that table directly, so they're never more than one cron tick stale.
Spot-checking via SQL
SELECT s.service_id, s.bucket_name, u.bytes_used, u.collected_at FROM mod_impulseminio_services s JOIN mod_impulseminio_usage u ON u.service_id = s.id WHERE u.collected_at = ( SELECT MAX(collected_at) FROM mod_impulseminio_usage WHERE service_id = s.id ) ORDER BY u.bytes_used DESC LIMIT 20; For bandwidth over the current billing period, the usage table typically also carries bytes_in and bytes_out columns aggregated daily.
If usage isn't refreshing
- Check ImpulseCore's Cron Health. Open Addons then ImpulseCore. The Cron Health table lists every registered task with its last-run timestamp and status. Look for the ImpulseMinio usage-sync task (typically
impulseminio.usage_syncor similarly named). - If the task shows error, click in for the captured exception. The audit log filtered to
module=impulseminiowill have the full trace. Common causes: a MinIO host became unreachable mid-collection, or the admin proxy bearer token drifted. - If the task is pending with a stale timestamp, Core's cron itself isn't firing. Run it manually to test:
Replace/opt/plesk/php/8.3/bin/php /path/to/whmcs/modules/addons/impulsecore/cron.php/opt/plesk/php/8.3/bin/phpwith your PHP CLI binary. On Plesk:/opt/plesk/php/8.3/bin/php. On cPanel:/opt/cpanel/ea-php83/root/usr/bin/php. On a vanilla LAMP install:/usr/bin/phpor whateverwhich phpreturns. If usage refreshes after a manual run, the system crontab line is missing or wrong. Add the standard Core cron line and future ticks fix themselves. - For a single stuck server, check the unreachable server article. One unreachable host won't stop usage collection for the others β but it will leave that one server's row stale until reachability is restored.