All 5 senses updated to new API: - compute(signal: AbortSignal) => Promise<T | null> - Export table for runtime-side insert - Remove drizzle-orm/libsql imports Refs uncaged/nerve#264 — 小橘 🍊(NEKO Team)
38 lines
949 B
JavaScript
38 lines
949 B
JavaScript
// src/schema.ts
|
|
import { integer, real, sqliteTable } from "drizzle-orm/sqlite-core";
|
|
var workerProcessMetrics = sqliteTable("worker_process_metrics", {
|
|
ts: integer("ts").primaryKey(),
|
|
pid: integer("pid").notNull(),
|
|
uptimeSec: real("uptime_sec").notNull(),
|
|
heapUsedMB: real("heap_used_mb").notNull(),
|
|
rssMB: real("rss_mb").notNull(),
|
|
externalMB: real("external_mb").notNull()
|
|
});
|
|
|
|
// src/index.ts
|
|
function round2(n) {
|
|
return Math.round(n * 100) / 100;
|
|
}
|
|
async function compute(_signal) {
|
|
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
|
|
};
|
|
return row;
|
|
}
|
|
export {
|
|
compute,
|
|
workerProcessMetrics as table
|
|
};
|