/** * Lightweight counter/gauge registry merged into metrics_live and ctx hooks. */ /** @type {Map} */ 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() }