@glassmkr/crucible 0.9.3 → 0.10.0

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.
@@ -3,16 +3,25 @@ import type { Vendor } from "./types.js";
3
3
  * True if `name` looks like an individual PSU sensor (status / wattage / etc.)
4
4
  * for the given vendor.
5
5
  *
6
- * Generic patterns cover Supermicro, HPE iLO, ASRockRack:
7
- * "PSU1 Status", "Power Supply 1", "PSU2 Power Out"
6
+ * Generic patterns cover Supermicro / HPE / ASRockRack / Gigabyte / Dell
7
+ * across the validation fleet:
8
+ * "PSU1 Status" (ASRockRack X570D4U)
9
+ * "Power Supply 1" (HPE iLO)
10
+ * "PSU2 Power Out" (Supermicro extended)
11
+ * "PS1 Status" (Supermicro H12SST, space separator)
12
+ * "PS1_Status" (Gigabyte MC12-LE0, MZ62-HD0, R292-4S1, underscore separator)
13
+ * "PS1 Status" (Dell iDRAC PowerEdge family)
8
14
  *
9
- * Dell iDRAC adds:
10
- * "PS1 Status", "PS2 Status", "PS3 Status"
15
+ * Previously this filter only matched the "psu" or "power supply"
16
+ * substrings plus a Dell-gated `/^ps\d+\b/` pattern. That left every
17
+ * Supermicro/Gigabyte BMC that uses the `PS<N>` shape outside the
18
+ * filter, so the per-PSU rule path never even reached them.
19
+ * glassmkr#29 component.
11
20
  *
12
- * Note that "PS Redundancy" is NOT an individual PSU sensor; see
21
+ * `PS Redundancy` (aggregate sensor) is excluded see
13
22
  * `isPsuRedundancySensor`.
14
23
  */
15
- export declare function isPsuSensor(name: string, vendor: Vendor): boolean;
24
+ export declare function isPsuSensor(name: string, _vendor: Vendor): boolean;
16
25
  /**
17
26
  * True if `name` is the aggregate PSU redundancy state sensor.
18
27
  * Currently only Dell exposes this as a discrete sensor reading;
@@ -25,3 +34,33 @@ export declare function isPsuRedundancySensor(name: string, vendor: Vendor): boo
25
34
  * "Redundancy Degraded", or "0x01"-style raw codes depending on iDRAC firmware.
26
35
  */
27
36
  export declare function classifyPsuRedundancyState(valueOrStatus: string): "fully_redundant" | "redundancy_lost" | "redundancy_degraded" | "unknown";
37
+ /**
38
+ * Per-PSU sensor classification from the discrete-state bitmask reported
39
+ * by `ipmitool sensor` for sensor type 0x08 (Power Supply). The Reading
40
+ * column carries a hex value whose bits are defined by IPMI 2.0 spec
41
+ * table 42-3:
42
+ *
43
+ * bit 0 (0x01): Presence detected
44
+ * bit 1 (0x02): Power Supply Failure detected
45
+ * bit 2 (0x04): Predictive Failure
46
+ * bit 3 (0x08): Power Supply input lost (AC/DC)
47
+ * bit 4 (0x10): Power Supply input lost or out-of-range
48
+ * bit 5 (0x20): Power Supply input out-of-range, but present
49
+ * bit 6 (0x40): Configuration error
50
+ * bit 7 (0x80): Power Supply Inactive (standby; not delivering power)
51
+ *
52
+ * `mask` is the discrete-state assertion mask Crucible reads from the 4th
53
+ * column of `ipmitool sensor` for discrete sensors — which bits this BMC's
54
+ * firmware can assert. When the mask doesn't include the Presence bit, a
55
+ * Reading of 0x0 is ambiguous (PSU healthy with no events, OR PSU absent).
56
+ * In that case we under-report (return `ok`) rather than over-report.
57
+ * glassmkr#29.
58
+ *
59
+ * `vendor` is currently advisory — bit meanings are IPMI-standard across
60
+ * the bare-metal vendors we've observed on the validation fleet
61
+ * (Supermicro, Gigabyte, ASRockRack); the BMC-to-BMC variation is in the
62
+ * mask, not the bit semantics. Kept as a parameter for future per-vendor
63
+ * escape hatches.
64
+ */
65
+ export type PsuSensorState = "ok" | "failed" | "ac_lost" | "predictive" | "absent" | "inactive" | "unknown";
66
+ export declare function classifyPsuSensorBitmask(valueHex: string, mask: string | undefined, _vendor: Vendor): PsuSensorState;
@@ -10,25 +10,33 @@
10
10
  * True if `name` looks like an individual PSU sensor (status / wattage / etc.)
