The Definitive Guide toAI Data Centers
Ask the GuideAboutAccount

Chapter 10.6

In this chapter · 5 sections
Term help
Terms in this chapter (70)

Observability, Telemetry & GPU Health

GPU-fleet observability protects goodput. What you detect, how fast you attribute it, and which telemetry you can afford to keep decide whether the cluster keeps training or stops to restart.

ThreadsGoodputDensity rampPower-bound

What you'll decide here

  1. Headline metric: raw GPU utilization, which lies, or goodput (effective training or serving time). Operators optimize whatever is on the wall.
  2. Which XID and SXID events stop placement, restart an application or drain a node, what you capture first, and who makes the RMA call.
  3. Which mix of drain-and-test, in-production sampling and workload-level checks to run against silent corruption, what each one costs, and what hardware screening misses.
  4. Join DCGM/NVML device events, PFC/ECN/queue signals and CDU, leak and inlet-temperature data to allocation epochs before attributing throttling or lost work.
  5. Self-hosted or managed, and its scrape and label model: count each family's series, measure active series and churn, isolate unbounded identifiers before they dominate cost.
The observability closed loop: health and allocation events in, attributed useful work out. Detection speed and cordon accuracy shape recovery, and the failure rate comes from your own fleet.

A frontier training cluster fails constantly. Meta's published Llama 3 405B snapshot recorded 419 unplanned interruptions over 54 days on up to 16,384 H100s, roughly one every three hours, with Table 5 attributing 148 events to faulty GPUs and 72 to HBM3 errors (Meta, July 2024). SemiAnalysis reported about seven days as the typical MTBF for a 512-H100 cluster at a top-tier operator in October 2024. That figure is not a per-GPU hazard rate and cannot be scaled linearly to a 100k-GPU cadence. Use your own fleet's measured job-level interruption distribution, which includes correlated hardware, shared-service, software, membership and detection effects. Components will still fail. What differs between operators is whether the observability stack notices in seconds, pins the failure on the right node and triggers the right recovery, or lets a synchronous job limp along behind a straggler or, worse, keep training on corrupted gradients no counter flagged.

Observability is the operational nervous system that closes that loop. The chapter builds it from the bottom: compute-plane telemetry (DCGM/NVML and the XID/SXID error taxonomy), fabric-plane telemetry (congestion and health counters that show whether the network or the GPU is the bottleneck) and facility-plane telemetry (liquid-cooling and inlet correlation). It then takes the hardest detection problem, silent data corruption, which produces no error at all, and makes the case for promoting goodput from a marketing number to the headline metric that every other signal exists to protect. The last is the architecture and cost decision that dominates the others: self-hosted versus managed, and the cardinality budget that sets what you can afford to watch. Each detection fork is scored by the goodput or dollar cost of getting it wrong.

The three telemetry planes (and why correlation is the hard part)

A GPU node emits signal from three independent stacks that historically belonged to three different teams. The compute plane covers accelerator utilization, memory, power, temperature, clocks, ECC counts and XID/SXID events. On NVIDIA it comes from the NVML library and is aggregated by DCGM (Data Center GPU Manager), whose dcgm-exporter publishes Prometheus-format metrics that any open observability platform can ingest (NVIDIA DCGM docs, 2025). On AMD the data comes from AMD SMI and AMD's device metrics exporter. ROCm 10.1 (October 2026) stopped building the older, deprecated ROCm SMI, so anything scripted against rocm-smi has to move to AMD SMI. The fabric plane covers link flaps, CRC/symbol errors, PFC pause frames, ECN marks, queue depth and NCCL collective timings. It comes from switch counters (UFM for InfiniBand; NetQ or switch streaming telemetry for Spectrum-X and other RoCE Ethernet fabrics) and from the collective library itself. The facility plane covers coolant inlet temperature and flow, CDU pressure, leak detection and rack PDU draw. It comes from DCIM and BMS systems on entirely different protocols (Redfish, Modbus, SNMP).

Collecting each plane is solved. Correlating them to a single node at the moment of an incident is where most stacks fall down, and the failure is expensive. A coolant inlet or flow excursion can drive a GB200 NVL72 GPU into thermal throttling, and the throttle reason, clocks, power and step time for your rack profile are what let you measure the lost output. Suppose the compute plane reports a throttled, underperforming GPU while the facility plane separately reports a CDU pressure excursion, and nothing joins them. You dispatch a technician to RMA a perfectly good GPU while the real fault, a cooling loop, keeps degrading the rest of the rack.

The correlation key is mundane but decisive. Every metric in every plane must carry stable node and rack dimensions. Join job through a time-bounded allocation map instead of stamping it into every hardware series. Then a thermal event, a throttle and a slow collective resolve to one root cause instead of three unrelated pages. Correlatable does not mean identically labelled: job, request and pod identifiers churn, and writing them into facility metrics causes exactly the cardinality explosion the budget later in this chapter exists to prevent. The facility side builds the same correlation discipline in Chapter 14.2; the difference here is that the join must happen at job granularity, fast enough to cordon a node before it poisons a synchronous step.

The XID/SXID taxonomy: evidence before disposition

NVIDIA's XID errors are the primary hardware-fault vocabulary for GPUs. SXID is the NVSwitch equivalent for the scale-up fabric. The taxonomy is not flat: XIDs run from purely informational to instantly fatal, and the central operational decision is what each event triggers, and on what data, before automation changes a node's state. Draw that flow too loosely and corrupt work propagates. Draw it too aggressively and you cordon healthy nodes on transient noise, which shrinks the cluster and cuts goodput from the recovery side. The OCP RAS API specification (v0.96.0, 9 October 2026, still pre-1.0) defines a vendor-neutral fault path for CPUs, GPUs and accelerators. Components report errors as UEFI CPER records and accept actions, up to part replacement, as CPADs over existing transports such as Redfish and PLDM. In a mixed-vendor fleet, ask each supplier for CPER output and a RAS API roadmap so the fault pipeline survives a supplier or generation change.

An Xid or SXid code is one input to a decision, not the decision. Look each code up in NVIDIA's current Xid catalog for your GPU, driver/CUDA release and MIG/fabric topology, and check the Xids that arrived with it. Capture nvidia-bug-report, DCGM/field-diagnostic output, recurrence and scope before any repair decision. For memory events, also record the recovery-action flag, any pending or failed row remap or page retirement, and the reset result. XID 94 is contained to the affected application on supported GPUs: restart that application and validate or discard its uncommitted output, while other applications keep running. XID 95 is uncontained: reset or reboot as the platform guidance requires, and treat everything the affected GPU computed since the last validated checkpoint or validation point as suspect. XID 48 and XID 79 likewise go through NVIDIA's debug/field-diagnostic flow; neither a fixed recurrence window nor one code alone makes an RMA decision. DCGM can recommend monitor, reset, triage, or isolate actions, but does not determine RMA eligibility; your OEM or support contract does.

XID/SXID routing map: what the catalog prescribes and what to capture
SignatureMeaningNVIDIA catalog action: immediate / investigatory (Sep 2026)Decision flowGoodput consequence if mis-routed
XID 79GPU fell off the busRESTART_BM / CONTACT_SUPPORTStop new placement while you capture logs, then follow your platform's drain, reset or power-cycle, field-diagnostic and vendor-support flowLog-only ⇒ the whole synchronous job hangs on a dead GPU until timeout
XID 48Double-bit (uncorrectable) ECCWORKFLOW_XID_48 (solo: RESET_GPU; with Xid 63/64: DRAIN_AND_RESET)Contain affected work; capture location, recurrence, remap/retirement and recovery flags; follow current reset/repair guidance and contract RMA criteriaIgnore ⇒ corrupted compute; over-cordon a one-off ⇒ needless node loss
XID 94 / 95Contained vs uncontained ECC94: RESTART_APP; 95: RESET_GPU94: restart, then validate or discard the affected application's output. 95: reset or reboot as required, then validate affected-GPU outputs from the last known-good boundaryTreat 95 as 94 ⇒ affected-GPU work crosses the required reset and validation boundary
XID 13 / 31Graphics/MMU fault (often app bug)RESTART_APP / WORKFLOW_XID_13, _31Check the catalog's trigger conditions and the application and driver logs; escalate repeated or cross-node patterns through the debug flowAuto-evict ⇒ you cordon healthy nodes for a tenant's buggy kernel
XID 119 / 120GSP / firmware RPC timeoutRESET_GPU / INVESTIGATE_SWReset the GPU per the catalog; preserve logs, investigate software, and follow the GPU Debug Guidelines if the problem recurs after a power cycleSkip the required reset ⇒ recovery is incomplete; ignore recurrence ⇒ required software investigation is missed
SXID (NVSwitch)Scale-up fabric faultPer Fabric Manager SXid severityUse the Fabric Manager SXid severity, affected port/domain, topology and recovery guidance; do not assume one universal drain boundaryTreat as single-GPU ⇒ you miss a fault that degrades the whole NVL72
Catalog actions, not a default routing policy. Check every event against the current NVIDIA Xid catalog and debug/field-diagnostic flow for your GPU, driver/CUDA release, MIG/fabric topology and support contract.

