Real-time server and WordPress health monitoring for any host. Automatically detects the environment and pulls metrics from the best available source: the native operating system, cPanel, the WP Engine Hosting Platform API, or WordPress itself.
Most "server monitor" plugins assume they can read CPU and RAM from PHP. On managed hosts like WP Engine that is impossible: your site runs in a container on a shared cluster and the kernel never exposes host resources. Server Pulse is honest about this. It shows the real account-level data WP Engine does expose (storage, visits, bandwidth, plan limits) and marks CPU/RAM as unavailable instead of inventing numbers. On a VPS or dedicated server the Native provider reads the real system metrics.
| Provider | Metrics | Requirements |
|---|---|---|
| Native | CPU load, RAM, disk, uptime, top processes, network | Linux/VPS/dedicated. Shell access optional. |
| cPanel | Account disk, bandwidth, CloudLinux LVE CPU/RAM when present | cPanel host, user and API token. |
| WP Engine | Storage (files + DB), visits, requests, bandwidth, plan limits | WP Engine API user ID + password (account Owner required). |
| WordPress | DB size, autoloaded options, revisions, transients, cron, object cache, versions | Always available. |
The collector merges all providers into one summary using a per-metric priority, so disk comes from WP Engine on WPE, while CPU/RAM come from the native system on a VPS.
- Live dashboard with auto refresh, health score and grade.
- Historical charts (24h / 7d / 30d) persisted in
{prefix}sp_samples. - Alert engine with thresholds, trends, capacity projections, de-duplication, cooldowns and a daily cap; email plus Pro webhook/Slack/Discord/Telegram channels.
- Diagnostics advisor with read-only checks and one-click safe fixes, plus hosting environment detection (managed hosts, control panels and cloud platforms).
- Crash sentinel that detects plugin activations that killed PHP (502 / OOM / timeout), offers one-click rollback and can install an optional mu-plugin early loader.
- Local storage scan for hosts without a hosting API: walks
wp-contentand breaks down uploads, plugins, themes, mu-plugins and other, daily via cron and on demand. - Traffic & logs (Pro): parses WP Engine / Apache access and error logs into 5xx/504 spike analysis, abusive IPs and empty-User-Agent bots, missing-asset 404 hot spots, heavy endpoints and recurring PHP errors, with copy-paste edge rules and a downloadable report.
- Step-by-step provider diagnostics for WP Engine and cPanel connections.
- Credentials encrypted at rest with AES-256-GCM and a per-install secret (legacy formats still decrypt).
- REST API (
/wp-json/server-pulse/v1/snapshot,/history) guarded bymanage_options. - No phone-home. No CDN assets. Charts are hand-rolled SVG.
- Copy the folder into
wp-content/plugins/(the folder should be namedserver-pulse). - Activate Server Pulse.
- Open Tools → Server Pulse.
- Configure providers under Tools → Server Pulse → Settings.
WP Engine only exposes its Hosting Platform API when API access is enabled for the account
by an account Owner. Generating credentials for a user whose account has API access disabled
results in HTTP 200 with an empty account list, and the plugin cannot read anything.
- Log in to
my.wpengine.comas the account Owner. - Go to Users → API Access (
my.wpengine.com/profile/api_access). - Turn API access ON for the account (toggle next to the account name).
- Click Generate Credentials and copy the API User ID and API Password.
- Paste them in Tools → Server Pulse → Settings → WP Engine and save.
- Open the dashboard and click Test connection to see the full diagnostic.
If /accounts returns count: 0 with valid credentials, the account's API access is off or
the user lacks account access — contact WP Engine support for an ownership change.
- In cPanel, open Security → Manage API Tokens and create a token.
- Enter the host, username and token in Tools → Server Pulse → Settings → cPanel.
- Save and test the connection.
The codebase is a small provider pattern:
server-pulse.php Bootstrap + autoloader
includes/
class-server-pulse-plugin.php Main controller
class-server-pulse-*.php Settings, crypto, network, repository, health,
collector, alerts, notifier, trends, advisor,
maintenance, host detector, sentinel, loader,
dashboard, admin, ajax, cron, rest, storage
scanner, license, util
providers/ Native, cPanel, WP Engine, WordPress
pro/ Pro modules (traffic & log analyzers, reports)
admin/views/ Dashboard, settings, alerts, diagnostics and
traffic screens
assets/ admin.css, charts.js, dashboard.js, settings.js,
advisor.js, traffic.js
mu-plugin/ Optional early crash loader template
Pro features are grouped under includes/pro/ so they can be moved into a separate
extension later without touching the free plugin.
Every provider implements Server_Pulse_Provider_Interface and returns a normalized snapshot.
GPL-2.0-or-later. See LICENSE.
Alexis Olivero · https://oliverodev.com/