import type { LibSQLDatabase } from "drizzle-orm/libsql"; import { workerProcessMetrics } from "./schema.ts"; function round2(n: number): number { return Math.round(n * 100) / 100; } export async function compute(db: LibSQLDatabase, _peers: unknown) { 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, }; }