Two routing subtleties separate a mature stack from a noisy one. First, attribution direction: an XID 13 or 31 can come from the application, the driver or the hardware. Before assigning ownership, check the catalog's trigger conditions, replay the application and read the debug logs. Then look at recurrence, and at whether the code also shows up on other nodes or on machines running the same driver release. Auto-evicting on every app-level XID hands tenants the power to shrink your cluster with buggy code. Second, SXID scope follows the reported switch and port, severity, topology and Fabric Manager guidance. Do not infer a single-GPU or whole-rack drain boundary from the SXID label alone, a distinction that gets sharper as scale-up domains widen on the density ramp toward Kyber-class racks.

The fabric counters that answer "is it the GPU or the network?" (PFC pause frames, ECN marks, queue depth) are the bridge to congestion engineering in Chapter 8.6. A collective that suddenly runs slow is a network-health question first and a GPU-health question second, and only correlated telemetry tells you which.

Silent data corruption: the failure with no error code

Every error discussed so far announces itself. Silent data corruption (SDC) does not. A marginal core or memory cell computes the wrong answer, such as a flipped bit in a multiply or a miscomputed gradient, and emits no XID, no ECC count and no log line. The hardware believes it succeeded. In a training run, one SDC can poison a gradient, corrupt an optimizer state or push the loss curve subtly off-trajectory. You may not find out for days, and recovery may then require rolling back to a checkpoint taken before the corruption, discarding all the goodput in between. No XID dashboard, however complete, covers a computation that never raises one.

The published examples establish a screening need, measured on different boundaries. Meta's published AI-hardware reliability work reports roughly one fault per 1,000 devices, with no exposure period to turn it into an annualized rate or a defective-machine prevalence (Meta Engineering, 2025). Separately, Meta’s July 2024 Llama 3 report records six SDC-attributed interruptions during 54 days of 405B pre-training on up to 16,384 H100s (Table 5). That campaign count is not a complete inventory of silent errors or a transferable event interval. Because the defect is silent, you cannot wait for it to surface; you have to go hunting.

Meta's published architecture is the reference, with two complementary detectors. Fleetscanner is opportunistic: a machine is fully drained, tested against its diagnostic suite, then quarantined or returned to rotation. Ripple runs in production, slicing test loads into the gaps between real workloads. Ripple alone runs about 2.5 billion test seeds per month, and Fleetscanner's coverage is reported as a separate cumulative total (Meta Engineering, 2022). In July 2025 Meta reported that both detectors, along with its kernel-level Hardware Sentinel, now run in production across its whole fleet, AI and non-AI hardware alike. Fleetscanner revisits the fleet every 45–60 days, and Ripple does so in days. The 2.5 billion seeds are still the 2022 CPU-fleet count, so do not read them as GPU coverage.

~7 days (512-H100 cluster, typical)
typical MTBF SemiAnalysis reported for a 512-H100 cluster at a top-tier operator
Scope & caveats

SemiAnalysis reported this as typical for a 512-H100 cluster at a top-tier operator in October 2024. It is not a per-GPU rate, a scaling law, or a portable fleet baseline; do not extrapolate it by accelerator count.

1 every ~3 hr (419 in 54 days)
Llama 3 405B on up to 16,384 H100s: unplanned interruptions (Table 5: 148 faulty-GPU, 72 HBM3)
Scope & caveats

Whole-job interruptions for one run under Meta's event definition; not a per-GPU MTBF, an equipment AFR, facility availability or a scaling law for another fleet size.

Table 5 prints 30.1% beside its 148 faulty-GPU events, but 148 of 419 is 35.3% (the 72 HBM3 events are 17.2%), so the paper's 58.7% GPU share, the sum of the printed percentages, understates the counted 64% (268 of 419). Use the counts and state your denominator.

~1 fault per 1,000 devices; exposure unstated
Meta reported about one SDC fault per 1,000 devices; exposure period unstated (22 July 2025)
Scope & caveats

Historical statement in Meta’s AI-hardware reliability discussion; no time denominator is supplied. Not a measured annual incidence, per-job cadence or proof that 0.1% of GPUs currently harbor a defect.

