A lightweight server monitoring tool that continuously tests your web server and database, alerting you with audio cues in real time. A gentle chipmunk chirp means everything is healthy; a loud alarm means something is down.
Current version: 1.1
- Real-time monitoring - polls your server every 5 seconds via AJAX
- Audio alerts - chirp when up, alarm when down (loud enough to wake you up)
- Database monitoring - optionally tests MySQL connectivity and watches the process list
- Congestion tracking - captures process list snapshots at scheduled intervals when queries pile up, with a visual dashboard
- Multi-server support - monitor up to 10 servers with unique IDs (0-9)
- CSV export - download congestion event data for analysis
- Persistent events - congestion data stored in localStorage and survives page refreshes
- PHP 5.7+ with the MySQLi extension
- Apache with
.htaccesssupport - MySQL/MariaDB (optional, for database monitoring)
- A modern browser (Chrome, Firefox, Safari, Edge)
- Drop the
chipmunkfolder into any directory served by your web server. - Copy
settings.sample.phptosettings.php. - Open
settings.phpand configure your settings (see below). - Navigate to the folder in a browser (e.g.
https://yoursite.com/chipmunk/).
No build step or package manager required - files are served directly.
Edit settings.php to customise behaviour:
| Setting | Description |
|---|---|
$serverID |
Unique identifier for this server (0-9) |
$test_DB |
Enable database testing (1) or web-only mode (0) |
$db_host |
MySQL host |
$db_username |
MySQL username |
$db_password |
MySQL password |
$max_items_in_processlist |
Alert when the process list exceeds this count |
$alarm_after_how_many_bad_connections |
Consecutive failures before sounding the alarm |
URL_BASE |
URL path to the tester |
By default (without editing settings.php) the tester will only monitor your web server, which requires no configuration.
chipmunk-dev/
├── index.php # Main entry point
├── scripts.js # Core monitoring logic
├── css.css # Dark-themed styles
├── settings.php # Your local config (git-ignored)
├── settings.sample.php # Config template
├── xmltest.php # DB test endpoint
├── xmltest.xml # Static XML for web-only testing
├── include/
│ ├── init.php # Loads settings
│ └── .htaccess
└── sounds/ # MP3 audio files for alerts
- Backend: PHP, MySQL (MySQLi)
- Frontend: Vanilla JavaScript, jQuery 3.6, jQuery UI 1.13
- No build tools - pure HTML/CSS/JS served by Apache
- Congestion event tracking dashboard - captures process list snapshots at scheduled intervals when queries pile up
- Congestion events persist in localStorage across page refreshes
- CSV export for congestion event data
- Auto-trims stored events when storage quota is exceeded
- Reuse audio elements instead of creating new ones each beep (memory optimisation)
- Darker colour scheme
- Added database monitoring and process list alerts
- Switched audio prompts from French to English
Developed by intercode.info