- Add esbuild build script to package.json - Add .gitignore for dist/ - Remove stale tsc-generated .js files (now bundled) - Include sense files generated by workflow run (hermes-gateway-health update, worker-process-metrics) - Clean up nerve.yaml (remove deleted workflows, migrate reflexes to interval)
36 lines
757 B
JavaScript
36 lines
757 B
JavaScript
import { workerProcessMetrics } from "./schema.ts";
|
|
|
|
function round2(n) {
|
|
return Math.round(n * 100) / 100;
|
|
}
|
|
|
|
export async function compute(db, _peers) {
|
|
const ts = Date.now();
|
|
const pid = process.pid;
|
|
const uptimeSec = process.uptime();
|
|
const m = process.memoryUsage();
|
|
const heapUsedMB = round2(m.heapUsed / 1024 / 1024);
|
|
const rssMB = round2(m.rss / 1024 / 1024);
|
|
const externalMB = round2(m.external / 1024 / 1024);
|
|
|
|
const row = {
|
|
ts,
|
|
pid,
|
|
uptimeSec,
|
|
heapUsedMB,
|
|
rssMB,
|
|
externalMB,
|
|
};
|
|
|
|
await db.insert(workerProcessMetrics).values(row);
|
|
|
|
return {
|
|
ts: row.ts,
|
|
pid: row.pid,
|
|
uptimeSec: row.uptimeSec,
|
|
heapUsedMB: row.heapUsedMB,
|
|
rssMB: row.rssMB,
|
|
externalMB: row.externalMB,
|
|
};
|
|
}
|