~2.5 billion
SDC test seeds per month run by Ripple across Meta's CPU fleet (2022; Fleetscanner counted separately)
Scope & caveats

Meta's 2022 CPU silent-error screening work. The monthly count belongs to Ripple; Fleetscanner's coverage is reported as a separate cumulative total. Not a GPU-fleet coverage or prevalence measurement.

6.1% / 10.5% / 20.9% goodput expensemodeled
modelled for one large-pretraining scenario (SemiAnalysis, April 2026): Gold-tier, hyperscaler and Silver-tier providers; the loss observability exists to shrink
Scope & caveats

Calculator output for one large-pretraining scenario with stated fault-tolerance and repair-time assumptions, expressed as goodput-expense uplift. The same model gives 0.23–0.96% for multimodal RL research and about 0.5% of TCO for inference endpoints. Not a measured provider loss rate.

restore <1 min
restore time with multi-tier checkpointing on thousands of nodes (Google, vendor-reported); only one clock inside MTTR
Scope & caveats

Vendor-reported general statement by Google for clusters with thousands of nodes, not a measurement tied to the 35K-chip TPU v5p workload (that workload is the source of the separate 6.59% ML Goodput figure). Excludes detection, fencing, allocation, worker launch and validation; not an end-to-end MTTR.

Goodput as the headline metric, and badput accounting

Use the canonical Chapter 14.1 useful-output ledger for the job and fleet boundaries. Google Cloud frames goodput as productive ML throughput net of badput, and the value is in the badput taxonomy, because it forces you to assign every lost GPU-second to a category you can attack. The buckets are scheduling badput (waiting for resources), provisioning/initialization badput (the slow ramp before steady state; see Chapter 10.5), disruption badput (the failure-detect-and-restart loop), wasted-progress badput (work done since the last checkpoint, thrown away on restart) and SDC badput (work rolled back because it was corrupt). Each bucket points at a different fix. Disruption badput spans detection, fencing, allocation, reload and validation. Wasted-progress badput is a checkpoint-cadence problem, and the Young/Daly optimal-interval math is canonical in Chapter 9.4. SDC badput is a hunting problem.

Producing these numbers takes deliberate job-level observability, starting with signals that show real work. GPU utilization (nvidia-smi's GPU-Util, DCGM's GPU_UTIL) is the share of the sample period in which one or more kernels was executing. One kernel resident on a single SM is enough to read 100%, which proves only that something is running, not that the job is moving forward. DCGM's profiling fields (DCGM_FI_PROF_*) look inside the chip: SM_ACTIVE (time with at least one warp active, averaged across SMs), SM_OCCUPANCY (resident warps against the maximum), PIPE_TENSOR_ACTIVE (cycles the tensor pipe was busy, the nearest hardware signal to model FLOPS utilization), DRAM_ACTIVE, and NVLink and PCIe bytes in each direction. NVIDIA's DCGM guide treats SM activity of 0.8 or more as necessary but not sufficient for effective use, and below 0.5 as a likely sign of waste.

The profiling fields have costs. They sample at 1 Hz by default, multiplex some counters, and conflict with Nsight Systems and Nsight Compute, so pause collection (dcgmi profile --pause) while a developer profiles the node. For the collectives, NVIDIA's NCCL Inspector profiler plugin (December 2025) logs algorithmic bandwidth, bus bandwidth and duration for each collective on each communicator, and it is light enough to run in production. A straggler stretches the collective on every rank that waits for it, so the plugin alone cannot tell a slow network from a slow GPU. Read against step time and the DCGM fields, its records help show which of the two cost the throughput. Chapter 10.11 applies the same utilization signals to inference autoscaling.

None of these signals is goodput. MFU measures achieved model FLOPS against the hardware's peak; goodput is the share of wall-clock time that advances the job, so a busy tensor pipe on a step that later rolls back is still badput. Real goodput accounting joins hardware telemetry to training-loop telemetry that the framework itself emits: step time, samples/sec, validated optimizer-step events, and checkpoint capture and durable-commit events. Only at that join can you compute the fraction of wall-clock GPU time that produced committed, correct progress, and only then does the number on the wall mean what operators think it means.