11
11
  * for the given vendor.
12
12
  *
13
- * Generic patterns cover Supermicro, HPE iLO, ASRockRack:
14
- * "PSU1 Status", "Power Supply 1", "PSU2 Power Out"
13
+ * Generic patterns cover Supermicro / HPE / ASRockRack / Gigabyte / Dell
14
+ * across the validation fleet:
15
+ * "PSU1 Status" (ASRockRack X570D4U)
16
+ * "Power Supply 1" (HPE iLO)
17
+ * "PSU2 Power Out" (Supermicro extended)
18
+ * "PS1 Status" (Supermicro H12SST, space separator)
19
+ * "PS1_Status" (Gigabyte MC12-LE0, MZ62-HD0, R292-4S1, underscore separator)
20
+ * "PS1 Status" (Dell iDRAC PowerEdge family)
15
21
  *
16
- * Dell iDRAC adds:
17
- * "PS1 Status", "PS2 Status", "PS3 Status"
22
+ * Previously this filter only matched the "psu" or "power supply"
23
+ * substrings plus a Dell-gated `/^ps\d+\b/` pattern. That left every
24
+ * Supermicro/Gigabyte BMC that uses the `PS<N>` shape outside the
25
+ * filter, so the per-PSU rule path never even reached them.
26
+ * glassmkr#29 component.
18
27
  *
19
- * Note that "PS Redundancy" is NOT an individual PSU sensor; see
28
+ * `PS Redundancy` (aggregate sensor) is excluded see
20
29
  * `isPsuRedundancySensor`.
21
30
  */
