FOR GPU + ML INFRASTRUCTURE
A training node is still a server, and most of what kills it is not the GPU.
Nine rules read the GPUs. The other sixty-one still apply, because the box also has DIMMs, power supplies, fans, drives and a kernel. We monitor the host thoroughly and tell you plainly where that stops.
Free hosted or self-hosted. Test on a single GPU box before deploying fleet-wide.
curl -fsSL https://glassmkr.com/install.sh | sudo bash Crucible v1.0.1 on npm
The problem
GPU boxes get monitored as GPUs. Utilization, memory, temperature, and if you are thorough, ECC and XID codes. That is the interesting part, so it is the part that gets instrumented.
Meanwhile the machine is a two-socket server with a lot of DIMMs, four to eight power supplies, a wall of fans, checkpoint-hungry NVMe, and a kernel that needs patching. Published fleet studies of large training runs put GPU-related faults at roughly a third of unexpected interruptions. The rest is the ordinary server underneath, and it is usually the part nobody set up alerts for.
So the useful question is not whether a tool can chart GPU utilization. It is whether anything is watching the power supply that is about to take the node out mid-epoch.
How Glassmkr fits
GPU-aware alert rules.
Glassmkr’s 70 rules include the specific things that go wrong with GPU hardware: PSU redundancy loss (critical on 8-PSU H100/B200 chassis), ECC errors trending up, IPMI sensor critical from BMC, thermal anomalies, power draw outside expected envelope.
Multi-GPU server-level metrics, not just per-GPU.
The agent collects metrics at the server level (PSU state, chassis temperature, BMC SEL entries) and at the per-GPU level (driver version mismatches, ECC error count, memory bandwidth). Aggregate views show the whole rack.
Open-source agent, datacenter-friendly install.
Crucible is MIT licensed. Install per box with one bash command. Deploys cleanly across 10, 100, or 1000 nodes via configuration management. Air-gapped variants supported on request.
Free in both deployment forms.
Self-hosted is AGPL-3.0-only with no node limits and runs on your own hardware; the hosted instance is free with a 10-node per-account cap. No per-node or telemetry-volume billing in either form, so monitoring never becomes a line item that scales with the fleet.
Every GPU, read at a glance
Per-GPU temperature, power draw against limit, VRAM, ECC counters, PCIe link width and the XID event log. Everything here comes from nvidia-smi, which is present on every driver install, so there is no exporter or daemon to deploy first.
Specific alert rules that matter
GPU and ML infrastructure operators care most about:
- PSU state: redundancy loss on multi-PSU chassis (H100 boxes typically have 4-8 PSUs; losing one is degraded, losing two is at-risk)
- IPMI sensors: fan failures, temperature thresholds exceeded, SEL critical entries from the BMC indicating hardware-level issues
- ECC errors: correctable error rate trending up (often a leading indicator of impending DIMM or GPU memory failure)
- NVMe wear: high write amplification from checkpoint-heavy training workloads
- Network state: interface errors, link-down events and negotiated-speed drops on the host's Ethernet interfaces, including 100 and 400G and RoCE-capable NICs. We read the kernel's per-interface counters, so a native InfiniBand port is out of scope: it does not appear as a network interface, and its link-layer counters live somewhere we do not currently read
- Disk I/O patterns: sustained latency anomalies indicating storage degradation under shuffle/dataloader pressure
- Memory pressure: OOM kills on the host (data loader processes dying)
- Service health: DCGM exporter unhealthy, NVIDIA driver mismatches across boxes in a multi-node training cluster
- Driver survives a reboot: on an NVIDIA box where nouveau was never blacklisted, the next reboot binds nouveau first and the GPU never comes back; on a marketplace this silently de-lists the host. Glassmkr reads the loaded modules and the blacklist state and warns while the box is still up, so you fix it in a window you choose instead of finding out from lost earnings.
Where we stop, and why we say so
We monitor the host. We do not monitor the fabric between hosts, and the distinction matters more on GPU infrastructure than anywhere else.
From inside a node you can see that node's NVLink state, its GPUs, its NIC endpoint and its kernel log. You cannot see switch queue depth, adaptive routing, subnet manager health or a far-end transceiver. Those need switch or controller access, and no host agent of any kind gets them. Anyone claiming otherwise is either reading a switch you have not told them about or guessing.
Two specific limits, stated plainly because you will hit them:
- We do not report NVLink bandwidth or saturation. Collective operations move data in short bursts between compute, so an average taken minutes apart says nothing useful about whether a link was saturated. We would rather report nothing than a confidently wrong number.
- We do not claim to predict NVLink failure. A published study spanning 855 days of production GPU fleets found no preceding hardware errors before its NVLink events. We detect a link that has dropped, quickly, and we can show one that is accumulating errors. Predicting the rest is not something the evidence supports, so we do not sell it.
What we do instead is cover the host completely and tell you where the boundary is. On a training node that is most of the failure surface.
The agent you can read
If you’re running ML infrastructure for research, you almost certainly have a compliance review process. Crucible passes most of them out of the box: MIT licensed, source published, no telemetry collection, non-root user, signed releases on npm.
For environments where outbound HTTPS is restricted, the agent supports HTTP proxies and air-gapped deployment with manual metric upload. Email [email protected] if you need an air-gapped variant; we’ll help.
Pricing reminder
Free both ways: self-hosted under AGPL-3.0-only with no node limits, or the free hosted instance with a 10-node per-account cap. No telemetry-volume billing in either form, so the cost of monitoring does not grow as your training runs intensify.
Node counting is per server, not per GPU. An H100 box with 8 GPUs counts as one node.
Install on a single GPU box first.
Install on a single GPU box first to verify integration. The default rules will fire on your hardware within minutes if any of the GPU-specific signals are degraded.
curl -fsSL https://glassmkr.com/install.sh | sudo bashOr self-host it
The whole stack is open source under AGPL-3.0-only and runs on your own hardware with one docker compose file; nothing leaves your network.
curl -fsSL https://glassmkr.com/install.sh | sudo bash -s -- \
--api-key "gmk_cru_live_..." \
--ingest-url "http://your-dashboard-host:3000/api/v1/ingest" For fleet deployments or air-gapped environments, email [email protected]. We’re a small team and we work directly with the people who run the infrastructure.