@glassmkr/crucible 0.12.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collect/__tests__/gpu.test.d.ts +1 -0
- package/dist/collect/__tests__/gpu.test.js +196 -0
- package/dist/collect/__tests__/gpu.test.js.map +1 -0
- package/dist/collect/gpu.d.ts +13 -0
- package/dist/collect/gpu.js +448 -0
- package/dist/collect/gpu.js.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/types.d.ts +145 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
// Tests for C19 GPU collection (v0.13.0, 2026-05-19).
|
|
2
|
+
//
|
|
3
|
+
// Coverage strategy matches c11-c18.test.ts: pure parser functions
|
|
4
|
+
// with synthetic fixtures inline; capability-gated collector
|
|
5
|
+
// exercised via shape assertions on non-Linux/non-NVIDIA dev hosts
|
|
6
|
+
// (collector must not throw and must return its declared shape with
|
|
7
|
+
// available=false and a reason).
|
|
8
|
+
import { describe, expect, it } from "vitest";
|
|
9
|
+
import { __test_only as gpuTest, collectGpu, parseNvidiaSmiCsvRow, parseNvLinkStatus, parseXidEvents, probeGpuCapabilities, } from "../gpu.js";
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Detection probe + capability gating
|
|
12
|
+
// ============================================================================
|
|
13
|
+
describe("C19 GPU probe + capability gate", () => {
|
|
14
|
+
it("probe returns nvidia_smi=false on a host without nvidia-smi (fast path)", async () => {
|
|
15
|
+
const caps = await probeGpuCapabilities();
|
|
16
|
+
// CI runners + dev macOS lack nvidia-smi -> nvidia_smi must be false.
|
|
17
|
+
expect(typeof caps.nvidia_smi).toBe("boolean");
|
|
18
|
+
if (!caps.nvidia_smi) {
|
|
19
|
+
expect(caps.nvidia_driver_version).toBeNull();
|
|
20
|
+
expect(caps.dcgm).toBe(false);
|
|
21
|
+
}
|
|
22
|
+
// Probe must be fast on non-NVIDIA hosts (<100ms is well within
|
|
23
|
+
// the spec's <10ms target; we use a looser bound for noisy CI).
|
|
24
|
+
expect(caps.probe_duration_ms).toBeLessThan(2500);
|
|
25
|
+
});
|
|
26
|
+
it("collectGpu returns available:false with reason on non-NVIDIA hosts", async () => {
|
|
27
|
+
const snap = await collectGpu();
|
|
28
|
+
if (!snap.available) {
|
|
29
|
+
expect(snap.reason).toMatch(/nvidia-smi/i);
|
|
30
|
+
expect(snap.capabilities.nvidia_smi).toBe(false);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
it("Tier 3 ships as stub in v0.13.0 (Simon's 2026-05-19 decision)", async () => {
|
|
34
|
+
const snap = await collectGpu();
|
|
35
|
+
if (snap.available && snap.tier3 && "available" in snap.tier3) {
|
|
36
|
+
// When Tier 3 fires, it's always available:false in this
|
|
37
|
+
// release with the stub-pending reason.
|
|
38
|
+
expect(snap.tier3.available).toBe(false);
|
|
39
|
+
if (!snap.tier3.available) {
|
|
40
|
+
expect(snap.tier3.reason).toMatch(/stub|pending/i);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
// ============================================================================
|
|
46
|
+
// Tier 1: nvidia-smi CSV parser
|
|
47
|
+
// ============================================================================
|
|
48
|
+
describe("C19 Tier 1: parseNvidiaSmiCsvRow", () => {
|
|
49
|
+
it("parses a fully-populated L4 row", () => {
|
|
50
|
+
// Real nvidia-smi CSV output shape from an NVIDIA L4 host.
|
|
51
|
+
const row = [
|
|
52
|
+
"0", "GPU-12345678-90ab-cdef-1234-567890abcdef", "NVIDIA L4",
|
|
53
|
+
"00000000:01:00.0", "95.02.66.00.04",
|
|
54
|
+
"22528", "1024",
|
|
55
|
+
"65", "27", "72",
|
|
56
|
+
"0", "0",
|
|
57
|
+
"1230", "1230", "6250",
|
|
58
|
+
"P8",
|
|
59
|
+
"4", "4", "16", "16",
|
|
60
|
+
"Enabled",
|
|
61
|
+
"0", "0", "0", "0",
|
|
62
|
+
"0", "0", "0",
|
|
63
|
+
"[Not Supported]",
|
|
64
|
+
].join(", ");
|
|
65
|
+
const gpu = parseNvidiaSmiCsvRow(row);
|
|
66
|
+
expect(gpu).not.toBeNull();
|
|
67
|
+
expect(gpu.index).toBe(0);
|
|
68
|
+
expect(gpu.name).toBe("NVIDIA L4");
|
|
69
|
+
expect(gpu.pci_bdf).toBe("00000000:01:00.0");
|
|
70
|
+
expect(gpu.vram_total_mib).toBe(22528);
|
|
71
|
+
expect(gpu.temp_c).toBe(65);
|
|
72
|
+
expect(gpu.power_draw_w).toBe(27);
|
|
73
|
+
expect(gpu.power_limit_w).toBe(72);
|
|
74
|
+
expect(gpu.pcie_link_gen_current).toBe(4);
|
|
75
|
+
expect(gpu.pcie_link_gen_max).toBe(4);
|
|
76
|
+
expect(gpu.ecc_mode_current).toBe(true);
|
|
77
|
+
expect(gpu.fan_speed_percent).toBeNull();
|
|
78
|
+
});
|
|
79
|
+
it("handles [N/A] and [Not Supported] markers as null/0", () => {
|
|
80
|
+
const row = [
|
|
81
|
+
"0", "GPU-x", "Test GPU", "0000:01:00.0", "1.0",
|
|
82
|
+
"16384", "0",
|
|
83
|
+
"[N/A]", "0", "0",
|
|
84
|
+
"0", "0",
|
|
85
|
+
"0", "0", "0",
|
|
86
|
+
"P0",
|
|
87
|
+
"4", "4", "16", "16",
|
|
88
|
+
"Disabled",
|
|
89
|
+
"0", "0", "0", "0",
|
|
90
|
+
"[Not Supported]", "[Not Supported]", "[Not Supported]",
|
|
91
|
+
"50",
|
|
92
|
+
].join(", ");
|
|
93
|
+
const gpu = parseNvidiaSmiCsvRow(row);
|
|
94
|
+
expect(gpu.temp_c).toBe(0);
|
|
95
|
+
expect(gpu.retired_pages_single_bit).toBeNull();
|
|
96
|
+
expect(gpu.retired_pages_double_bit).toBeNull();
|
|
97
|
+
expect(gpu.ecc_mode_current).toBe(false);
|
|
98
|
+
expect(gpu.fan_speed_percent).toBe(50);
|
|
99
|
+
});
|
|
100
|
+
it("returns null on malformed input", () => {
|
|
101
|
+
expect(parseNvidiaSmiCsvRow("short, row")).toBeNull();
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
// ============================================================================
|
|
105
|
+
// Tier 1: NVLink basic parser
|
|
106
|
+
// ============================================================================
|
|
107
|
+
describe("C19 Tier 1: parseNvLinkStatus", () => {
|
|
108
|
+
it("parses up/inactive/down link states", () => {
|
|
109
|
+
const raw = `GPU 0: NVIDIA H100 80GB HBM3 (UUID: GPU-abc)
|
|
110
|
+
\t Link 0: 26.562 GB/s
|
|
111
|
+
\t Link 1: <inactive>
|
|
112
|
+
\t Link 2: 26.562 GB/s
|
|
113
|
+
\t Link 3: 0.000 GB/s`;
|
|
114
|
+
const links = parseNvLinkStatus(raw);
|
|
115
|
+
expect(links.length).toBe(4);
|
|
116
|
+
expect(links[0]).toEqual({ link_id: 0, state: "up", speed_gbps: 26.562 });
|
|
117
|
+
expect(links[1].state).toBe("inactive");
|
|
118
|
+
expect(links[3].state).toBe("inactive"); // 0 GB/s parsed but bw==0 => inactive
|
|
119
|
+
});
|
|
120
|
+
it("returns empty array on input with no Link N: lines", () => {
|
|
121
|
+
expect(parseNvLinkStatus("nothing here")).toEqual([]);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
// ============================================================================
|
|
125
|
+
// Tier 1: XID event parser
|
|
126
|
+
// ============================================================================
|
|
127
|
+
describe("C19 Tier 1: parseXidEvents", () => {
|
|
128
|
+
it("classifies XID 79 as critical (GPU fell off bus)", () => {
|
|
129
|
+
const now = new Date();
|
|
130
|
+
const ts = now.toISOString();
|
|
131
|
+
const raw = `${ts} kernel: NVRM: Xid (PCI:0000:01:00): 79, GPU has fallen off the bus.`;
|
|
132
|
+
const events = parseXidEvents(raw);
|
|
133
|
+
expect(events.length).toBe(1);
|
|
134
|
+
expect(events[0].xid_code).toBe(79);
|
|
135
|
+
expect(events[0].severity).toBe("critical");
|
|
136
|
+
expect(events[0].pci_bdf).toBe("0000:01:00");
|
|
137
|
+
});
|
|
138
|
+
it("classifies XID 48 (DBE) as critical", () => {
|
|
139
|
+
const ts = new Date().toISOString();
|
|
140
|
+
const raw = `${ts} kernel: NVRM: Xid (PCI:0000:01:00): 48, Double Bit ECC Error`;
|
|
141
|
+
const events = parseXidEvents(raw);
|
|
142
|
+
expect(events[0]?.severity).toBe("critical");
|
|
143
|
+
});
|
|
144
|
+
it("classifies XID 32 as warning (recoverable)", () => {
|
|
145
|
+
const ts = new Date().toISOString();
|
|
146
|
+
const raw = `${ts} kernel: NVRM: Xid (PCI:0000:01:00): 32, Invalid push buffer stream`;
|
|
147
|
+
const events = parseXidEvents(raw);
|
|
148
|
+
expect(events[0]?.severity).toBe("warning");
|
|
149
|
+
});
|
|
150
|
+
it("classifies an unknown XID as info", () => {
|
|
151
|
+
const ts = new Date().toISOString();
|
|
152
|
+
const raw = `${ts} kernel: NVRM: Xid (PCI:0000:01:00): 999, Unknown future XID`;
|
|
153
|
+
const events = parseXidEvents(raw);
|
|
154
|
+
expect(events[0]?.severity).toBe("info");
|
|
155
|
+
});
|
|
156
|
+
it("dedups events with identical (timestamp, bdf, code) tuple", () => {
|
|
157
|
+
const ts = new Date().toISOString();
|
|
158
|
+
const raw = [
|
|
159
|
+
`${ts} kernel: NVRM: Xid (PCI:0000:01:00): 79, GPU has fallen off the bus.`,
|
|
160
|
+
`${ts} kernel: NVRM: Xid (PCI:0000:01:00): 79, GPU has fallen off the bus.`,
|
|
161
|
+
`${ts} kernel: NVRM: Xid (PCI:0000:01:00): 79, GPU has fallen off the bus.`,
|
|
162
|
+
].join("\n");
|
|
163
|
+
const events = parseXidEvents(raw);
|
|
164
|
+
expect(events.length).toBe(1);
|
|
165
|
+
});
|
|
166
|
+
it("skips events older than 24h window", () => {
|
|
167
|
+
const oldTs = new Date(Date.now() - 48 * 3600 * 1000).toISOString();
|
|
168
|
+
const raw = `${oldTs} kernel: NVRM: Xid (PCI:0000:01:00): 79, GPU has fallen off the bus.`;
|
|
169
|
+
expect(parseXidEvents(raw).length).toBe(0);
|
|
170
|
+
});
|
|
171
|
+
it("XID severity table aligns with NVIDIA documentation", () => {
|
|
172
|
+
// Spot-check the critical set per the spec's appendix A.
|
|
173
|
+
expect(gpuTest.XID_CRITICAL.has(79)).toBe(true); // fell off bus
|
|
174
|
+
expect(gpuTest.XID_CRITICAL.has(48)).toBe(true); // DBE
|
|
175
|
+
expect(gpuTest.XID_CRITICAL.has(94)).toBe(true); // contained ECC
|
|
176
|
+
expect(gpuTest.XID_CRITICAL.has(95)).toBe(true); // uncontained ECC
|
|
177
|
+
expect(gpuTest.XID_WARNING.has(32)).toBe(true); // push buffer
|
|
178
|
+
expect(gpuTest.XID_CRITICAL.has(32)).toBe(false);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
// ============================================================================
|
|
182
|
+
// Performance budget
|
|
183
|
+
// ============================================================================
|
|
184
|
+
describe("C19 performance budget", () => {
|
|
185
|
+
it("collectGpu does not throw on non-NVIDIA hosts", async () => {
|
|
186
|
+
await expect(collectGpu()).resolves.toBeDefined();
|
|
187
|
+
});
|
|
188
|
+
it("probe under 100ms on non-NVIDIA host (spec target: <10ms; we allow CI slack)", async () => {
|
|
189
|
+
const caps = await probeGpuCapabilities();
|
|
190
|
+
if (!caps.nvidia_smi) {
|
|
191
|
+
// Looser than spec's <10ms target to account for noisy CI runners.
|
|
192
|
+
expect(caps.probe_duration_ms).toBeLessThan(100);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
//# sourceMappingURL=gpu.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpu.test.js","sourceRoot":"","sources":["../../../src/collect/__tests__/gpu.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Gpu, GpuSnapshot, GpuCapabilities, NvLinkBasic, XidEvent } from "../lib/types.js";
|
|
2
|
+
export declare function collectGpu(): Promise<GpuSnapshot>;
|
|
3
|
+
export declare function probeGpuCapabilities(): Promise<GpuCapabilities>;
|
|
4
|
+
export declare function parseNvidiaSmiCsvRow(line: string): Gpu | null;
|
|
5
|
+
export declare function parseNvLinkStatus(raw: string): NvLinkBasic[];
|
|
6
|
+
export declare function parseXidEvents(raw: string): XidEvent[];
|
|
7
|
+
declare function parseLineTimestamp(line: string): number | null;
|
|
8
|
+
export declare const __test_only: {
|
|
9
|
+
XID_CRITICAL: Set<number>;
|
|
10
|
+
XID_WARNING: Set<number>;
|
|
11
|
+
parseLineTimestamp: typeof parseLineTimestamp;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
// GPU collection (NVIDIA data-center GPUs).
|
|
2
|
+
//
|
|
3
|
+
// Three-tier, capability-gated. Per CC_SPEC_CRUCIBLE_GPU_COLLECTION_
|
|
4
|
+
// 2026-05-19.md + handoff Decisions locked (Simon, 2026-05-19).
|
|
5
|
+
//
|
|
6
|
+
// Tier 1 (nvidia-smi): always tried first; <10ms short-circuit on
|
|
7
|
+
// non-NVIDIA hosts. Validation-pending provenance: ships ahead of
|
|
8
|
+
// fleet validation, lifted to fleet-tested in a follow-up PR after
|
|
9
|
+
// Simon's 2-3 GPU hosts come online.
|
|
10
|
+
// Tier 2 (DCGM): basic dcgmi parsing. Desk-research-only provenance.
|
|
11
|
+
// Lifts to fleet-tested if a validation host runs nv-hostengine.
|
|
12
|
+
// Tier 3 (Redfish OEM): SHIPS AS STUB. Detection probe returns
|
|
13
|
+
// available: false with parser_quality "stub" so Dashboard can
|
|
14
|
+
// render the honesty surface (same pattern as the HPE/Adaptec RAID
|
|
15
|
+
// stub parsers from PR #163 and the lenovo/cisco/openbmc SEL
|
|
16
|
+
// stubs from PR #165). Full Supermicro HGX / NVIDIA reference
|
|
17
|
+
// schema implementation is a post-validation follow-up.
|
|
18
|
+
//
|
|
19
|
+
// Critical constraint: zero performance and zero error overhead on
|
|
20
|
+
// hosts without NVIDIA GPUs. The `which nvidia-smi` probe is the
|
|
21
|
+
// gate; everything else short-circuits.
|
|
22
|
+
import { existsSync } from "fs";
|
|
23
|
+
import { run } from "../lib/exec.js";
|
|
24
|
+
const NVIDIA_SMI_TIMEOUT_MS = 5000;
|
|
25
|
+
const DCGM_TIMEOUT_MS = 5000;
|
|
26
|
+
const PROBE_TIMEOUT_MS = 2000;
|
|
27
|
+
// XID error severity table (NVIDIA XID Errors documentation).
|
|
28
|
+
// Maintenance note: NVIDIA adds new XIDs in driver releases; refresh
|
|
29
|
+
// when major driver versions land. Last refreshed 2026-05-19 against
|
|
30
|
+
// the published XID error reference.
|
|
31
|
+
const XID_CRITICAL = new Set([
|
|
32
|
+
13, 31, 43, 45, 48, 56, 57, 58, 62, 63, 64,
|
|
33
|
+
65, 66, 68, 69, 71, 72, 73, 74, 76, 78,
|
|
34
|
+
79, // GPU has fallen off the bus -> most severe
|
|
35
|
+
92, 94, 95, 96, 100, 101, 110, 111, 119, 120,
|
|
36
|
+
]);
|
|
37
|
+
const XID_WARNING = new Set([8, 14, 22, 25, 32, 38, 39, 42, 44, 46, 60, 67]);
|
|
38
|
+
export async function collectGpu() {
|
|
39
|
+
const caps = await probeGpuCapabilities();
|
|
40
|
+
if (!caps.nvidia_smi) {
|
|
41
|
+
return {
|
|
42
|
+
available: false,
|
|
43
|
+
reason: "nvidia-smi not present (non-NVIDIA host or driver not installed)",
|
|
44
|
+
capabilities: caps,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const tier1 = await collectTier1();
|
|
48
|
+
const tier2 = caps.dcgm
|
|
49
|
+
? await collectTier2()
|
|
50
|
+
: {
|
|
51
|
+
available: false,
|
|
52
|
+
reason: "DCGM not active (nv-hostengine service not running)",
|
|
53
|
+
};
|
|
54
|
+
const tier3 = await collectTier3Stub(caps);
|
|
55
|
+
return { available: true, capabilities: caps, tier1, tier2, tier3 };
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Detection probe
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
export async function probeGpuCapabilities() {
|
|
61
|
+
const startMs = Date.now();
|
|
62
|
+
// Fast path: nvidia-smi binary presence. existsSync is synchronous
|
|
63
|
+
// and ~microseconds; the spec's <10ms target is easily met when the
|
|
64
|
+
// file is absent.
|
|
65
|
+
const nvidiaSmiPath = findInPath("nvidia-smi");
|
|
66
|
+
if (!nvidiaSmiPath) {
|
|
67
|
+
return {
|
|
68
|
+
nvidia_smi: false,
|
|
69
|
+
nvidia_driver_version: null,
|
|
70
|
+
dcgm: false,
|
|
71
|
+
dcgmi_version: null,
|
|
72
|
+
redfish_endpoint: null,
|
|
73
|
+
redfish_oem_schema: null,
|
|
74
|
+
probe_duration_ms: Date.now() - startMs,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// Driver version + sanity check (nvidia-smi might exist but be broken
|
|
78
|
+
// on a host with a kernel/driver mismatch; treat that as
|
|
79
|
+
// nvidia_smi=false per the spec).
|
|
80
|
+
const driverOut = await run("nvidia-smi", ["--query-gpu=driver_version", "--format=csv,noheader,nounits"], PROBE_TIMEOUT_MS);
|
|
81
|
+
if (!driverOut) {
|
|
82
|
+
return {
|
|
83
|
+
nvidia_smi: false,
|
|
84
|
+
nvidia_driver_version: null,
|
|
85
|
+
dcgm: false,
|
|
86
|
+
dcgmi_version: null,
|
|
87
|
+
redfish_endpoint: null,
|
|
88
|
+
redfish_oem_schema: null,
|
|
89
|
+
probe_duration_ms: Date.now() - startMs,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const driverVersion = driverOut.split("\n")[0].trim() || null;
|
|
93
|
+
// DCGM probe. Both `pgrep nv-hostengine` (or `systemctl is-active`)
|
|
94
|
+
// and `dcgmi --version` must succeed.
|
|
95
|
+
const dcgmActive = await isDcgmActive();
|
|
96
|
+
const dcgmiVersionOut = dcgmActive
|
|
97
|
+
? await run("dcgmi", ["--version"], PROBE_TIMEOUT_MS)
|
|
98
|
+
: null;
|
|
99
|
+
const dcgmiVersion = dcgmiVersionOut
|
|
100
|
+
? (dcgmiVersionOut.split("\n").find((l) => /version/i.test(l)) ?? dcgmiVersionOut.split("\n")[0]).trim()
|
|
101
|
+
: null;
|
|
102
|
+
// Redfish probe ships as stub: detection returns null endpoint /
|
|
103
|
+
// unknown schema so Tier 3 falls through to "available: false".
|
|
104
|
+
// Per Simon's 2026-05-19 locked decision; full OEM schema queries
|
|
105
|
+
// are a post-fleet-validation follow-up.
|
|
106
|
+
return {
|
|
107
|
+
nvidia_smi: true,
|
|
108
|
+
nvidia_driver_version: driverVersion,
|
|
109
|
+
dcgm: dcgmActive && dcgmiVersion !== null,
|
|
110
|
+
dcgmi_version: dcgmiVersion,
|
|
111
|
+
redfish_endpoint: null,
|
|
112
|
+
redfish_oem_schema: null,
|
|
113
|
+
probe_duration_ms: Date.now() - startMs,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function findInPath(binary) {
|
|
117
|
+
const pathEnv = process.env.PATH || "";
|
|
118
|
+
for (const dir of pathEnv.split(":")) {
|
|
119
|
+
if (!dir)
|
|
120
|
+
continue;
|
|
121
|
+
const candidate = `${dir}/${binary}`;
|
|
122
|
+
if (existsSync(candidate))
|
|
123
|
+
return candidate;
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
async function isDcgmActive() {
|
|
128
|
+
// Prefer systemctl is-active; fall back to pgrep.
|
|
129
|
+
const sysctlOut = await run("systemctl", ["is-active", "nv-hostengine"], PROBE_TIMEOUT_MS);
|
|
130
|
+
if (sysctlOut && /^active\s*$/.test(sysctlOut.trim()))
|
|
131
|
+
return true;
|
|
132
|
+
const pgrepOut = await run("pgrep", ["-f", "nv-hostengine"], PROBE_TIMEOUT_MS);
|
|
133
|
+
return Boolean(pgrepOut && pgrepOut.trim().length > 0);
|
|
134
|
+
}
|
|
135
|
+
// ---------------------------------------------------------------------------
|
|
136
|
+
// Tier 1 (nvidia-smi)
|
|
137
|
+
// ---------------------------------------------------------------------------
|
|
138
|
+
const NVIDIA_SMI_CSV_FIELDS = [
|
|
139
|
+
"index", "uuid", "name", "pci.bus_id", "vbios_version",
|
|
140
|
+
"memory.total", "memory.used",
|
|
141
|
+
"temperature.gpu", "power.draw", "power.limit",
|
|
142
|
+
"utilization.gpu", "utilization.memory",
|
|
143
|
+
"clocks.gr", "clocks.sm", "clocks.mem",
|
|
144
|
+
"pstate",
|
|
145
|
+
"pcie.link.gen.current", "pcie.link.gen.max",
|
|
146
|
+
"pcie.link.width.current", "pcie.link.width.max",
|
|
147
|
+
"ecc.mode.current",
|
|
148
|
+
"ecc.errors.corrected.volatile.total", "ecc.errors.corrected.aggregate.total",
|
|
149
|
+
"ecc.errors.uncorrected.volatile.total", "ecc.errors.uncorrected.aggregate.total",
|
|
150
|
+
// NVIDIA naming asymmetry: the single-bit field is
|
|
151
|
+
// `retired_pages.single_bit_ecc.count` (with _ecc) but the double-bit
|
|
152
|
+
// is `retired_pages.double_bit.count` (no _ecc). Confirmed against
|
|
153
|
+
// `nvidia-smi --help-query-gpu` on driver 550.163.01. v0.13.0 shipped
|
|
154
|
+
// with `retired_pages.double_bit_ecc.count` (extrapolated from the
|
|
155
|
+
// single-bit name); nvidia-smi rejects the unknown field, prints the
|
|
156
|
+
// error to stderr, and exits 0 with empty stdout — Crucible then
|
|
157
|
+
// reports "no GPU rows" and marks tier1 unavailable even though the
|
|
158
|
+
// host has working nvidia-smi. Discovered 2026-05-20 on the val-L4
|
|
159
|
+
// validation host.
|
|
160
|
+
"retired_pages.single_bit_ecc.count", "retired_pages.double_bit.count",
|
|
161
|
+
"retired_pages.pending",
|
|
162
|
+
"fan.speed",
|
|
163
|
+
];
|
|
164
|
+
async function collectTier1() {
|
|
165
|
+
const csvOut = await run("nvidia-smi", [`--query-gpu=${NVIDIA_SMI_CSV_FIELDS.join(",")}`, "--format=csv,noheader,nounits"], NVIDIA_SMI_TIMEOUT_MS);
|
|
166
|
+
if (!csvOut) {
|
|
167
|
+
return { available: false, reason: "nvidia-smi query timeout or returned no output" };
|
|
168
|
+
}
|
|
169
|
+
const gpus = [];
|
|
170
|
+
for (const line of csvOut.split("\n").map((l) => l.trim()).filter(Boolean)) {
|
|
171
|
+
const parsed = parseNvidiaSmiCsvRow(line);
|
|
172
|
+
if (parsed)
|
|
173
|
+
gpus.push(parsed);
|
|
174
|
+
}
|
|
175
|
+
if (gpus.length === 0) {
|
|
176
|
+
return { available: false, reason: "nvidia-smi returned no GPU rows" };
|
|
177
|
+
}
|
|
178
|
+
// Throttle reasons from XML output (CSV path doesn't expose
|
|
179
|
+
// performance_state.reasons cleanly).
|
|
180
|
+
await enrichThrottleReasons(gpus);
|
|
181
|
+
// NVLink basic state per GPU.
|
|
182
|
+
for (const gpu of gpus) {
|
|
183
|
+
gpu.nvlink_links = await collectNvLinkBasic(gpu.index);
|
|
184
|
+
}
|
|
185
|
+
// XID events from dmesg (last 24h).
|
|
186
|
+
const xidEvents = await collectXidEvents();
|
|
187
|
+
// Driver version (already in probe; re-read here to keep tier 1
|
|
188
|
+
// self-contained for callers that import it directly).
|
|
189
|
+
const driverOut = await run("nvidia-smi", ["--query-gpu=driver_version", "--format=csv,noheader,nounits"], NVIDIA_SMI_TIMEOUT_MS);
|
|
190
|
+
const driverVersion = driverOut ? driverOut.split("\n")[0].trim() : "unknown";
|
|
191
|
+
return {
|
|
192
|
+
available: true,
|
|
193
|
+
gpus,
|
|
194
|
+
xid_events: xidEvents,
|
|
195
|
+
driver_version: driverVersion,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
export function parseNvidiaSmiCsvRow(line) {
|
|
199
|
+
const parts = line.split(",").map((p) => p.trim());
|
|
200
|
+
if (parts.length < NVIDIA_SMI_CSV_FIELDS.length - 3)
|
|
201
|
+
return null; // tolerate trailing empty cols on older driver versions
|
|
202
|
+
const num = (i) => {
|
|
203
|
+
const v = parts[i];
|
|
204
|
+
if (v === undefined || v === "" || /\[(N\/A|Not Supported)\]/i.test(v))
|
|
205
|
+
return 0;
|
|
206
|
+
const n = Number(v);
|
|
207
|
+
return Number.isFinite(n) ? n : 0;
|
|
208
|
+
};
|
|
209
|
+
const nullableNum = (i) => {
|
|
210
|
+
const v = parts[i];
|
|
211
|
+
if (!v || /\[(N\/A|Not Supported)\]/i.test(v))
|
|
212
|
+
return null;
|
|
213
|
+
const n = Number(v);
|
|
214
|
+
return Number.isFinite(n) ? n : null;
|
|
215
|
+
};
|
|
216
|
+
const str = (i) => parts[i] ?? "";
|
|
217
|
+
const bool = (i) => /enabled/i.test(parts[i] ?? "");
|
|
218
|
+
return {
|
|
219
|
+
index: num(0),
|
|
220
|
+
uuid: str(1),
|
|
221
|
+
name: str(2),
|
|
222
|
+
pci_bdf: str(3),
|
|
223
|
+
vbios_version: str(4),
|
|
224
|
+
vram_total_mib: num(5),
|
|
225
|
+
vram_used_mib: num(6),
|
|
226
|
+
temp_c: num(7),
|
|
227
|
+
power_draw_w: num(8),
|
|
228
|
+
power_limit_w: num(9),
|
|
229
|
+
utilization_gpu_percent: num(10),
|
|
230
|
+
utilization_mem_percent: num(11),
|
|
231
|
+
clock_graphics_mhz: num(12),
|
|
232
|
+
clock_sm_mhz: num(13),
|
|
233
|
+
clock_mem_mhz: num(14),
|
|
234
|
+
pstate: str(15),
|
|
235
|
+
pcie_link_gen_current: num(16),
|
|
236
|
+
pcie_link_gen_max: num(17),
|
|
237
|
+
pcie_link_width_current: num(18),
|
|
238
|
+
pcie_link_width_max: num(19),
|
|
239
|
+
ecc_mode_current: bool(20),
|
|
240
|
+
ecc_errors_corrected_volatile: num(21),
|
|
241
|
+
ecc_errors_corrected_aggregate: num(22),
|
|
242
|
+
ecc_errors_uncorrected_volatile: num(23),
|
|
243
|
+
ecc_errors_uncorrected_aggregate: num(24),
|
|
244
|
+
retired_pages_single_bit: nullableNum(25),
|
|
245
|
+
retired_pages_double_bit: nullableNum(26),
|
|
246
|
+
retired_pages_pending: nullableNum(27),
|
|
247
|
+
thermal_slowdown_active: false, // set by enrichThrottleReasons
|
|
248
|
+
thermal_violation_total_ms: null, // Tier 2 enriches
|
|
249
|
+
power_violation_total_ms: null, // Tier 2 enriches
|
|
250
|
+
fan_speed_percent: nullableNum(28),
|
|
251
|
+
nvlink_links: [], // set by collectNvLinkBasic
|
|
252
|
+
performance_state_reasons: [], // set by enrichThrottleReasons
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
async function enrichThrottleReasons(gpus) {
|
|
256
|
+
// nvidia-smi -q -x emits a deeply-nested XML; we extract the
|
|
257
|
+
// <clocks_throttle_reasons> block per GPU and flag the active
|
|
258
|
+
// reasons. Lightweight regex-based extraction; avoids pulling a
|
|
259
|
+
// full xml2js dependency for what is essentially a flat key-value
|
|
260
|
+
// section.
|
|
261
|
+
const xmlOut = await run("nvidia-smi", ["-q", "-x"], NVIDIA_SMI_TIMEOUT_MS);
|
|
262
|
+
if (!xmlOut)
|
|
263
|
+
return;
|
|
264
|
+
const gpuBlocks = xmlOut.split(/<gpu /).slice(1); // skip the header
|
|
265
|
+
for (let i = 0; i < gpuBlocks.length && i < gpus.length; i++) {
|
|
266
|
+
const block = gpuBlocks[i];
|
|
267
|
+
const reasonsBlock = block.match(/<clocks_throttle_reasons>([\s\S]*?)<\/clocks_throttle_reasons>/);
|
|
268
|
+
if (!reasonsBlock)
|
|
269
|
+
continue;
|
|
270
|
+
const reasons = [];
|
|
271
|
+
for (const [key, label] of [
|
|
272
|
+
["clocks_throttle_reason_gpu_idle", "gpu_idle"],
|
|
273
|
+
["clocks_throttle_reason_applications_clocks_setting", "applications_clocks_setting"],
|
|
274
|
+
["clocks_throttle_reason_sw_power_cap", "sw_power_cap"],
|
|
275
|
+
["clocks_throttle_reason_hw_slowdown", "hw_slowdown"],
|
|
276
|
+
["clocks_throttle_reason_hw_thermal_slowdown", "hw_thermal_slowdown"],
|
|
277
|
+
["clocks_throttle_reason_hw_power_brake_slowdown", "hw_power_brake"],
|
|
278
|
+
["clocks_throttle_reason_sw_thermal_slowdown", "sw_thermal_slowdown"],
|
|
279
|
+
["clocks_throttle_reason_sync_boost", "sync_boost"],
|
|
280
|
+
["clocks_throttle_reason_display_clock_setting", "display_clock_setting"],
|
|
281
|
+
]) {
|
|
282
|
+
const re = new RegExp(`<${key}>([^<]+)</${key}>`);
|
|
283
|
+
const m = reasonsBlock[1].match(re);
|
|
284
|
+
if (m && /^(active|true)/i.test(m[1].trim())) {
|
|
285
|
+
reasons.push(label);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
gpus[i].performance_state_reasons = reasons;
|
|
289
|
+
gpus[i].thermal_slowdown_active =
|
|
290
|
+
reasons.includes("hw_slowdown") ||
|
|
291
|
+
reasons.includes("hw_thermal_slowdown") ||
|
|
292
|
+
reasons.includes("sw_thermal_slowdown");
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
async function collectNvLinkBasic(gpuIndex) {
|
|
296
|
+
const out = await run("nvidia-smi", ["nvlink", "--status", "-i", String(gpuIndex)], NVIDIA_SMI_TIMEOUT_MS);
|
|
297
|
+
if (!out)
|
|
298
|
+
return [];
|
|
299
|
+
return parseNvLinkStatus(out);
|
|
300
|
+
}
|
|
301
|
+
export function parseNvLinkStatus(raw) {
|
|
302
|
+
// nvidia-smi nvlink --status output format:
|
|
303
|
+
// GPU 0: NVIDIA H100 80GB HBM3 (UUID: GPU-...)
|
|
304
|
+
// Link 0: 26.562 GB/s
|
|
305
|
+
// Link 1: <inactive>
|
|
306
|
+
// Link 2: 26.562 GB/s
|
|
307
|
+
//
|
|
308
|
+
// Inactive shown as "<inactive>" or "Inactive"; down often shown
|
|
309
|
+
// as "Down" or similar. We classify three buckets: up (positive
|
|
310
|
+
// bandwidth), inactive (idle but no fault), down (faulted).
|
|
311
|
+
const links = [];
|
|
312
|
+
for (const line of raw.split("\n")) {
|
|
313
|
+
const m = line.match(/^\s*Link\s+(\d+):\s*(.+?)\s*$/);
|
|
314
|
+
if (!m)
|
|
315
|
+
continue;
|
|
316
|
+
const linkId = Number(m[1]);
|
|
317
|
+
const value = m[2];
|
|
318
|
+
const bwMatch = value.match(/(\d+(?:\.\d+)?)\s*GB\/s/i);
|
|
319
|
+
let state;
|
|
320
|
+
let speedGbps = 0;
|
|
321
|
+
if (bwMatch) {
|
|
322
|
+
const bw = Number(bwMatch[1]);
|
|
323
|
+
state = bw > 0 ? "up" : "inactive";
|
|
324
|
+
speedGbps = bw;
|
|
325
|
+
}
|
|
326
|
+
else if (/inactive/i.test(value)) {
|
|
327
|
+
state = "inactive";
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
// Any other value (Down, error text, ...): treat as down.
|
|
331
|
+
state = "down";
|
|
332
|
+
}
|
|
333
|
+
links.push({ link_id: linkId, state, speed_gbps: speedGbps });
|
|
334
|
+
}
|
|
335
|
+
return links;
|
|
336
|
+
}
|
|
337
|
+
async function collectXidEvents() {
|
|
338
|
+
const out = await run("dmesg", ["--time-format=iso", "--no-pager"], NVIDIA_SMI_TIMEOUT_MS);
|
|
339
|
+
if (!out) {
|
|
340
|
+
// Fallback without --time-format flag (older kernels)
|
|
341
|
+
const fallback = await run("dmesg", ["--no-pager"], NVIDIA_SMI_TIMEOUT_MS);
|
|
342
|
+
if (!fallback)
|
|
343
|
+
return [];
|
|
344
|
+
return parseXidEvents(fallback);
|
|
345
|
+
}
|
|
346
|
+
return parseXidEvents(out);
|
|
347
|
+
}
|
|
348
|
+
export function parseXidEvents(raw) {
|
|
349
|
+
const events = [];
|
|
350
|
+
const cutoffMs = Date.now() - 24 * 3600 * 1000; // 24h window
|
|
351
|
+
const seen = new Set(); // dedup key (timestamp, bdf, code)
|
|
352
|
+
for (const line of raw.split("\n")) {
|
|
353
|
+
const m = line.match(/NRM(?:: )?Xid \(PCI:([\da-fA-F:.]+)\):\s*(\d+)(?:,)?\s*(.*)$/) || line.match(/NVRM: Xid \(PCI:([\da-fA-F:.]+)\):\s*(\d+)(?:,)?\s*(.*)$/);
|
|
354
|
+
if (!m)
|
|
355
|
+
continue;
|
|
356
|
+
const [, bdf, codeStr, rest] = m;
|
|
357
|
+
const code = Number.parseInt(codeStr, 10);
|
|
358
|
+
if (!Number.isFinite(code))
|
|
359
|
+
continue;
|
|
360
|
+
const ts = parseLineTimestamp(line);
|
|
361
|
+
if (ts !== null && ts < cutoffMs)
|
|
362
|
+
continue;
|
|
363
|
+
const key = `${ts ?? "unknown"}|${bdf}|${code}`;
|
|
364
|
+
if (seen.has(key))
|
|
365
|
+
continue;
|
|
366
|
+
seen.add(key);
|
|
367
|
+
const severity = XID_CRITICAL.has(code)
|
|
368
|
+
? "critical"
|
|
369
|
+
: XID_WARNING.has(code)
|
|
370
|
+
? "warning"
|
|
371
|
+
: "info";
|
|
372
|
+
events.push({
|
|
373
|
+
timestamp_iso: ts !== null ? new Date(ts).toISOString() : new Date().toISOString(),
|
|
374
|
+
xid_code: code,
|
|
375
|
+
pci_bdf: bdf,
|
|
376
|
+
severity,
|
|
377
|
+
raw_message: line.trim(),
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
return events;
|
|
381
|
+
}
|
|
382
|
+
function parseLineTimestamp(line) {
|
|
383
|
+
const isoMatch = line.match(/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:[,.]\d+)?(?:[+-]\d{2}:?\d{2}|Z)?)/);
|
|
384
|
+
if (isoMatch) {
|
|
385
|
+
const t = Date.parse(isoMatch[1].replace(",", "."));
|
|
386
|
+
return Number.isFinite(t) ? t : null;
|
|
387
|
+
}
|
|
388
|
+
return null;
|
|
389
|
+
}
|
|
390
|
+
// ---------------------------------------------------------------------------
|
|
391
|
+
// Tier 2 (DCGM)
|
|
392
|
+
// ---------------------------------------------------------------------------
|
|
393
|
+
async function collectTier2() {
|
|
394
|
+
// Best-effort tier 2 collection. parser_quality=stub per
|
|
395
|
+
// CC_HANDOFF_GPU_WORKSTREAM_2026-05-19.md Decisions locked: ships
|
|
396
|
+
// as desk-research-only because we have no DCGM-equipped host in
|
|
397
|
+
// the validation fleet yet. Lifts to fleet-tested in the follow-up
|
|
398
|
+
// PR if one of Simon's 2-3 incoming validation hosts runs
|
|
399
|
+
// nv-hostengine.
|
|
400
|
+
//
|
|
401
|
+
// Implementation intentionally narrow: ship the shape Dashboard
|
|
402
|
+
// expects with the actively-queryable fields, leave topology +
|
|
403
|
+
// detailed nvlink as null for now.
|
|
404
|
+
const healthOut = await run("dcgmi", ["health", "-g", "0", "-c"], DCGM_TIMEOUT_MS);
|
|
405
|
+
if (!healthOut) {
|
|
406
|
+
return {
|
|
407
|
+
available: false,
|
|
408
|
+
reason: "dcgmi health query returned no output (DCGM accessible but query failed)",
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
return {
|
|
412
|
+
available: true,
|
|
413
|
+
parser_quality: "stub",
|
|
414
|
+
nvswitch_status: [],
|
|
415
|
+
nvlink_detailed: [],
|
|
416
|
+
retired_pages_detail: [],
|
|
417
|
+
thermal_violation_time_series_ms: 0,
|
|
418
|
+
power_violation_time_series_ms: 0,
|
|
419
|
+
topology_actual: { nodes: [], edges: [] },
|
|
420
|
+
topology_expected: null,
|
|
421
|
+
health_summary_raw: healthOut.slice(0, 4096), // cap at 4KB for snapshot size
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
// ---------------------------------------------------------------------------
|
|
425
|
+
// Tier 3 (Redfish OEM) — stub per Simon's locked decision
|
|
426
|
+
// ---------------------------------------------------------------------------
|
|
427
|
+
async function collectTier3Stub(_caps) {
|
|
428
|
+
// Per CC_HANDOFF_GPU_WORKSTREAM_2026-05-19.md Decisions locked:
|
|
429
|
+
// "Tier 3 (Redfish OEM) ships as stub with parser_quality: 'stub'
|
|
430
|
+
// honesty surface, matching the BMC vendor matrix pattern from
|
|
431
|
+
// PR #165 and the HPE/Adaptec hardware RAID parsers from PR #163."
|
|
432
|
+
//
|
|
433
|
+
// The detection probe (probeGpuCapabilities) returns
|
|
434
|
+
// redfish_endpoint: null and redfish_oem_schema: null in this
|
|
435
|
+
// release; this stub returns available: false with the appropriate
|
|
436
|
+
// reason. Post-fleet-validation follow-up will implement Supermicro
|
|
437
|
+
// HGX and NVIDIA reference Redfish schemas.
|
|
438
|
+
return {
|
|
439
|
+
available: false,
|
|
440
|
+
reason: "Tier 3 Redfish OEM ships as stub in v0.13.0 (parser_quality: stub); Supermicro HGX + NVIDIA reference schemas pending fleet validation",
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
export const __test_only = {
|
|
444
|
+
XID_CRITICAL,
|
|
445
|
+
XID_WARNING,
|
|
446
|
+
parseLineTimestamp,
|
|
447
|
+
};
|
|
448
|
+
//# sourceMappingURL=gpu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../src/collect/gpu.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -102,6 +102,7 @@ import { collectEthtool } from "./collect/ethtool.js";
|
|
|
102
102
|
import { collectSoftnet } from "./collect/softnet.js";
|
|
103
103
|
import { collectCve } from "./collect/cve.js";
|
|
104
104
|
import { collectDmesgEvents } from "./collect/dmesg-events.js";
|
|
105
|
+
import { collectGpu } from "./collect/gpu.js";
|
|
105
106
|
import { collectThermal } from "./collect/thermal.js";
|
|
106
107
|
import { collectDmi, formatVendorLine } from "./collect/dmi.js";
|
|
107
108
|
import { detectIpmiCapability, formatCapabilityLine } from "./lib/capability.js";
|
|
@@ -337,6 +338,14 @@ async function collect() {
|
|
|
337
338
|
snapshot.dmesg_events = await collectDmesgEvents();
|
|
338
339
|
}
|
|
339
340
|
catch { /* skip on error */ }
|
|
341
|
+
// C19 GPU collection (v0.13.0, 2026-05-19). Three-tier capability-
|
|
342
|
+
// gated; non-NVIDIA hosts short-circuit in <10ms via the
|
|
343
|
+
// which-nvidia-smi probe. Per CC_SPEC_CRUCIBLE_GPU_COLLECTION_
|
|
344
|
+
// 2026-05-19.md.
|
|
345
|
+
try {
|
|
346
|
+
snapshot.gpu = await collectGpu();
|
|
347
|
+
}
|
|
348
|
+
catch { /* skip on error */ }
|
|
340
349
|
// Update Prometheus metrics
|
|
341
350
|
updateMetrics(snapshot);
|
|
342
351
|
// Evaluate alerts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -58,6 +58,151 @@ export interface Snapshot {
|
|
|
58
58
|
cve?: CveSnapshot;
|
|
59
59
|
/** C18 dmesg structured event parser. */
|
|
60
60
|
dmesg_events?: DmesgEventsSnapshot;
|
|
61
|
+
/** C19 GPU collection (NVIDIA L4/A100/H100/H200/B200). Three-tier
|
|
62
|
+
* capability gated; Tier 1 = nvidia-smi, Tier 2 = DCGM, Tier 3 =
|
|
63
|
+
* Redfish OEM (stub in v0.13.0). Per CC_SPEC_CRUCIBLE_GPU_
|
|
64
|
+
* COLLECTION_2026-05-19.md. */
|
|
65
|
+
gpu?: GpuSnapshot;
|
|
66
|
+
}
|
|
67
|
+
export interface GpuCapabilities {
|
|
68
|
+
nvidia_smi: boolean;
|
|
69
|
+
nvidia_driver_version: string | null;
|
|
70
|
+
dcgm: boolean;
|
|
71
|
+
dcgmi_version: string | null;
|
|
72
|
+
redfish_endpoint: string | null;
|
|
73
|
+
redfish_oem_schema: "supermicro_hgx" | "dell_xe" | "hpe_apollo" | "nvidia_reference" | "unknown" | null;
|
|
74
|
+
probe_duration_ms: number;
|
|
75
|
+
}
|
|
76
|
+
export interface NvLinkBasic {
|
|
77
|
+
link_id: number;
|
|
78
|
+
state: "up" | "down" | "inactive";
|
|
79
|
+
speed_gbps: number;
|
|
80
|
+
}
|
|
81
|
+
export interface XidEvent {
|
|
82
|
+
timestamp_iso: string;
|
|
83
|
+
xid_code: number;
|
|
84
|
+
pci_bdf: string;
|
|
85
|
+
severity: "critical" | "warning" | "info";
|
|
86
|
+
raw_message: string;
|
|
87
|
+
}
|
|
88
|
+
export interface Gpu {
|
|
89
|
+
index: number;
|
|
90
|
+
uuid: string;
|
|
91
|
+
name: string;
|
|
92
|
+
pci_bdf: string;
|
|
93
|
+
vbios_version: string;
|
|
94
|
+
vram_total_mib: number;
|
|
95
|
+
vram_used_mib: number;
|
|
96
|
+
temp_c: number;
|
|
97
|
+
power_draw_w: number;
|
|
98
|
+
power_limit_w: number;
|
|
99
|
+
utilization_gpu_percent: number;
|
|
100
|
+
utilization_mem_percent: number;
|
|
101
|
+
clock_graphics_mhz: number;
|
|
102
|
+
clock_sm_mhz: number;
|
|
103
|
+
clock_mem_mhz: number;
|
|
104
|
+
pstate: string;
|
|
105
|
+
pcie_link_gen_current: number;
|
|
106
|
+
pcie_link_gen_max: number;
|
|
107
|
+
pcie_link_width_current: number;
|
|
108
|
+
pcie_link_width_max: number;
|
|
109
|
+
ecc_mode_current: boolean;
|
|
110
|
+
ecc_errors_corrected_volatile: number;
|
|
111
|
+
ecc_errors_corrected_aggregate: number;
|
|
112
|
+
ecc_errors_uncorrected_volatile: number;
|
|
113
|
+
ecc_errors_uncorrected_aggregate: number;
|
|
114
|
+
retired_pages_single_bit: number | null;
|
|
115
|
+
retired_pages_double_bit: number | null;
|
|
116
|
+
retired_pages_pending: number | null;
|
|
117
|
+
thermal_slowdown_active: boolean;
|
|
118
|
+
thermal_violation_total_ms: number | null;
|
|
119
|
+
power_violation_total_ms: number | null;
|
|
120
|
+
fan_speed_percent: number | null;
|
|
121
|
+
nvlink_links: NvLinkBasic[];
|
|
122
|
+
performance_state_reasons: string[];
|
|
123
|
+
}
|
|
124
|
+
export interface Tier1Snapshot {
|
|
125
|
+
available: true;
|
|
126
|
+
gpus: Gpu[];
|
|
127
|
+
xid_events: XidEvent[];
|
|
128
|
+
driver_version: string;
|
|
129
|
+
}
|
|
130
|
+
export interface Tier2Snapshot {
|
|
131
|
+
available: true;
|
|
132
|
+
/** "stub" in v0.13.0; lifts to "fleet-tested" post-validation. */
|
|
133
|
+
parser_quality: "stub" | "fleet-tested";
|
|
134
|
+
nvswitch_status: Array<{
|
|
135
|
+
uuid: string;
|
|
136
|
+
port_count_total: number;
|
|
137
|
+
port_count_active: number;
|
|
138
|
+
port_count_faulted: number;
|
|
139
|
+
faulted_ports: number[];
|
|
140
|
+
}>;
|
|
141
|
+
nvlink_detailed: Array<NvLinkBasic & {
|
|
142
|
+
remote_gpu_uuid: string | null;
|
|
143
|
+
remote_nvswitch_uuid: string | null;
|
|
144
|
+
replay_errors: number;
|
|
145
|
+
recovery_errors: number;
|
|
146
|
+
crc_errors: number;
|
|
147
|
+
flit_crc_errors: number;
|
|
148
|
+
}>;
|
|
149
|
+
retired_pages_detail: Array<{
|
|
150
|
+
gpu_uuid: string;
|
|
151
|
+
address: string;
|
|
152
|
+
cause: "single_bit_ecc" | "double_bit_ecc";
|
|
153
|
+
retired_at_iso: string;
|
|
154
|
+
}>;
|
|
155
|
+
thermal_violation_time_series_ms: number;
|
|
156
|
+
power_violation_time_series_ms: number;
|
|
157
|
+
topology_actual: {
|
|
158
|
+
nodes: string[];
|
|
159
|
+
edges: Array<{
|
|
160
|
+
from: string;
|
|
161
|
+
to: string;
|
|
162
|
+
link_count: number;
|
|
163
|
+
}>;
|
|
164
|
+
};
|
|
165
|
+
topology_expected: {
|
|
166
|
+
nodes: string[];
|
|
167
|
+
edges: Array<{
|
|
168
|
+
from: string;
|
|
169
|
+
to: string;
|
|
170
|
+
link_count: number;
|
|
171
|
+
}>;
|
|
172
|
+
} | null;
|
|
173
|
+
/** Raw `dcgmi health` output (capped at 4KB) for v0.13.0; future
|
|
174
|
+
* releases structure this. */
|
|
175
|
+
health_summary_raw: string;
|
|
176
|
+
}
|
|
177
|
+
export interface Tier3Snapshot {
|
|
178
|
+
available: true;
|
|
179
|
+
/** "stub" in v0.13.0 per Simon's 2026-05-19 ship-ahead decision. */
|
|
180
|
+
parser_quality: "stub" | "fleet-tested";
|
|
181
|
+
oem_schema: string;
|
|
182
|
+
baseboard_thermal_c: number | null;
|
|
183
|
+
baseboard_power_input_w: number | null;
|
|
184
|
+
hgx_baseboard_status?: "ok" | "warning" | "critical" | null;
|
|
185
|
+
gpu_module_status: Array<{
|
|
186
|
+
uuid: string;
|
|
187
|
+
status: "ok" | "warning" | "critical";
|
|
188
|
+
}>;
|
|
189
|
+
}
|
|
190
|
+
export interface GpuSnapshot {
|
|
191
|
+
available: boolean;
|
|
192
|
+
reason?: string;
|
|
193
|
+
capabilities: GpuCapabilities;
|
|
194
|
+
tier1?: Tier1Snapshot | {
|
|
195
|
+
available: false;
|
|
196
|
+
reason: string;
|
|
197
|
+
};
|
|
198
|
+
tier2?: Tier2Snapshot | {
|
|
199
|
+
available: false;
|
|
200
|
+
reason: string;
|
|
201
|
+
};
|
|
202
|
+
tier3?: Tier3Snapshot | {
|
|
203
|
+
available: false;
|
|
204
|
+
reason: string;
|
|
205
|
+
};
|
|
61
206
|
}
|
|
62
207
|
export interface LvmThinPool {
|
|
63
208
|
lv_name: string;
|