Watchdog includes 14 built-in check types. Each check declares a runner mode that determines where it can execute:
| Mode | Where it runs |
|---|---|
| Dashboard | Executed by the dashboard worker container. Tests things reachable over the network from the watchdog server. |
| Agent | Requires direct host access. Runs on an agent with the correct volumes and pid namespace configured. |
| Dashboard or Agent | Network-level check. Can run from either the dashboard or any agent. |
| Check | Type identifier | Runner | Description |
|---|---|---|---|
| HTTP Reachability | http |
Dashboard | Checks if a URL returns an expected HTTP status code |
| HTTP Content | http_content |
Dashboard | Checks the response body for required or forbidden strings |
| SSL Certificate | ssl_cert |
Dashboard | Monitors TLS certificate expiry across multiple hosts |
| Docker Container Health | docker |
Dashboard or Agent | Checks if a container is running and healthy via Docker socket |
| Docker Exec | docker_exec |
Dashboard or Agent | Runs a command inside a container and checks the exit code |
| Disk Space | disk_space |
Agent | Monitors disk usage percentage with warn and fail thresholds |
| Load Average | load_average |
Agent | Monitors system load relative to CPU count |
| Process Running | process |
Agent | Checks if a named process is running via pgrep -f |
| Log File | log_file |
Agent | Checks that a log file was updated recently and contains a required pattern |
| File Age | file_age |
Agent | Monitors how recently a file was modified β ideal for backup health checks |
| File Size | file_size |
Agent | Checks that a file is within a defined size range |
| TCP Port | tcp_port |
Dashboard or Agent | Checks if a TCP port is open and accepting connections |
| Redis | redis |
Dashboard or Agent | Sends PING to a Redis server and verifies the PONG response |
| Database | database |
Dashboard or Agent | Opens a PDO connection to verify database reachability |
To trigger a check immediately without waiting for the next interval, use the Run now button in the check list.
The check system is fully plugin-based. Any PHP class implementing CheckInterface and tagged with #[AutoconfigureTag('watchdog.check')] is auto-discovered and available in the UI.
See Writing Custom Checks for a complete step-by-step guide.