Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ screenshots: ## Render the dashboards to docs/images/ (stack must be up)
@# running stack, so it must never be reachable from `make validate`, where
@# it would either always skip or ask CI for a secret.
@#
@# It starts the `capture` profile's renderer, shoots five PNGs and stops it
@# It starts the `capture` profile's renderer, shoots four PNGs and stops it
@# again. Review every image before committing — docs/images/README.md says
@# what to look for.
./scripts/capture-screenshots.sh $(STACK)
Expand Down
25 changes: 21 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,27 @@ $ make help
...
```

<!-- Dashboard screenshots go here once the stack has real data worth showing.
`make screenshots` captures them; docs/images/README.md lists the
filenames, and says why the Logs dashboard is deliberately not among
them. -->
## Dashboards

Rendered from the running stack by `make screenshots`, over a 24-hour window.
Four of the five provisioned dashboards are here; `docs/images/README.md`
explains why the Logs dashboard is deliberately not among them.

![Host Overview dashboard: CPU, memory, load, storage and network for every host
running an Alloy agent, with a table of firing host alerts across the
top.](docs/images/host-overview.png)

![Docker Containers dashboard: per-container CPU, memory, network and filesystem
writes from cAdvisor, alongside restart counts, CPU throttling and a container
inventory.](docs/images/docker-containers.png)

![Network & Firewall dashboard: pfSense pf state table and packet filter drops,
MokerLink switch interface throughput and link status, and HPE iLO chassis power
draw and hardware health.](docs/images/network-snmp.png)

![UPS & Power dashboard: APC power source, output load, input and output voltage
and runtime, under a banner explaining that every battery figure is fabricated
because no battery pack is fitted.](docs/images/ups-power.png)

## What runs it

Expand Down
44 changes: 24 additions & 20 deletions docs/images/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,33 @@

Dashboard screenshots go here and are referenced from the root `README.md`.

They are deliberately absent rather than faked — a mocked-up dashboard image in
a monitoring repository is worse than none, because it cannot be checked against
the JSON that produced it.
Every one is a real render of the real stack. A mocked-up dashboard image in a
monitoring repository is worse than none, because it cannot be checked against
the JSON that produced it — so an image that cannot honestly be captured is left
out rather than illustrated.

## What is here now

Two of the four, not four. `network-snmp.png` and `ups-power.png` pass the
checklist at the bottom of this file. `host-overview.png` and
`docker-containers.png` do not yet, and are absent rather than committed with a
note apologising for them:
All four, captured in a single run on 2026-08-22 over a 24-hour window. One run
rather than four afternoons: a set shot at the same moment is comparable, and a
gap in one of them is visible against the others.

| File | Why it is not here |
| --- | --- |
| `host-overview.png` | A 14-hour hole, 02:00 to 16:00, where the agent was down. Half the panels are a flat line — the exact thing "The window matters" below warns about. |
| `docker-containers.png` | cAdvisor only started reporting correctly in [#62](https://github.com/Gerrrt/HomeLab/pull/62), so 22 of the 24 hours are empty. |
Which file holds which dashboard is in the table under "Capturing them" below,
because that pairing is defined in the capture script rather than here.

Both are a re-shoot, not a repair: run `make screenshots` again once the stack
has a clean day behind it. Tracked in
[#12](https://github.com/Gerrrt/HomeLab/issues/12).
Two things in them are real and should not be tidied away on the next capture.
`network-snmp.png` shows `IloBatteryCondition` firing on `shiva` — that is a
genuine hardware fault, tracked in
[#76](https://github.com/Gerrrt/HomeLab/issues/76), and a screenshot of a stack
with nothing wrong would be the less honest picture. `docker-containers.png`
carries a `renderer` series in two legends: that is the `capture` profile
container taking the screenshot, which exists only for the duration of a
capture, which is why the inventory below it lists six containers and not seven.

The Container inventory panel on the Docker dashboard used to publish the
absolute path of `compose.yaml` — and so a username — because it excluded
fields by name and cAdvisor kept adding new ones. It now filters to an
allowlist. That was caught by this checklist working, which is the argument for
having it.
The Container inventory panel used to publish the absolute path of
`compose.yaml` — and so a username — because it excluded fields by name and
cAdvisor kept adding new ones. It now filters to an allowlist. That was caught
by this checklist working, which is the argument for having it.

## Capturing them

Expand All @@ -53,7 +55,9 @@ drift:
Height is derived per dashboard from its own JSON, so adding a panel makes the
screenshot taller instead of pushing the new panel out of frame.

Then uncomment the screenshot block in the root `README.md`.
Overwrite the existing files in place. The root `README.md` references them
by name, so a re-shoot needs no edit there — but it does need the checklist
at the bottom of this file running over it again before it is committed.

### The window matters

Expand Down
Binary file added docs/images/docker-containers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/host-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/network-snmp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/ups-power.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading