โจ EZMON Core Features
๐ Heartbeat Monitoring
Agents push a heartbeat payload to the Hub every 30 seconds (configurable). The Hub records the latest heartbeat timestamp and calculates the offline_deadline_at.
| Parameter | Default | Description |
|---|---|---|
heartbeat_interval_sec | 30 | Push interval frequency |
grace_multiplier | 3 | Grace period tolerance multiplier |
| Effective Grace Period | 90s | 30s ร 3 = 90 seconds before flagged offline |
โ๏ธ Offline Detection & Internal Evaluator
EZMON uses a deadline-based detection model running directly within the serverless runtime without needing a separate worker service:
offline_deadline_at = last_seen_at + (heartbeat_interval_sec ร grace_multiplier)- Next.js Internal Evaluator Route (
/api/internal/evaluate): Integrated backend evaluator in the Next.js Serverless runtime, triggered periodically via Cron (such ascron-job.orgorUpstash QStash). - Heartbeat & Recovery Detection: Checks agents past deadline, updates status to
offline, creates incidents, and automatically marks incidents asresolvedwhen agents recover. - Cloud Check Evaluation: Evaluates active Cloud Monitors (HTTP, TLS, Keyword) in parallel.
- Automated Retention: Cleanly purges aged
metric_buckets(> 7 days),alert_events(> 7 days), andcloud_check_results(> 30 days).
๐ก๏ธ Security & Agent Onboarding
- One-Time Registration Token (
reg_...): Temporary 5-minute TTL single-use registration tokens preventing project token leakage in terminal history. - SHA-256 Checksum Verification: The
install.shscript automatically verifies SHA-256 binary checksum hashes against GitHub Releases before executing the binary. - Interactive Terminal Prompt (
/dev/tty): Interactive prompt mode taking registration tokens via/dev/ttyso tokens are not logged in.bash_history.
๐ฅ๏ธ Fleet Management & UI Customization
- View Mode Toggle (List vs Card Grid): Interactive toggle on
/dashboard/agentswithlocalStoragepreference persistence. Card Grid displays CPU/RAM progress bars, ONLINE/OFFLINE status pulse badges, Docker container count, OS/Arch metadata, and agent tags. - Outdated Agent Detection & Upgrade Modal: Automatic version comparison against Hub version (
UpdateAgentModal) with 1-click upgrade snippet and auto-detection polling. - Visual Downtime Chart Breaking (
connectNulls={false}): Metric charts for CPU, RAM, Disk, and Network visually break during agent/monitor downtime instead of drawing false continuous lines.
๐จ Incident Management & Notifications
- State Transition Alerts: Notifications are only dispatched upon actual status transitions (
online โ offlineoroffline โ online). - Single & Bulk Incident Deletion: Support deleting individual incidents or bulk clearing resolved incidents from the dashboard.
- Dedicated Notification Channels Page (
/dashboard/notifications): Dedicated router for alert channels (Telegram, Discord, Webhook) supportingtargetTypefiltering (all,agent,monitor).
โ๏ธ Cloud Monitors
Monitor external cloud endpoints without installing an agent:
| Type | Mechanism | Use Case |
|---|---|---|
| HTTP | HEAD request, status code verification | Website / API availability |
| TLS | HEAD + crt.sh TLS expiry lookup | SSL certificate expiration check |
| Keyword | GET request, search body for keyword | Content integrity monitoring |
๐ Authentication & Navigation
- 2-Step Registration Email OTP: New user registrations require 6-digit email OTP verification (10-minute expiry).
- Raycast Spotlight Command Palette (
CTRL + K): Global search modal querying across Agents Fleet, Cloud Monitors, Incidents Log, and status keywords (online,offline,error). - Public Status Page & API: Per-project public status page with customizable slug, featuring a JSON API endpoint
GET /api/public/status/[slug].
Last updated on