Cyber

Vitals: server, database and infrastructure monitoring

Find the one gauge that stopped behaving normally.

80% processor use is fine on one server and an incident on another. Vitals learns what is normal for every gauge on every host, database and service you run, and tells you which one changed. No thresholds to set.

The problem

Too many dashboards, and nobody knows which number means trouble.

Your database counts its lock waits, your web server counts its errors and your application server reports its pauses. Every one has a dashboard. But someone still has to decide, for every gauge on every server, which number means trouble, and change it every time the workload changes.

Vitals reads the counters your systems already report, learns what each one normally does through the day and the week, and raises an alert naming the gauge that changed. A memory leak shows up as a leak, even when the server's other gauges look calm.

What Vitals is not

Vitals reads the counters your infrastructure already publishes. It does not instrument your code or follow a request from one service to the next. That is distributed tracing, a different kind of product.

What it watches

Hosts, databases, web servers, app servers, queues and containers.

Every counter below is standard telemetry your infrastructure already reports, read from each system's own statistics. Each one gets its own learned normal.

The six Vitals source classes and the counters each reads
Source The counters it reads
Host Processor utilisation, memory in use, run queue and load, swap in use, disk and network where the machine exposes them.
SQL database Connections, active and idle sessions, query-latency percentiles, slow-query rate, lock waits, deadlocks, replication lag, buffer and cache hit ratio, transactions per second, table and index bloat.
Web server Requests per second, response-time percentiles, status-class rates (2xx, 3xx, 4xx and 5xx, each on its own), active connections, queue depth, upstream latency, keep-alive reuse.
Application server Request rate and latency per route, error rate, thread and worker pool utilisation, queue depth, garbage-collection pause time and frequency, heap used against heap committed, open file descriptors.
Queue or cache Queue depth, consumer lag, eviction rate, hit ratio, connection count.
Runtime or container Restarts, out-of-memory kills, throttled processor periods, filesystem pressure.

Every counter above is read from the source's own statistics interface. Nothing is installed inside your database, your web server or your application.

How it works

Read the counters. Learn each one. Flag the one that changed.

Step one

It reads counters where they are

Vitals reads each system's own statistics on your servers, at an interval you choose. There is no external metrics service and nothing is uploaded, so it works on networks with no internet access at all.

Step two

It learns each gauge's normal

Every gauge gets its own normal, learnt from its own history on that machine. A database that always runs at high memory and a web server that always runs low are both normal. If a gauge does not have enough history yet, Vitals says so rather than guessing.

Step three

It names the gauge that changed

Vitals flags the gauge that changed, not an average health score that hides it. You start with a named server, a named gauge and a time window, not a dashboard and a hunch.

What you get

A named instance, a named gauge, and what stopped being normal about it.

A sample alert, so you can see the shape of what Vitals reports.

Gauge departed from its normal

Investigating
Source
SQL database instance
Instance
db-prod-02 / orders
Raised
2026-09-21 19:52:04 AEST
Thresholds crossed
None there are none to cross
Status
Departed from learned normal

What moved

Illustrative gauges in the sample alert
GaugeNormal for this instanceNow
Transactions per second380-520441
Connections in use40-7063
Lock waits per minute0-3148
Query latency, 95th percentile18-40 ms610 ms
Buffer hit ratio98-99%98%

In words

Throughput, connections and buffer hit ratio are exactly where this instance normally sits, so a load-based or connection-based alert would never have fired. What is new is that lock waits have climbed and stayed climbed, and the 95th-percentile query latency has gone with them. The pair, not any single reading, is what changed. The lock-wait gauge is the worst of the five, so it is the one named at the top of the alert.

Sample alert. The instance names and values are examples.

Per gauge, not per fleet

Every gauge on every instance gets its own normal. Adding a database, a web server or a container is pointing Vitals at its statistics interface and leaving it alone, not copying a threshold template and editing it.

Counters only, never content

Vitals takes a number and the name of the thing that produced it. Not statement text, not bind parameters, not table rows, not request URLs or query strings, not headers, cookies or client addresses, not request or response bodies, not message bodies, not cache keys or values. "Show me the slow query" is a feature we do not offer, because offering it would mean capturing it.

Nothing phones home

Samples are analysed on your infrastructure and held there, and each source is tapped through a dedicated read-only account with the least privilege its statistics interface needs. It runs on machines with no internet route at all.

The same console

Vitals is a module in the one Senua AI Cyber console alongside Shield, Pulse and Discern, enabled by your subscription. One login, one place to look.

Pricing

Flat per month, across everything it watches.

Flat and never metered, with a 3-day grace period after expiry before the instance goes read-only. Your data is never deleted on lapse.

Cyber Unlimited
$1,990
AUD per month, all four products
  • Vitals, Shield, Pulse, Discern
  • 100 hosts
  • One console, one subscription
  • Cheaper than the $2,396 sum
On-Prem / Air-Gapped
$60,000
AUD per year
  • Every product, unlimited caps
  • Offline licence activation
  • No call-home for verification
  • Large fleets: Contact us

Prices, meters, the gauge ceiling and grace period are read from one price file. All amounts include 10% GST. Subscriptions are arranged with our team directly, on your own hardware, with a guided setup.

Point it at one database, or one host.

Start with whichever of your streams you care about most. Tell us what runs in your estate, and we will show you how Vitals learns each gauge's own normal, on your own hardware.