Monitoring & health
A collector you can't see is a collector you can't trust. This page covers how to know your fleet is healthy and get told when it isn't — the difference between running a deployment and hoping.
Where you do this: Two surfaces.
- In the dashboard (kilasec.com/app/) — Collectors (fleet state), Dashboard tab (first-run checklist, pending approvals), Settings → Notifications (alert channels). Requires the tenant_admin role.
- From your external uptime monitor — probe
https://kilasec.com/api/healthz. Configured wherever your uptime tool lives (Better Uptime, Pingdom, cron+curl), not in the Kilasec dashboard.
Where to look
Dashboard → Collectors shows each collector's live state — online/offline, time since last heartbeat, version, and IP — refreshing every 10 seconds. Until traffic is flowing, Dashboard → Dashboard shows a first-run checklist so you can tell "not set up yet" from "broken".
Liveness: how "online" is decided
Every collector heartbeats to the cloud roughly every 10 seconds (its uplink cycle). A collector counts as online if its last heartbeat was within 60 seconds. Two timestamps are tracked:
- last seen — updated on every heartbeat; "is it alive?"
- last event — updated only when real traffic flows through it; "is it actually inspecting anything?"
A collector can be online but idle (alive, no AI traffic yet) or online and busy. The board surfaces both so you can tell a quiet network from a broken one.
Offline alerting
Dashboard → Settings → Notifications. When a collector that was heartbeating goes dark for more than 5 minutes, Kilasec fires an alert (once per offline episode; it re-arms after the collector comes back). Configure the channel here — a Slack-compatible webhook and/or email — and use Send test to confirm it reaches you.
The health endpoint
From your external uptime monitor. GET https://kilasec.com/api/healthz is a real probe suitable for external uptime tools:
{ "ok": true, "service": "agentfw-cloud", "db": "ok", "collectors": 3, "collectors_online": 2 }It probes the database and returns HTTP 503 when degraded (e.g. the DB is unreachable), so a monitor actually trips instead of getting a hardcoded ok. Point your uptime checker (Better Uptime, Pingdom, a simple cron + curl) at that URL and alert on non-200.
A monitoring baseline for a beta
- Dashboard → Settings → Notifications: configure an alert channel (webhook or email) so offline events reach you.
- External uptime tool: add a check on
https://kilasec.com/api/healthz. - Dashboard → Collectors: glance on your normal cadence; sort offline-first.
- Dashboard → Dashboard: watch the approval backlog — a growing
pending approvalcount means requests are being held and nobody's resolving them.
When a collector shows offline
See Collector is offline for the triage steps — reachability, the container, the uplink, and the host.