=== Site Pulse ===
Contributors: otokichi3
Tags: monitoring, uptime, performance, dashboard, slow-query
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 0.1.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Internal site monitoring for WordPress. Checks page uptime, DB performance, and slow queries.

== Description ==

Site Pulse is a monitoring plugin that runs entirely inside WordPress. It checks your pages and database automatically after each page load (via the shutdown hook) and shows the results on a dashboard in wp-admin. When something goes wrong, it sends you an email.

No external monitoring service or API key required.

**What it monitors:**

* Page HTTP status and response time (including login-required pages)
* DB read/write performance via test queries (SELECT, INSERT, UPDATE, DELETE)
* Slow queries (requires `SAVEQUERIES` to be enabled)
* DB health indicators: autoload option size, expired transients, post revision bloat

**Alerts:**

The plugin sends email alerts when a page returns an error, responds too slowly, or a DB test query fails. You can choose which alert types to enable, and duplicate alerts are suppressed for 1 hour.

**Dashboard:**

The admin dashboard shows an overall site health indicator, then breaks down into page monitoring and DB status. Each section has charts (powered by Chart.js), error logs, and detail views.

= Third-Party Libraries =

This plugin bundles Chart.js (MIT license) for rendering charts on the admin dashboard. All files are included locally — no external requests are made.

* [Chart.js](https://www.chartjs.org/) — MIT License
* [chartjs-adapter-date-fns](https://github.com/chartjs/chartjs-adapter-date-fns) — MIT License

== Installation ==

1. Upload the `site-pulse` folder to `/wp-content/plugins/`.
2. Activate the plugin.
3. Open "Site Pulse" in the admin menu.
4. Go to "Site Pulse > Settings" to add URLs and configure alerts.

Checks run automatically after page loads using a shutdown hook, so no server-side cron setup is required. The plugin throttles itself to run at most once every 15 minutes.

== Frequently Asked Questions ==

= Does this need an external service? =

No. Everything runs inside WordPress.

= Will it slow down my site? =

Checks run after the response is sent to the visitor (shutdown hook), so page speed is not affected. Slow query detection uses `SAVEQUERIES` which does add overhead — only enable it when you need it.

= Can it monitor pages that require login? =

Yes. In Settings, tick the "Auth" checkbox next to any URL that requires login and pick a user account. The plugin creates temporary auth cookies (valid for 60 seconds) for those URLs.

= What happens on uninstall? =

All tables and options created by the plugin are deleted.

= How long is data kept? =

Check results are kept for 7 days. Slow query logs and alert history are capped at 100 entries each.

== Screenshots ==

1. Dashboard overview with health indicators.
2. Page response time chart.
3. DB saturation gauges with info tooltips.
4. Settings page.

== Changelog ==

= 0.1.0 (2026-03-19) =
Initial release.

== Upgrade Notice ==

= 0.1.0 =
Initial release.