The spread between providers shows what detection and recovery are worth. SemiAnalysis's April 2026 ClusterMAX model counts the overhead of failures, recovery and fault tolerance as a goodput expense, a cost no provider invoices, which works out as a percentage on top of the rental bill. For one pretraining scenario on 5,184 GB300 GPUs at $4/GPU-hr it comes to 6.1% for a Gold-tier provider, 10.5% for a hyperscaler and 20.9% for a Silver-tier provider, on SemiAnalysis's own fault-tolerance and repair-time assumptions. Those are modelled outputs, not measured loss rates. SemiAnalysis's ClusterMAX 3.0 (September 2026) rates GPU clouds on itemized criteria across ten categories, with security graded separately. It is a useful outside check on a provider, not a substitute for measuring your own output and losses.

Deep dive: measure each stage of the detection-to-recovery clock

Observability is worthless if it only describes; its job is to trigger. The loop is detect → attribute → cordon → recover → return-to-service, and on a synchronous job detection latency is often the largest term that observability controls. Here is the mechanism. In synchronous data-parallel training, every GPU blocks at the all-reduce at the end of each step. If one GPU is failing slowly, through a thermal throttle, a degrading NVLink or an intermittent ECC storm that has not yet crossed an XID threshold, it becomes a straggler. The entire 16K-GPU job then runs at the speed of that one sick device until something cordons it. Every second of detection latency is multiplied by the full GPU count: a hang on a dead GPU (XID 79) that takes a 10-minute NCCL timeout to surface is 10 minutes times 16,384 GPUs of pure badput.

Mature stacks therefore invest in pre-failure signals, not just hard faults: per-rank step-time outlier detection (the straggler is the rank that is consistently 5% slow), ECC-rate trend alarms that fire before the double-bit error, and NVLink/CRC-error slopes that flag a link before it flaps. On Kubernetes you can cordon less than a whole node. Where a DRA driver allocates the GPUs, device taints have been stable since v1.37 (August 2026). A health controller can then taint a single GPU: new pods stop landing on it and, with an evicting taint, pods already using it are removed unless they tolerate the taint, while the node's other GPUs keep serving. Decide which XID/DCGM signals taint one device and which cordon the whole node, such as shared NVSwitch/NVLink, PCIe-complex or thermal faults. Chapter 10.1 covers DRA versus the device plugin.

The recovery side belongs to Chapter 10.7 (autonomous hardware recovery, hot spares, elastic training) and the checkpoint math to Chapter 9.4. The observability stack's job is to make detect-and-attribute fast and certain enough that recovery has something correct to act on. Multi-tier checkpointing speeds up the restore. Google reports restores in under a minute on clusters of thousands of nodes, against up to 30 minutes from object storage alone. Its 6.59% ML Goodput gain is a separate improvement, reported for one TPU v5p job spanning 35,000 chips (Google Cloud, June 2025). Restore is one clock inside MTTR, which also carries detection, fencing and drain, spare allocation, process launch and collective re-init, and none of it starts until the detector hands over an unambiguous "this node, now" signal. Hold an end-to-end MTTR target to a failure-injection measurement, never to a published restore time. Fast, certain detection multiplies every recovery investment downstream.

Self-hosted vs managed — and the cardinality budget that governs both

The architecture fork is the one every observability buyer faces, sharpened by GPU economics. Self-hosted means Prometheus (or VictoriaMetrics, Mimir or Thanos for scale) plus Grafana, fed by dcgm-exporter and node and fabric exporters. It gives full control, no per-host SaaS bill, and data that never leaves your security boundary, which matters for sovereign and air-gapped builds (see Chapter 11.7). The cost is that you now operate a high-cardinality time-series database at fleet scale as a production service of its own. Managed means Datadog, Chronosphere (part of Palo Alto Networks since January 2026), Grafana Cloud or a GPU-cloud-native stack. It offloads that operational burden but bills on ingest and active time series, and at GPU-fleet cardinality those bills get large fast. Chronosphere's own framing is blunt: high observability costs steal budget from GPUs, training and staff.

The variable that dominates both paths is cardinality, and you must count it from the telemetry actually emitted. For a given scrape and relabeling model, total active series is the sum of the series emitted by each metric family and label set: Ctotal = Σm|Sm|. A Cartesian product holds only if the exporter or recording rules really emit every combination. So inventory each metric family, scrape target and post-relabel label set, then measure backend active-series count, new-series creation and churn instead of relying on a theoretical multiplication. AI fleets make unbounded job, request, pod, session and tenant identifiers especially dangerous. Isolate those identifiers in logs, traces, object storage or a dedicated bounded store, and aggregate or drop them before the primary time-series database. High cardinality remains a major observability-cost driver (Grafana Labs; Last9, 2025), but the budget has to follow your emission model and measured series behavior.

