I've seen so many 10" servers that look amazing from the front and very polished, but then having a rats nest of cables and a mess at the back.
After 62 iterations and many 3D prints, blood, sweat, profanity and tears. I my design and implementation is finally done.

I used Hexagons where possible, because as you know, Hexagons are the bestagons
This is Before:

And the After:

The ducky adds 200MHz
The front of my mini-rack is actually still somewhat of a mess, I thought I'd focus on the back first.
I've published it in excruciating detail on my GitHub
Leave a Star if you like what you see.
I self host a bunch of stuff on here to get away from Big-Tech, and because I find it fun.
For a lot more details see https://erasmus.works/
It always bothered me the the fronts of racs are modular, but not the backs, this solves that
If you have any questions feel free to ask, hopefully this helps other clear up their rats nests.
See the "monitoring" namespace
kube-prometheus-stack plus VictoriaLogs for logs, about 100 pods on 2 nodes.
The whole stack uses about 2.2 GB RAM. Prometheus takes about 1.1 GB of that and Grafana about 700 MB. CPU is basically idle, around 0.2 cores.
Prometheus has about 150k series and uses about 7 GB for 15 days of metrics, so roughly 14 GB a month. Logs are about 3 GB a month. Grafana itself is under 1 GB.
It's mostly the default exporters, so a smaller lab would need less. A 20 GB volume would be plenty.
Prometheus is set to retention: 15d and retentionSize: 18GB. Anything older than 15 days is dropped, and so is the oldest data if the total goes over 18 GB, whichever happens first. It's sitting at a steady ~7 GB now that it has a full 15 days stored.