Node states
Every node is in one of five states. Here is the exact rule that produces each one — including the mysterious “tracked”.
| State | Means | When it happens |
|---|---|---|
| @online | The check succeeded and is fast. | HTTP 2xx (or a TCP/TLS connection) with latency under 250 ms. Or you set it by hand. |
| @degraded | Reachable, but something is off. | HTTP 3xx or 4xx · latency of 250 ms or more · DNS resolving to an unexpected IP · TLS certificate 14 days or less from expiry, or untrusted. |
| @offline | It’s not working. | Timeout or connection refused · HTTP 5xx · expired TLS certificate · DNS name that doesn’t resolve. |
| @tracked | It’s on the map, but no check watches it. | The node has no health check. This is not an error. |
| @unknown | A check exists, but there’s no data. | The check was just created or edited, or the agent running it is paused, or the node is over the plan’s cloud check quota. |
What “tracked” really means
tracked means: this piece of infrastructure exists and I want it on the map, but there’s no signal to measure. It’s inventory, not monitoring.
Typical examples: a SaaS with no public endpoint to query (Stripe, push notifications), a domain you only care about for its dependencies, a server you don’t want to check yet.
Why not “online”? Because that would be a lie: no signal doesn’t mean it works. xNode360 prefers to tell you “I know it’s there, I don’t know if it works” over painting green something nobody is checking.
tracked, unknown, online: the differences
| Has a check? | Has data? | Is it a problem? | |
|---|---|---|---|
| @tracked | No | No | No — it’s a choice. |
| @unknown | Yes | No | Maybe: the check should produce data and doesn’t (yet, or anymore). |
| @online | Yes (or set by hand) | Yes | No. |
You can also set tracked by hand: in the inspector, with the “manual” runner, choose among online, degraded, offline and tracked. unknown can’t be chosen by hand.
Who decides the state
- The cloud worker — for nodes with a check and the cloud runner.
- The agent — for nodes with the agent runner. If the agent is silent for over 2.5 minutes, its nodes go to
degraded(“silent agent”); after 20 minutes they go tooffline. A paused agent leaves themunknowninstead. The change isn’t immediate because we can’t tell whether the service went down or the agent did. - You — for nodes with the manual runner.
Edges inherit status
An edge takes the worst state of its two nodes, in this order: offline, unknown, degraded, online. tracked is neutral: it never worsens an edge. If both nodes are tracked, the edge is tracked.
The glowing dots traveling along an edge only appear when the edge is online (three fast dots) or degraded (two slow ones). They mean “the checks are passing right now”, not “traffic is flowing”: they don’t measure bandwidth or requests.
How it reads on the map
- Each node shows the state name and a colored dot. The border “breathes” on every node except offline ones, which stay still and dimmer.
- The counters at the top show online, degraded and offline, plus the total node count.
trackedandunknowncount toward the total but have no counter of their own.
A note on HTTP: any server response — even 404 or 500 — means the server is reachable. The classification rule then decides: 3xx and 4xx give degraded, 5xx gives offline.