Uptime checks and host telemetry, in one signed-in workspace.
Netquirk Monitoring runs synthetic probes from three worker regions
(us-east, eu-west, ap-south) and collects host metrics through a single
static Go binary, the mon-agent.
Probes cover ICMP, TCP, UDP and HTTP; the agent publishes per-core CPU,
RAM, per-disk I/O, per-interface network, LVM and Btrfs volume metrics.
Sign in to open the dashboard Install the agent
Probes from us-east · eu-west · ap-south Push-metric profiles · agent / statsd / prometheus
A monitoring surface for the rest of the Netquirk stack.
Synthetic probes from three regions
Each probe type runs from all three worker regions in parallel; the public dashboard surfaces per-region latency and success so a single CDN outage does not look like a single-region blip.
Push-metric profiles
The push endpoint accepts three named profiles:
agent (the mon-agent Go
binary), statsd
(line-oriented text over TCP), and
prometheus
(text exposition). Each profile declares the keys it
surfaces; unknown keys are accepted or rejected per profile.
Public status pages
A status page exposes the operators' chosen monitors to the
public. Each page is reachable on its own URL under
/status/<label>;
the rendered page is purely server-side and survives a CDN
origin hiccup.
Auth and signing keys
Sign in with your Netquirk account through OIDC; the JSON API
uses API keys prefixed
nq_ over bearer-token
authentication. Both surfaces share the same monitor
database — there is one source of truth, not two.
Six probe kinds, all backed by the same dispatcher.
Each monitor has a single kind. The kind chooses what the worker sends and what counts as a pass.
- icmp — round-trip time and packet-loss threshold against an IPv4 or IPv6 target.
- tcp — three-way handshake against a host:port; timeout and optional pre-ACK banner match.
- udp — payload send + optional reply regex; useful for DNS and other stateless services.
- http — full HTTP/HTTPS probe with method, expected status class, optional body regex, optional JSONPath assertions, and TLS expiry window.
- metrics — counts and stores metrics pushed to the push endpoint, evaluated against a profile-defined set of allowed keys and per-key thresholds.
- agent — alias for
metricswith theagentprofile; identifies monitors backed by the Go agent.
One shell command, run on each Linux host.
The installer is the canonical source on the
netquirk/mon-agent
GitHub repository. It places a single static binary, registers a
systemd unit, and starts pushing
metrics on the interval you pass to
-interval.
$ curl -fsSL https://raw.githubusercontent.com/netquirk/mon-agent/main/install.sh \
| sudo bash -s -- -id "<monitor-uuid>" -interval 30
<monitor-uuid> with the
monitor id shown on the monitor's "raw agent metrics" page. The interval
is in seconds; thirty is a sensible default, smaller values cost more
disk per day per host.
Everything the dashboard does, scripted.
The JSON API is documented at
/api/docs
and lives under
/api/v1/.
Authentication is bearer-token with an API key prefixed
nq_, scoped per monitor. Programmatic
callers can list, create, update, pause and delete monitors; pull
response-time samples from the metric store; and reach the public
read-only endpoints (/healthz,
/metrics,
status badges) without any token at all.
Sign in to manage monitors, alerts and status pages
The dashboard lives behind the same Netquirk account that signs you in to netquirk.com. There is no separate signup form to fill in.