22
- export function isPsuSensor(name, vendor) {
31
+ export function isPsuSensor(name, _vendor) {
23
32
  const lower = name.toLowerCase();
24
33
  if (lower.includes("psu") || lower.includes("power supply"))
25
34
  return true;
26
- if (vendor === "dell") {
27
- // PS1, PS2 ... optionally followed by " Status" or other suffix.
28
- // Excludes "PS Redundancy" and similar non-numeric.
29
- if (/^ps\d+\b/i.test(name))
30
- return true;
31
- }
35
+ // Generic `PS<digit>` with optional space/underscore separator and
36
+ // suffix. Anchored to start so we don't accidentally swallow names
37
+ // like "PS Redundancy" (no digit) or "SOMETHING-PS1" (mid-string).
38
+ if (/^ps\d+[\s_]?/i.test(name))
39
+ return true;
32
40
  return false;
33
41
  }
34
42
  /**
@@ -60,4 +68,39 @@ export function classifyPsuRedundancyState(valueOrStatus) {
60
68
  return "fully_redundant";
61
69
  return "unknown";
62
70
  }
71
+ export function classifyPsuSensorBitmask(valueHex, mask, _vendor) {
72
+ const v = valueHex.trim().toLowerCase().replace(/^0x/, "");
73
+ if (!v || v === "na")
74
+ return "unknown";
75
+ const value = parseInt(v, 16);
76
+ if (Number.isNaN(value))
77
+ return "unknown";
78
+ const m = mask?.trim().toLowerCase().replace(/^0x/, "");
79
+ const maskNum = m && m !== "na" ? parseInt(m, 16) : NaN;
80
+ // Failure bits take precedence: a BMC that asserts both Presence (bit 0)
81
+ // AND Failure (bit 1) still has a failed PSU.
82
+ if (value & 0x02)
83
+ return "failed";
84
+ if (value & 0x08)
85
+ return "ac_lost";
86
+ if (value & 0x10)
87
+ return "ac_lost";
88
+ if (value & 0x20)
89
+ return "ac_lost";
90
+ if (value & 0x04)
91
+ return "predictive";
92
+ // Standby/inactive: in a redundant pair the inactive PSU may be the
93
+ // backup. Report as `inactive` and let the caller decide. Only
94
+ // meaningful if the BMC says it can report bit 7.
95
+ if (!Number.isNaN(maskNum) && (maskNum & 0x80) && (value & 0x80))
96
+ return "inactive";
97
+ // Presence: only meaningful when the BMC reports it can assert bit 0.
98
+ // If the mask doesn't include bit 0, Reading=0x0 is ambiguous, and
99
+ // returning `ok` is the under-report safe default.
100
+ if (!Number.isNaN(maskNum) && (maskNum & 0x01)) {
101
+ if (!(value & 0x01))
102
+ return "absent";
103
+ }
104
+ return "ok";
105
+ }
63
106
  //# sourceMappingURL=vendor-sensors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-sensors.js","sourceRoot":"","sources":["../../src/lib/vendor-sensors.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,sEAAsE;AACtE,wEAAwE;AACxE,gCAAgC;AAIhC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAc;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,iEAAiE;QACjE,oDAAoD;QACpD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,MAAc;IAChE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,aAAqB;IAC9D,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACrG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACrD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC7D,uEAAuE;IACvE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,iBAAiB,CAAC;IAC7C,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"vendor-sensors.js","sourceRoot":"","sources":["../../src/lib/vendor-sensors.ts"],"names":[],"mappings":"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"}
@@ -84,8 +84,13 @@ function formatPrometheus(snap) {
84
84
  lines.push(`glassmkr_ipmi_sensor{sensor="${sensor.name}",unit="${sensor.unit}"} ${sensor.value}`);
85
85
  }
86
86
  }
87
- lines.push(`glassmkr_ipmi_ecc_correctable ${snap.ipmi.ecc_errors.correctable}`);
88
- lines.push(`glassmkr_ipmi_ecc_uncorrectable ${snap.ipmi.ecc_errors.uncorrectable}`);
87
+ // ecc_errors is null when IPMI couldn't be probed at all (no
88
+ // ipmitool / no /dev/ipmi0). Omit the Prometheus lines in that case
89
+ // so scrapers don't record "0" as if it were a real measurement.
90
+ if (snap.ipmi.ecc_errors) {
91
+ lines.push(`glassmkr_ipmi_ecc_correctable ${snap.ipmi.ecc_errors.correctable}`);
92
+ lines.push(`glassmkr_ipmi_ecc_uncorrectable ${snap.ipmi.ecc_errors.uncorrectable}`);
93
+ }
89
94
  // Fans
90
95
  if (snap.ipmi.fans) {
91
96
  for (const fan of snap.ipmi.fans) {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-server.js","sourceRoot":"","sources":["../src/metrics-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics-server.js","sourceRoot":"","sources":["../src/metrics-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGpC,IAAI,cAAc,GAAoB,IAAI,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;QAClC,OAAO,CAAC,GAAG,CAAC,+CAA+C,IAAI,UAAU,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM;IACN,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACpE,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErD,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAEhE,QAAQ;IACR,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,UAAU,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,MAAM,GAAG,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,8BAA8B,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,UAAU;IACV,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,cAAc,KAAK,CAAC,SAAS,GAAG,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,6BAA6B,MAAM,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,6BAA6B,MAAM,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ;IACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,WAAW,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,KAAK,GAAG,CAAC;QACjE,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,gCAAgC,MAAM,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9G,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,kCAAkC,MAAM,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QACpH,IAAI,KAAK,CAAC,mBAAmB,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,sCAAsC,MAAM,KAAK,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAClI,CAAC;IAED,OAAO;IACP,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5E,KAAK,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QACD,6DAA6D;QAC7D,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO;QACP,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE3E,WAAW;IACX,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnG,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/F,KAAK,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glassmkr/crucible",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "description": "Lightweight bare metal server monitoring. IPMI, SMART, OS, network. Opinionated alerts.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",