Is the machine healthy right now? One request answers.
Norfield Pulse runs as one Node.js daemon on the Norfield VPS. It samples load, memory, disk and uptime on a fixed cadence, 10 seconds by default, and serves the latest reading as JSON on 127.0.0.1. Node built-ins only.
See the endpointsThree endpoints, GET only, loopback only
/pulse
Latest sample: status of ok, warn or critical, plus load, memory, disk, uptime, the beat counter, and per-check detail showing the observed value against its limits.
/pulse/history?n=N
Recent samples from the in-memory ring, oldest first. The ring holds 360 samples, about an hour at the 10-second default. Pass n to limit the response to the most recent N.
/healthz
Shallow liveness. Returns 200 while the sampler has ticked within the last three intervals, 503 otherwise. Intended for supervision and for Hermes.
Bound to 127.0.0.1
The listener answers GET requests on loopback only. The health data never leaves the machine that produced it.
No dependencies
Node.js built-ins only, on Node 18.15 or newer. Nothing to pull at install time, nothing extra to audit on the box it watches.
Fixed cadence sampling
The daemon samples on a timer rather than per request, so every reader sees the same sample, and the beat counter shows how many ticks have elapsed.
How it runs
Start the daemon
One Node.js process, built-ins only, on Node 18.15 or newer. It binds to 127.0.0.1 and starts sampling on its own cadence.
Sample on a timer
Every interval, 10 seconds by default, it reads load, memory, disk and uptime, compares each against its limits, and advances the beat counter.
Keep about an hour in memory
Each sample enters a ring of 360 entries. The oldest falls off as new ones arrive, and nothing is written to disk.
Read it over HTTP
Ask /pulse for the current state, /pulse/history for the recent trend, and /healthz when a supervisor or Hermes needs a yes or no.
Questions operators ask
Can I reach it from another host?
No. The listener binds to 127.0.0.1 and accepts GET requests only. Read it from the VPS itself, or tunnel to loopback.
What do ok, warn and critical mean?
They are the roll-up of the individual checks. Every check reports its observed value alongside the limits it was compared against, so you can see which one moved the overall status and by how much.
How much history is available?
The ring holds 360 samples, roughly one hour at the 10-second default. Samples come back oldest first, and n trims the response to the most recent N. The ring lives in memory, so it starts empty after a restart.
What is the difference between /pulse and /healthz?
/pulse describes the machine. /healthz describes the daemon: 200 while the sampler has ticked within three intervals, 503 otherwise. Use /healthz for supervision and Hermes, and /pulse when you want the numbers.
How much does the beacon itself cost to run?
It is one Node process with no dependencies. Each sample reports the daemon's own RSS, so its footprint shows up in the same response as everything else it measures.
About Norfield Pulse
Norfield Pulse answers one question, is the machine itself healthy right now, and stops there. It is a beacon: a fixed-cadence sample of load, memory, disk and uptime, held in memory for about an hour and served as JSON on loopback. Staying on Node built-ins means there is no dependency tree to maintain on the machine it is meant to watch. Staying on 127.0.0.1 means there is no exposed surface to defend. Everything else, alerting, dashboards, escalation, is left to whatever reads the endpoints.