A high-performance Rust monitoring agent that sends heartbeat pulses to uptime monitoring services. Supports HTTP, WebSocket, TCP, UDP, ICMP, SMTP, IMAP, MySQL, MSSQL, PostgreSQL, Redis, SNMP, Minecraft Java and Minecraft Bedrock monitoring.
| Feature | Description |
|---|---|
| Multi-Protocol | Monitor HTTP, WS, TCP, UDP, ICMP, SMTP, IMAP, MySQL, MSSQL, PostgreSQL, Redis, SNMP, Minecraft Java/Bedrock |
| Dual Mode | File-based config or centralized WebSocket management |
| Auto-Reconnect | Automatic 1-second delay reconnection on connection failure |
| Live Updates | Real-time configuration changes without restart (WebSocket mode) |
| Template Variables | Dynamic placeholders for latency, timestamps, and custom metrics in heartbeat URLs |
| Low Resource | Efficient Rust implementation with minimal overhead |
| Project | Description |
|---|---|
| UptimeMonitor-Server | Backend server for centralized monitoring |
| UptimeMonitor-StatusPage | Public status page frontend |
WebSocket Mode (centralized management):
services:
pulsemonitor:
container_name: pulsemonitor
image: rabbitcompany/pulsemonitor:3
environment:
- PULSE_SERVER_URL=http://your-server:3000
- PULSE_TOKEN=your_token_here
restart: unless-stoppedFile Mode (standalone):
services:
pulsemonitor:
container_name: pulsemonitor
image: rabbitcompany/pulsemonitor:3
volumes:
- ./config.toml:/config.toml
restart: unless-stopped# Download and install
wget https://github.com/Rabbit-Company/PulseMonitor/releases/latest/download/pulsemonitor-$(uname -m)-gnu
sudo chmod 755 pulsemonitor-$(uname -m)-gnu
sudo mv pulsemonitor-$(uname -m)-gnu /usr/local/bin/pulsemonitor
# Run with config file
pulsemonitor --config ./config.toml
# Or use environment variables for WebSocket mode
export PULSE_SERVER_URL=http://localhost:3000
export PULSE_TOKEN=your_token_here
pulsemonitorConnect to UptimeMonitor-Server for centralized management:
export PULSE_SERVER_URL=http://localhost:3000
export PULSE_TOKEN=your_token_hereBenefits:
- Centralized configuration management
- Real-time updates without restart
- Automatic reconnection on failure
- Multi-region deployment from single server
Create a config.toml for standalone operation. See Configuration Guide.
| Document | Description |
|---|---|
| Configuration Guide | Complete config.toml reference with all monitor types |
| Service Monitors | Detailed setup for each protocol (HTTP, TCP, databases, etc.) |
| Deployment Guide | Docker, systemd, and production deployment |
| WebSocket Protocol | Server communication and message formats |
[[monitors]]
enabled = true
name = "My API"
interval = 30
[monitors.heartbeat]
method = "GET"
url = "https://uptime.example.com/api/push/TOKEN?latency={latency}"
[monitors.http]
method = "GET"
url = "https://api.example.com/health"
timeout = 10Use these in heartbeat URLs and headers:
| Placeholder | Description | Example |
|---|---|---|
{latency} |
Round-trip time in milliseconds | 123.456 |
{startTimeISO} |
Check start time (ISO 8601) | 2025-01-21T07:06:39.568Z |
{endTimeISO} |
Check end time (ISO 8601) | 2025-01-21T07:06:40.000Z |
{startTimeUnix} |
Check start time (Unix ms) | 1753081599568 |
{endTimeUnix} |
Check end time (Unix ms) | 1753081600000 |
| Variable | Description | Required |
|---|---|---|
PULSE_SERVER_URL |
UptimeMonitor-Server URL | WebSocket mode |
PULSE_TOKEN |
Authentication token | WebSocket mode |