@glassmkr/crucible 0.13.18 → 0.13.20

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.
@@ -33,6 +33,9 @@ export interface Snapshot {
33
33
  expected_reboot_reason?: string;
34
34
  /** EDAC memory-error counters per memory controller + DIMM. */
35
35
  ecc_edac?: EdacSnapshot;
36
+ /** DIMM population + channel balance from SMBIOS Type 17 (dmidecode).
37
+ * Omitted on VMs / when dmidecode is unavailable. */
38
+ memory_topology?: MemoryTopology;
36
39
  /** PSI pressure-stall counters per resource (cpu, memory, io). */
37
40
  psi?: PsiSnapshot;
38
41
  /** /proc/vmstat swap-in/out rates. */
@@ -590,6 +593,38 @@ export interface MemoryInfo {
590
593
  swap_total_mb: number;
591
594
  swap_used_mb: number;
592
595
  }
596
+ /** One SMBIOS Type 17 Memory Device record (a physical DIMM slot). */
597
+ export interface MemoryDimm {
598
+ locator: string;
599
+ bank_locator: string | null;
600
+ socket: number | null;
601
+ channel: string | null;
602
+ slot: number | null;
603
+ populated: boolean;
604
+ size_mb: number | null;
605
+ rank: number | null;
606
+ type: string | null;
607
+ speed_mts: number | null;
608
+ configured_mts: number | null;
609
+ manufacturer: string | null;
610
+ part_number: string | null;
611
+ }
612
+ /** DIMM population topology derived from dmidecode -t 17. These are the raw
613
+ * COLLECTED facts only; the controller/quadrant-balance judgment (Tier 2) is
614
+ * derived dashboard-side from these + the snapshot's cpu_model against a
615
+ * CPU-family map, so the map can be updated without an agent re-release. */
616
+ export interface MemoryTopology {
617
+ source: "dmidecode";
618
+ total_slots: number;
619
+ populated_slots: number;
620
+ available_channels: number;
621
+ populated_channels: number;
622
+ /** Any populated DIMM whose configured speed is below its rated speed. */
623
+ downclocked: boolean;
624
+ /** >1 distinct part number / size / rank among populated DIMMs. */
625
+ mixed_parts: boolean;
626
+ dimms: MemoryDimm[];
627
+ }
593
628
  export interface DiskInfo {
594
629
  device: string;
595
630
  mount: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glassmkr/crucible",
3
- "version": "0.13.18",
3
+ "version": "0.13.20",
4
4
  "description": "Lightweight bare metal server monitoring. IPMI, SMART, OS, network. Opinionated alerts.",
5
5
  "type": "module",
6
6
  "engines": {