Skip to Content
πŸŽ‰ EZMON v0.1.3 is released. Visit ezmon.web.id β†’
Changelog

Changelog

All notable changes to EZMON are documented here, following Keep a ChangelogΒ  format.

🟒

This changelog is sourced from the official EZMON repositoryΒ  on the main branch.


v0.1.3 β€” Latest

Added

  • Notification Target Type β€” Alert channels now support a targetType field (all | agent | monitor) to eliminate duplicate cross-source notifications
  • Target Type UI β€” Three-option selector (β€πŸŒ All”, β€πŸ’» Agents”, β€œβ˜οΈ Monitors”) in the Add/Edit Channel modal under Dashboard Settings β†’ Alert Channels
  • Worker /debug Monitor Info β€” The /debug endpoint now includes a cloud_monitors section with last_status, next_check_at, due_now, and time_until_check
  • Worker /reset-monitors Endpoint β€” New POST /reset-monitors development endpoint to force re-evaluation of all monitors on the next trigger

Fixed

  • Agent recovery double notification β€” lib/notify.ts was missing targetType filtering; added sourceType parameter and filter logic to dispatchNotification()
  • config_json JSONB read as string β€” Cloudflare Worker now wraps all config_json access with a JSON.parse() guard in dispatchNotifications()
  • Monitor notifications never firing β€” isTransition logic now also accepts unknown β†’ down as a valid state change trigger
  • Duplicate notifications for all channels β€” dispatchNotifications() now filters by config_json.targetType matching the event sourceType
  • Monitor incidents failing silently β€” agent_id is now nullable in the incidents table; a metadata JSONB column was added for monitor context
  • DashboardIncident type mismatch β€” Changed innerJoin to leftJoin on agents; updated type to allow agentId: string | null
  • Worker beta deploy targeting production β€” Added explicit deploy:beta script (wrangler deploy --env beta) to apps/worker/package.json

Changed

  • Check Now button no longer updates lastStatus or nextCheckAt β€” only records a new row in cloud_check_results for the history graph

v0.1.2

Added

  • Custom Status Page Slug β€” Users can configure custom URLs (e.g. /status/my-server) from Dashboard Settings via a new custom_slug column in status_pages
  • Cloud Monitors on Status Page β€” Public Status Page now displays Cloud Monitors (HTTP/TLS/Keyword) alongside Agents, including latency data
  • Beta Worker Environment β€” [env.beta] configured in apps/worker/wrangler.toml for separate secrets and deployment (ezmon-evaluator-beta)
  • Notification Test Buttons β€” β€œTest Offline” and β€œTest Online” buttons in the Add/Edit Channel modal for live template preview
  • Test API Endpoint β€” POST /api/dashboard/notifications/test for dummy notification dispatch
  • Template Placeholder Resolution β€” dispatchNotification() now resolves {project}, {agent}, {monitor}, {status}, {time} placeholders

Fixed

  • customOnlineMessage not applying β€” lib/notify.ts was missing template parsing logic on agent recovery; placeholder resolution now added
  • Zod schemas stripping unknown fields β€” customOfflineMessage and customOnlineMessage were silently discarded; fixed by adding .passthrough() to all config schemas

Changed

  • Heartbeat recovery handler now passes templateVars when dispatching online recovery notifications
  • Test endpoint uses distinct dummy values: {agent} β†’ test-agent-1, {monitor} β†’ test-monitor-1

v0.1.1 β€” 2026-05-07

Added

  • Cloud Monitors β€” HTTP, TLS, and Keyword checks running on Cloudflare Worker Cron
  • Cloud check history β€” Results stored 30 days with automatic retention cleanup
  • GlobalAgentMap β€” Agent distribution map by country on the overview dashboard
  • Settings Hub β€” Alert Channels and Cloud Monitors moved to a unified Settings page
  • Docker monitoring β€” Agent reports running Docker container count
  • Tags & Grouping β€” Agents can be tagged for grouping
  • Public Status Page β€” Per-project configurable public status page
  • Metrics history charts β€” CPU/RAM/Disk/Network charts from 5-minute aggregated buckets
  • GitHub Actions CI/CD β€” Automated static Go binary builds for linux/amd64 and linux/arm64
  • Incidents UI β€” Filter open/resolved/all with pagination
  • targetType β€” Notification channels can be scoped to: agent, monitor, or all

Changed

  • Agent metrics now use gopsutil (CPU, RAM, Disk, Load, Network) β€” no more placeholders
  • Logo and branding updated
  • Turborepo upgraded to v2.9.10
  • middleware.ts replaced with proxy.ts convention (Next.js 16)
  • Versioning synchronized between root package.json, UI, and agent binary
  • Agent Version changed from const to var to allow linker injection via -ldflags at build time
  • Delete agent modal text translated from Indonesian to English
  • install.sh registration call now reads from EZMON_AGENT_VERSION env var

Fixed

  • 203/EXEC systemd error β€” binary now compiled statically (CGO_ENABLED=0) via GitHub Actions
  • Notification channels missing DELETE and PATCH toggle
  • JSONB parsing issue in Neon HTTP SQL API (config fields read as strings)
  • React import bug on notifications page
  • GlobalProjectSwitcher not syncing in beta environment
  • Sidebar version badge showing stale version β€” now reads dynamically from apps/web/package.json
  • Agent binary in GitHub Releases had no version in the filename
  • Infinite loading bug on /dashboard/status-page configuration view
  • forceMount prop warning in sidebar layout

v0.1.0 β€” 2026-05-04

Added

  • Granular CPU Monitoring β€” Per-core CPU charts render dynamically based on actual agent hardware. Supports 64+ cores using HSL color generation
  • IP-based Agent Geolocation β€” Agent detects its public IP via ipify.org and resolves location (city, country, lat/lon) via ip-api.com
  • Interactive World Map β€” AgentLocationMap component with zoom/pan, country hover tooltip, animated agent pin, and full ISO 3166-1 numeric mapping (220+ countries)
  • Extended Time Range Selector β€” Metric charts support 5m, 10m, 30m, 1h, and custom range (min 5m, max 7d)
  • Automated Release Workflow β€” Single GitHub Actions workflow that auto-tags, builds agent binaries, and publishes versioned releases
  • Initial MVP β€” Authentication (NextAuth), Project management, Agent onboarding, Push-based heartbeat monitoring, Offline detection, Incident creation, Notification channels (Telegram, Discord, Webhook), Dashboard UI, and install.sh public installer script

Changed

  • Agent CPU collection switched from non-blocking to blocking cpu.Percent(1s, true) for accurate per-core real-time data
  • Heartbeat payload now includes publicIp field
  • cpuCoresAvg persisted as JSON array in metric_buckets for frontend parsing

Fixed

  • Country map hover showing β€œUnknown (undefined)” for territories without geo ID
  • Country hover tooltip clipped at top/right edge of map
  • Missing ISO numeric codes for Serbia, Montenegro, Iceland, South Sudan, Oman, and others
Last updated on