Cache, Database & Storage Monitoring
What it does
OpConsole probes the services your application actually depends on, using your configured connections and drivers — not generic defaults.
- Database: inspects the configured connection, including driver and server version, and (for service-specific tables) checks that expected tables exist on that connection.
- Cache round trip (
cache.round_trip): writes a random value under a unique key with a 10-second TTL, reads it back, and forgets it. Critical on mismatch or exception; the value shows the store name and time taken. Skipped with an info status forarray/nulldrivers outside production, since those drivers can't prove anything useful. - Production caches built (
performance.caches_built): in production, warns when configuration, routes, or events aren't cached, lists which are missing, and suggestsphp artisan optimize. Informational outside production. - Disk space (
files.disk_space): warns below 1 GB free or belowdisk.min_free_percent(default 10%) of the volume, critical below 256 MB. - Storage link (
files.storage_link): when apublicdisk exists, warns ifpublic/storageis missing or doesn't resolve tostorage/app/public, with fixphp artisan storage:link.
Why it is useful
These are the dependencies that silently degrade an application without a hard crash — a stale OPcache after deploy, a disk slowly filling with logs, a cache store that accepts writes but can't be read back. Catching them here is faster than waiting for a support ticket.
How to configure it
OPCONSOLE_DISK_MIN_FREE_PERCENT=10Disk space is the only tunable in this group — database and cache checks read your application's own connection configuration directly, so there's nothing OpConsole-specific to set.
How to use it
These appear in the Health tab under "Database and queues", "Cache and performance", and "Files and folders", and as summary tiles on the Overview tab (Database, Cache, Disk space).
Security considerations
Database checks report driver, server version, and table existence — never credentials, connection strings, or row data.
Limitations
- The cache round-trip check can't distinguish "store is slow" from "store is briefly unavailable" beyond its own exception handling; a timeout from the driver surfaces as critical either way.
- Disk space is measured for the filesystem, not your application's specific data directories — a large unrelated volume on the same mount can mask a smaller partition filling up if your paths don't match that assumption.
Troubleshooting
files.storage_linkstays critical after runningphp artisan storage:link: confirm the symlink target is literallystorage/app/public; a manually created symlink pointing elsewhere still fails the check.- Cache check is critical only in production: some drivers (
array,null) are intentionally skipped as informational outside production but not in it — that's deliberate, since those drivers are a real hazard in production.