Files
bare-operating-system/packages/bare-os-booter/lib/boot/bare-os-kernel-metrics.js
T
2026-08-18 18:11:28 -04:00

37 lines
902 B
JavaScript

/**
* Lightweight counter/gauge registry merged into metrics_live and ctx hooks.
*/
/** @type {Map<string, number>} */
const counters = new Map()
/**
* @param {string} name
* @param {number} [delta]
*/
export function bareOsKernelMetricInc(name, delta = 1) {
const k = String(name || '').trim().slice(0, 128)
if (!k) return
const d = Number.isFinite(delta) ? Math.floor(delta) : 1
counters.set(k, (counters.get(k) || 0) + d)
}
/**
* @param {string} name
* @param {number} value
*/
export function bareOsKernelMetricSet(name, value) {
const k = String(name || '').trim().slice(0, 128)
if (!k) return
const v = Number.isFinite(value) ? value : 0
counters.set(k, v)
}
export function bareOsKernelMetricsSnapshot() {
return Object.fromEntries([...counters.entries()].sort(([a], [b]) => a.localeCompare(b)))
}
export function bareOsKernelMetricsReset() {
counters.clear()
}