Outcome signals
A budget owner asks the same handful of questions every month. Cloud Dongle answers them in plain language, computes each one from the underlying cluster records, and keeps every figure traceable to the workload that produced it.
Uptime
99.88%
No incidents · last 30 days
Derived from each cluster’s health status, never asserted. A degraded cluster mathematically cannot report 99.99%.
Recoverable spend
$3,845/mo
Waste we can give back
Summed from costed advisories, not a percentage guess. Every dollar traces to a specific workload you can act on.
Security issues
20
4 critical to resolve
Ranked by blast radius and reachability rather than raw CVSS, so the critical tier stays small enough to actually clear.
Policy compliance
80.0%
Across AWS · Azure · GCP
One governance score spanning AWS IAM, Azure RBAC, and GCP service accounts — read in a single place.
Resource utilization
64%
Average across clusters
Requested versus actually consumed CPU and memory. The gap between those two numbers is where the recoverable spend lives.
Overall health
68/100
Needs attention
One composite of load, availability, and open criticals — computed identically for a tenant and for the fleet, so the numbers reconcile.
From provider record to plain sentence
Each signal passes through the same four steps. The last one is the one that matters: the figure is an output of the data, never an input someone typed.
- 01
Collect, read-only
Cost and utilisation are pulled from each provider on a schedule using credentials that carry no write permission. Nothing is scheduled, evicted, or modified — the integration is structurally incapable of it.
- 02
Normalise to one schema
An EKS node group, an AKS scale set, and a GKE instance group become the same shape. Until this step, cross-cloud comparison is arithmetic on incompatible units.
- 03
Attribute to a workload
Each cost lands on the namespace and pod that incurred it, rather than on an account-level bucket that someone then divides by headcount or by guess.
- 04
Derive, never assert
The signal is computed from the underlying records — availability from cluster health, recoverable spend from summed advisories. A degraded cluster cannot report full uptime, because the number is an output rather than an input.
What people ask about the signals
Why six signals and not a full dashboard?
Ninety panels is a reporting surface, not an answer. Six is the number of questions a budget owner actually asks in a review, and each one is traceable down to the workload underneath — so the summary never becomes a thing you have to take on faith.
Will my numbers look like the demo estate?
Almost certainly not. The demo fleet is two tenants and ten clusters; yours may be one cluster or four hundred. The magnitudes are specific to that estate. What carries over is the shape of the readout and the fact that every figure resolves to something you can open.
What happens when a signal has no data yet?
It reports as unavailable rather than as zero or as a healthy default. A blank is honest; a fabricated baseline quietly poisons every comparison made against it afterwards.
Start here
Point it at one cluster and see what it finds
The sandbox runs on demo data, so you can look before you connect anything. When you are ready, access is read-only and nothing changes without your approval.
Built by Anto and Edwin · Jacav