Custom dashboards
Every WatchTower15 organisation starts with one dashboard that everybody sees. From there, anyone can build their own: add the widgets that answer their question, arrange them, and keep the result private or share it with colleagues.
A platform engineer watching agent health, an ops lead watching certificate expiry and a finance owner watching spend no longer have to agree on one page.
The dashboard selector
Section titled “The dashboard selector”The selector sits at the top right of the dashboard and groups what you can open:
| Group | What is in it |
|---|---|
| Organisation | Dashboards the organisation owns, starting with its default. Everyone can open them; only an Admin can change them. |
| My dashboards | Yours. Private unless you share them. |
| Shared with org | Dashboards colleagues have shared, each prefixed with its owner’s name. |
Whichever you pick is remembered for next time, per organisation. If a remembered dashboard is later deleted, unshared or switched off, you land on the organisation default instead.
A dashboard also has a link of its own: the Dashboard page’s address followed by
?dashboard= and the dashboard’s id. The Audit page
links a dashboard’s events this way. Opening the link selects that dashboard and makes
it the remembered one, exactly as picking it in the selector does. A link to a dashboard
you cannot open — another member’s private one, or one that has been switched off —
leaves your current dashboard where it is.
✚ New dashboard… at the bottom of My dashboards creates an empty one and drops you straight into Edit Mode.
The organisation default
Section titled “The organisation default”When an organisation is created, its default dashboard starts with eight widgets:
- Server Timeline - CPU usage (%) and Memory Usage %: CPU and memory over time for your busiest servers.
- CPU %, Disk % and Memory %: your servers ranked by each, highest first.
- Log volume: log lines over time, by level.
- Recent incidents: the latest open incidents.
- Uptime strip: thirty days of reachability for every domain you monitor, one row each, lowest uptime first, one bar per UTC day. To show particular domains instead, choose Pick selection in the widget’s settings, or By tag for the domains carrying any of the tags you choose. Each row’s domain name opens that domain’s page.
It is a starting point, not a fixed page: an Admin can change it at any time in Edit Mode. A member whose role does not include the permission a widget’s data needs sees a placeholder in its place (see Widgets you cannot see). Members of the built-in Regular Users role, for example, see one for Recent incidents, because that role does not include incidents.
Edit Mode
Section titled “Edit Mode”The pencil button beside the selector is the only control the page carries in normal use. Everything that changes what a dashboard is lives behind it:
- Add and remove widgets
- Move and resize them
- Widget settings (the cog on each card)
- The dashboard’s name, description and sharing
- Deleting it
Everything that changes only what you are looking at stays outside: which dashboard is selected, the timeframe, a manual refresh, light and dark.
The timeframe offers the last 1h, 3h, 12h, 1d or 5d, then Custom: a length
of your own, such as the last 2 weeks, or dates picked on the calendar. A relative timeframe,
which is every choice but calendar dates, moves forward as the cards refresh, so the last 3
hours is always the last three hours, by WatchTower15’s clock rather than your computer’s
(time windows). Calendar dates stay where you
put them; the ✕ on them returns to the last 3 hours.
Each card refreshes on its own schedule, set by WatchTower15: never more often than
once a minute, and some cards less often. To see the latest data straight away, click the
timeframe that is already selected, such as 3h again, or reload the page: every card
fetches its data at once. That click is the manual refresh.
While you are in Edit Mode the widget bodies go inert — charts stop animating, lists stop being clickable — so the page is doing one thing at a time. Refreshing pauses too.
Save writes everything at once. Discard reverts all of it, including a rename and any widget setting you applied. The single exception is Delete, which is confirmed and immediate — “discard my deletion” is not a coherent offer.
If you open someone else’s shared dashboard and make changes, Save becomes Save as my copy: you get your own private copy with the changes, and theirs is untouched.
Arranging widgets
Section titled “Arranging widgets”The grid is twelve slices wide. A widget can be anything from two slices to the full twelve, and dragging one aside pushes its neighbours rather than leaving holes.
Widgets are one to four rows tall. Each starts at its own height, a single row for a compact tile and two for a chart or a list, and you can then resize it: drag a side to change its width, the bottom edge to change its height, or a bottom corner to change both.
On a narrower window the grid folds to six slices and then three, so a dashboard stays readable on a laptop or a tablet. Arranging is only possible at full width: a twelve-slice layout cannot be composed while you are looking at six, and Edit Mode says so rather than letting you save something you did not mean.
Widgets
Section titled “Widgets”Widgets are grouped by what they are about, so a Logs widget never offers you metric settings.
| Group | Examples |
|---|---|
| Overview | Health tiles per entity type, scan and agent activity, a health donut, the audit feed of people’s actions |
| Servers | Fleet and per-server metric graphs, top-N by metric, gauges (bars or odometer dials), a heat map, top processes, disk usage, inode usage, agent versions, silent agents |
| Domains | Status counts, a heat map, expiring certificates and registrations, uptime strips and graphs, DNS/WHOIS/SSL change feed |
| Services | Status counts, a heat map, response-time graphs, availability (from your collectors’ confirmed results; in Every-collector mode, down only when the service’s alert threshold of collectors fail) |
| Databases | Status counts, a heat map, a list, the databases needing attention with their fixes, metric graphs, top-N by metric, a gauge for one database |
| Logs | Volume histogram, level breakdown, top sources, a source heat map, a live tail, silent sources, ingested GB |
| Custom metrics | Line and bar graphs, gauges, single-number stats with a period-on-period delta, a heat map |
| Alarming | Open counts, recent incidents, breakdowns by severity and entity type, entities in alarm, notification failures, mean time to resolve |
| Billing | Current spend, spend by service and by tag, recent invoices, payment status |
Every widget that shows health colours it the same way: green for healthy, amber for warning and red for critical.
The audit feed lists what people did. Events recorded by WatchTower15 itself or by a server’s agent — incidents, health changes, first data — stay on the Audit page and on each resource’s Audit tab.
Database widgets. They read the databases you can view (database.view), chosen by tag,
by a name pattern or by picking them, as server widgets are, up to 50 at a time:
- Database count by status: how many are active, failing, awaiting a collector, verifying, paused and draft.
- Database list: each database’s health, status, engine, queries per second, connections and replication lag.
- Databases needing attention: the failing ones, those without a collector, with a key mismatch, over-privileged or behind a pooled endpoint, each with its fix. A name opens the database’s Collectors tab (no collector, a key mismatch, over-privilege) or its Info tab (failing, a pooled endpoint).
- Database metric graph: one metric over time, one line per database, the top 3 to 10 ranked by their peak (the buffer pool hit ratio by its lowest point).
- Top databases by metric: the latest value of one metric, as ranked bars.
- Database gauge: one database’s connections (warning at 80%, critical at 95%) and buffer pool hit ratio (warning at 95% or below, critical at 90% or below), as bars or odometer dials.
The metrics are queries per second, connections (% of max), threads running, replication lag, slow queries per second, the buffer pool hit ratio, rows read, inserted, updated and deleted per second, and network received and sent, the network ones in one byte-rate unit across the card.
Inode usage is the counterpart of Disk usage. It shows one server’s filesystems as bars of inode usage, with a Warn above (%) setting that defaults to 85%, the same as the Volume is running out of inodes alarm. Filesystems that keep no inode count (btrfs, FAT) are left off the bars and counted underneath. To compare servers, pick Inode usage (%) — fullest mount as a metric in Top servers by metric, Server metric graph or Server metric gauge.
Saturation metrics. The same three widgets offer four metrics that say whether a server is keeping up, not only how busy it is (see saturation):
| Metric | What it is |
|---|---|
| CPU steal (%) | Time the hypervisor gave to other virtual machines while the server was ready to run |
| CPU pressure (%) | The share of time at least one task was waiting for a CPU (some) |
| Memory pressure (%) | The share of time at least one task was waiting for memory (some) |
| I/O pressure (%) | The share of time every non-idle task was stalled on I/O at once (full) |
They are the figures the steal and pressure alarms watch. The widgets work from the agent’s 15-second samples, while those alarms average each minute, so a short spike can show in a widget, even in a gauge’s red band, without raising an alarm. A server whose kernel does not report pressure stall information has no pressure figures to show.
Disk and network throughput. The Disk read (MB/s), Disk write (MB/s), Network in (MB/s) and Network out (MB/s) metrics, and the Network in and Network out widgets, read the same totals as a server’s page: they count no partitions, and every value is an average over the 15-second telemetry interval, so a short burst reads lower than its peak (agent 1.1.28 or later; see which disks are reported).
Server metric gauge shows the current value of one or more of a server’s nine percentage metrics (CPU, memory, swap, disk and inode usage, CPU steal, and CPU, memory and I/O pressure), one gauge each, drawn as bars or odometer dials, as you choose in its settings. The gauges arrange themselves to the card’s size, so a wider or taller card holds more of them side by side. Each gauge turns amber and red at fixed thresholds, the same as the default alarms: 85% and 95%, 50% and 80% for swap, 10% and 25% for steal, and 20% and 50% for the three pressures. The server’s name shows in the card’s title, and a gauge with no server chosen asks you to choose one. If a gauge shows CPU usage where you expected another metric, open its settings and choose its metrics again.
Heat maps show every server, domain, service, log source or metric as a hexagon, coloured by its health right now: green for healthy, amber for warning and red for critical, with a ! or × on the amber and red ones so colour is not the only signal. A slate hexagon with a – is a server that is Unreachable: no heartbeat for 5 minutes or more, whatever its last health. It ranks after critical and before warning, and its tooltip says since when it has not been heard from, that the host may be down or its agent cannot reach WatchTower15, and what is firing. A server WatchTower15 is rejecting for its clock is slate too once 5 minutes pass without an accepted heartbeat, or at once if none was ever accepted, and its tooltip says WatchTower15 is rejecting this server’s data: its clock is off. Set the host’s time with NTP. A server powered off cleanly keeps its colour. A grey hexagon has No data: nothing has been measured yet, such as a server whose agent has not checked in, a log source waiting for its first line or a check with no result. A hollow hexagon is Not watched: no active alarm covers it, or the server has no working agent, so it has no health to show — even when it is unreachable. The legend under the map counts each colour.
Hover over a hexagon, or move to it with the keyboard, to see its name, a few facts and what is firing: up to five alarms, critical ones first, each with when it started. On the Server heat map anyone who can see servers sees the alarm names. On the other four, the names need permission to view incidents; without it the tooltip says only how many alarms are firing. Clicking a hexagon opens that resource, when you are allowed to view it.
Silent agents lists the servers that cannot reach WatchTower15 — unreachable for at least its threshold, 5 minutes unless you choose longer — and those whose agent has never checked in, each linked to its server, with when it was last seen and its agent version. It lists servers WatchTower15 is rejecting for their clock too: past the same threshold since their last accepted heartbeat, or always when none was ever accepted. Their Last seen puts Rejected · before that time, or reads Rejected · never accepted. A server powered off cleanly is not silent, and is left out. Agent activity counts your active servers, how many were seen in the last 5 minutes and the last hour, how many are Unreachable (amber above 0; rejected servers count here once 5 minutes pass without an accepted heartbeat), how many are Catching up (still delivering data their agent kept on the host; never coloured) and how many were never seen. A server rejected before its agent was ever accepted counts under Unreachable, not Never seen.
A heat map draws up to 500 hexagons. Past that, the card says how many it is showing out of the total, and the legend still counts them all. Its settings choose the order, Worst first (the default) or Name, and, on every heat map except the Metric heat map, which resources to include. A server waiting for its agent to enrol again after its install token was rotated is not on the map, though the status counts still include it. A server that was powered off keeps its colour and says Powered off at … where it would say when it was last seen.
Picking Add widget shows the groups, then that group’s widgets as cards — each with a small picture of the shape it draws, so you can see that “Fleet metric graph” is a multi-line chart rather than reading that it is.
Widget settings
Section titled “Widget settings”The cog on a card opens its settings. What you get depends on the widget: which metrics to plot, which servers or domains to target, how many rows, a warning threshold, and its Timeframe: Follow the dashboard (the default), or one of Last hour, Last 3 hours, Last 12 hours, Last day and Last 5 days, which pins the widget to that span whatever the dashboard’s timeframe. There is no refresh setting: how often a card refreshes is set by WatchTower15 (see Edit Mode).
Targeting works three ways wherever a widget accepts it — by tag, by a name wildcard
such as web-prod-*, or by picking resources explicitly. Until you set it, a widget
that covers several resources includes everything in the organisation, and so does a tag
choice or a wildcard left blank. Picking is exact: the widget shows only what you picked,
so a pick list left empty shows nothing. A widget that shows a single server shows one of
yours until you choose which. The uptime strip offers three choices instead: All
domains shows every domain you monitor, including ones added later, with the lowest
thirty-day uptime first, up to 50 (the card says when there are more); Pick selection
shows only the domains you choose, up to 50; By tag shows the domains carrying any of
the tags you choose, and follows them as domains gain or lose those tags. On the strip,
By tag needs at least one tag and allows up to 50. A widget’s tag picker lists the tags
of its resource type to anyone who can view that type.
A few widgets deliberately ignore the dashboard’s timeframe because the question they answer is not about a range: scan activity always reports the last hour and the last day, agent activity the last 5 minutes and the last hour, the uptime strip is always thirty UTC days, and the log tail is always the last hour. Each says which window it used.
Widgets you cannot see
Section titled “Widgets you cannot see”If a widget shows “No permission for this data”, your role does not include the permission that widget’s data needs. Ask an administrator.
This can happen on a dashboard somebody shared with you: they could see the data when they built it. The rest of the dashboard works normally, and you can remove the widget from your own copy if you do not need it. A widget you cannot read is never offered to you when adding one.
Sharing
Section titled “Sharing”A dashboard is private until you share it. Sharing keeps it yours — colleagues can open it and take their own copy, but only you can change it.
Admins have two further options in the dashboard drawer:
- Give to the organisation — different from sharing. The dashboard stops being yours: any Admin can then edit it, and you cannot unless you are one. The drawer explains this before it happens.
- Disable — the dashboard leaves everyone’s selector immediately, including for people using it right now. Nothing is deleted and it can be switched back on.
The organisation default can be neither deleted nor disabled: it is where every member lands with nothing else selected. An Admin can edit it, and anyone can take a copy of it and make that copy their own.
Limits
Section titled “Limits”| Limit | Value |
|---|---|
| Widgets on one dashboard | 24 |
| Dashboards per person, per organisation | 25 |
Related
Section titled “Related”- Roles & permissions — which permission gates which widget.
- Tagging — the tag groups widget targeting filters by.
- Alarms & alerting — what the Alarming widgets report on.