@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
35 lines (34 loc) • 1.38 kB
JavaScript
import { monitorEventLoopDelay, performance } from "node:perf_hooks";
import { availableParallelism, loadavg } from "node:os";
/** Samples use actual elapsed time, including delayed timers under host load. */
export function startProxyRuntimeMetrics(emit) {
const histogram = monitorEventLoopDelay({ resolution: 20 });
histogram.enable();
let previousCpu = process.cpuUsage();
let previousTime = performance.now();
const timer = setInterval(() => {
const now = performance.now();
const cpu = process.cpuUsage();
const intervalMs = now - previousTime;
emit({
intervalMs,
cpuPercentOneCore: ((cpu.user - previousCpu.user + cpu.system - previousCpu.system) /
(intervalMs * 1000)) *
100,
rssBytes: process.memoryUsage().rss,
heapUsedBytes: process.memoryUsage().heapUsed,
eventLoopDelayP99Ms: histogram.count ? histogram.percentile(99) / 1e6 : 0,
eventLoopDelayMaxMs: histogram.count ? histogram.max / 1e6 : 0,
hostLoad1m: loadavg()[0],
availableParallelism: availableParallelism(),
});
previousCpu = cpu;
previousTime = now;
histogram.reset();
}, 10_000);
timer.unref();
return () => {
clearInterval(timer);
histogram.disable();
};
}