Monitoring & metrics
MajNet’s monitoring is built in and agentless. The reconciler reads each node’s metrics over the same Docker API (mTLS over WireGuard) it already uses to deploy — there is no Prometheus, no node exporter, no sidecar to run. What the platform can deploy, it can already measure.
What’s measured
Section titled “What’s measured”- Per node / host: CPU %, memory used/total, image-disk usage, container counts, Docker/OS/kernel versions.
- Per container: CPU % and memory used vs its limit — so a container nudging its cap is visible at a glance.
History with time ranges
Section titled “History with time ranges”Samples are recorded every minute and kept with tiered resolution, so charts go back a month without the database growing without bound:
| Age | Resolution |
|---|---|
| last 24h | full (per-minute) |
| 24h–7d | every 30 min |
| 7d–30d | hourly |
| older | daily |
On the Nodes page a range selector (Live · 1h · 6h · 24h · 7d · 30d) drives the CPU and memory charts, and each container gets its own CPU sparkline. “Live” keeps building a rolling window in the browser; the ranges read the persisted history.
The overview dashboard
Section titled “The overview dashboard”The home page is an at-a-glance overview: fleet health (per-node CPU/memory sparklines), deployments in flight, control-plane status, recent activity, an alerts summary, and totals. It’s customizable — an edit mode lets you drag to reorder, resize, and hide widgets, and your layout is saved per user.
Alerts
Section titled “Alerts”The reconciler checks node/host metrics and site health every minute and posts up/down and threshold transitions (CPU / memory over a configurable %) to a Discord webhook. Configure the webhook and thresholds under Settings → Alerts; the overview’s Alerts widget shows, live, how many nodes are currently over threshold.
All of this reads the reconciler’s Docker connection only — metrics never leave the control plane, and no node runs anything extra to be observed.