小橘 07be0d3dfa refactor: move all build output to dist/
- senses build to dist/senses/<name>/index.js
- workflows build to dist/workflows/<name>/index.js
- scripts/build.mjs: clean dist/ before build, output to dist/
- .gitignore: simplified to just dist/

小橘 <xiaoju@shazhou.work>
2026-04-30 09:16:04 +00:00

38 lines
1.0 KiB
JavaScript

// senses/worker-process-metrics/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()
});
// senses/worker-process-metrics/src/index.ts
function round2(n) {
return Math.round(n * 100) / 100;
}
async function compute() {
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 { signal: row, workflow: null };
}
export {
compute,
workerProcessMetrics as table
};