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.

app.glassmkr.com/server/gpu-ams-a16-01
2 devices Tier 1 Driver 550.163.01
GPU 0NVIDIA A16
Temp
36°C
Power
12.25/ 62.5 W
VRAM
12 MiB/ 15.0 GB
ECC: onCorrected 0Uncorrected 0
PCIe Gen 4 x16
GPU 1NVIDIA A16
Temp
38°C
Power
12.3/ 62.5 W
VRAM
12 MiB/ 15.0 GB
ECC: onCorrected 0Uncorrected 0
PCIe Gen 4 x16
XID event log: no events in 30 days

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 bash

Or 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"

Self-host in 10 minutes

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.