Observability architecture fork: self-hosted vs managed, governed by cardinality
DimensionSelf-hosted (Prometheus/VM + Grafana)Managed (Datadog/Chronosphere/Grafana Cloud)
Up-front controlFull: schema, retention and sampling are all yoursBounded by the vendor's model and limits
Cost shapeCapex/infra opex plus operations headcount; capacity grows with ingest, active series, query load, retention and replication; unit cost can fall with scaleOpex per ingest / active series; grows with cardinality
Cardinality riskYours to engineer (relabel, drop, downsample)Yours to pay for unless you engineer it the same way
Data residencyStays in your boundary (sovereign / air-gap ready)Leaves your boundary unless you run a self-hosted/managed hybrid
Operational burdenYou run an HA TSDB as a production serviceOffloaded to the vendor
Best fitLarge durable fleets, sovereignty needs, cost at scaleFast start, smaller fleets, lean ops teams
The choice is rarely pure. Tiered pipelines (route high-cardinality raw data to cheap object storage, send aggregates to the primary backend) are a common pattern, and the one vendors now build pipeline products around. Cardinality discipline applies to both columns. Cost-driver framing per Grafana Labs / Last9 / Chronosphere (2025).

The mature answer is neither pure column. It is a tiered telemetry pipeline with deliberate cardinality control, where you place each stream by cost, query latency and incident evidence. One implementation keeps high-resolution, high-cardinality raw telemetry (per-GPU, per-second DCGM) in cheap object storage for forensic and ad-hoc analysis, and sends aggregated, lower-cardinality summaries to the primary backend that powers live dashboards and alerts (Last9; NVIDIA DCGM collector docs, 2025). Relabel to drop labels nobody queries, downsample old data, and put a hard cardinality budget on each team's namespace. Verify that budget against measured active-series count and series-creation churn, and keep unbounded job, request, pod and session identifiers out of the primary time-series store so a new tenant cannot silently multiply the bill.

You cannot afford to watch everything at full fidelity forever, so decide explicitly what stays hot, what goes cold and what gets dropped, and budget that decision instead of letting it emerge. Apply the same residency, support-access, backup and outage checks to managed and self-hosted backends, because self-hosting alone does not prevent an export. Get this wrong on a power-bound, capital-intense fleet and the observability stack becomes a line item that competes with the GPUs it was built to protect.

Deep dive: the first response to an Xid/SXid event

Automate a safe first response, not a fixed Xid bucket list. Stop new placement first whenever the catalog or your runbook calls for isolation, and capture the bug report and telemetry before a reset wipes the GPU's state. Identify the affected application, GPU, MIG instance or fabric domain, then apply the catalog's recovery action. Return a GPU to the pool only after it passes your diagnostic gate. Alert urgency can follow SLO burn and correlated scope, but a lone XID 94 is never just logged: it still needs the catalog's application restart and a captured bug report while other applications keep running.

The recovery side of the loop this chapter detects (autonomous hardware recovery, hot spares and elastic training) belongs to Chapter 10.7. The checkpoint-cadence math that bounds wasted-progress badput is canonical in Chapter 9.4. The fabric counters used here to tell GPU faults from network faults feed congestion engineering in Chapter 8.6. Provisioning and bring-up, the source of initialization badput and of the burn-in gates that catch faults before production, is Chapter 10.5. Facility-side DCIM telemetry and the liquid-cooling correlation go deeper in Chapter 14.2; component failure rates and the fleet-reliability dataset behind the MTBF numbers are in Chapter 14.3. Security boundaries for a self-hosted telemetry plane connect to Chapter 11.7.
Cite this chapter
Fehn, J. (2026). Observability, Telemetry & GPU Health (Chapter 10.6). The Definitive Guide to AI Data Centers. https://aidatacenterguide.com/part-10-software-orchestration-and-service-delivery/10-6-observability-telemetry-and-gpu-health (accessed 2026-10-25).
@misc{aidc-10-6,
  author       = {Fehn, Jacob},
  title        = {Observability, Telemetry & GPU Health (Chapter 10.6)},
  howpublished = {The Definitive Guide to AI Data Centers},
  year         = {2026},
  url          = {https://aidatacenterguide.com/part-10-software-orchestration-and-service-delivery/10-6-observability-telemetry-and-gpu-health},
  note         = {Accessed 2026-10-25}
}
Spotted an error? Suggest an edit