@malloy-publisher/server 0.0.198-dev4 → 0.0.198-dev6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build.ts +17 -13
- package/dist/instrumentation.mjs +21 -0
- package/dist/package_load_worker.mjs +12213 -0
- package/dist/server.mjs +2026 -2622
- package/package.json +2 -3
- package/src/health.ts +5 -3
- package/src/instrumentation.ts +50 -0
- package/src/package_load/package_load_pool.spec.ts +252 -0
- package/src/package_load/package_load_pool.ts +920 -0
- package/src/{compile/compile_worker.ts → package_load/package_load_worker.ts} +505 -246
- package/src/package_load/protocol.ts +336 -0
- package/src/server.ts +12 -0
- package/src/service/environment_store.ts +24 -3
- package/src/service/given.ts +80 -0
- package/src/service/model.ts +255 -291
- package/src/service/package.spec.ts +10 -0
- package/src/service/package.ts +268 -259
- package/src/service/package_worker_path.spec.ts +196 -0
- package/dist/compile_worker.mjs +0 -633
- package/src/compile/compile_pool.spec.ts +0 -292
- package/src/compile/compile_pool.ts +0 -796
- package/src/compile/protocol.ts +0 -270
- package/src/service/model_worker_path.spec.ts +0 -133
package/build.ts
CHANGED
|
@@ -5,14 +5,14 @@ fs.rmSync("./dist", { recursive: true, force: true });
|
|
|
5
5
|
fs.mkdirSync("./dist");
|
|
6
6
|
|
|
7
7
|
await build({
|
|
8
|
-
//
|
|
9
|
-
// be loaded by `new Worker(...)` at runtime. It must NOT be
|
|
8
|
+
// package_load_worker.ts is bundled as a SEPARATE entrypoint so it
|
|
9
|
+
// can be loaded by `new Worker(...)` at runtime. It must NOT be
|
|
10
10
|
// inlined into server.mjs (workers can't share module state with
|
|
11
11
|
// the parent process — they get their own JS realm).
|
|
12
12
|
entrypoints: [
|
|
13
13
|
"./src/server.ts",
|
|
14
14
|
"./src/instrumentation.ts",
|
|
15
|
-
"./src/
|
|
15
|
+
"./src/package_load/package_load_worker.ts",
|
|
16
16
|
],
|
|
17
17
|
outdir: "./dist",
|
|
18
18
|
target: "node",
|
|
@@ -56,22 +56,26 @@ fs.copyFileSync(
|
|
|
56
56
|
// Rename ESM outputs to .mjs so both Node and Bun can execute them
|
|
57
57
|
fs.renameSync("./dist/server.js", "./dist/server.mjs");
|
|
58
58
|
fs.renameSync("./dist/instrumentation.js", "./dist/instrumentation.mjs");
|
|
59
|
-
// Bun emits
|
|
60
|
-
// so
|
|
61
|
-
// of server.mjs. The path layout match is intentional —
|
|
62
|
-
// two in sync or the worker pool
|
|
63
|
-
|
|
59
|
+
// Bun emits package_load_worker into its source-relative subdir;
|
|
60
|
+
// flatten so package_load_pool.ts's `resolveWorkerScript()` finds it
|
|
61
|
+
// as a sibling of server.mjs. The path layout match is intentional —
|
|
62
|
+
// keep these two in sync or the worker pool throws at boot (the
|
|
63
|
+
// in-process fallback was removed; missing worker = no service).
|
|
64
|
+
if (fs.existsSync("./dist/package_load/package_load_worker.js")) {
|
|
64
65
|
fs.renameSync(
|
|
65
|
-
"./dist/
|
|
66
|
-
"./dist/
|
|
66
|
+
"./dist/package_load/package_load_worker.js",
|
|
67
|
+
"./dist/package_load_worker.mjs",
|
|
67
68
|
);
|
|
68
69
|
try {
|
|
69
|
-
fs.rmdirSync("./dist/
|
|
70
|
+
fs.rmdirSync("./dist/package_load");
|
|
70
71
|
} catch {
|
|
71
72
|
/* directory may be non-empty if Bun produced sourcemaps; leave it */
|
|
72
73
|
}
|
|
73
|
-
} else if (fs.existsSync("./dist/
|
|
74
|
-
fs.renameSync(
|
|
74
|
+
} else if (fs.existsSync("./dist/package_load_worker.js")) {
|
|
75
|
+
fs.renameSync(
|
|
76
|
+
"./dist/package_load_worker.js",
|
|
77
|
+
"./dist/package_load_worker.mjs",
|
|
78
|
+
);
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
// Add shebang to server.mjs for npx/bunx compatibility
|
package/dist/instrumentation.mjs
CHANGED
|
@@ -115185,6 +115185,7 @@ var import_sdk_logs = __toESM(require_src75(), 1);
|
|
|
115185
115185
|
var import_sdk_node = __toESM(require_src106(), 1);
|
|
115186
115186
|
var import_sdk_trace_base = __toESM(require_src82(), 1);
|
|
115187
115187
|
var import_semantic_conventions = __toESM(require_src2(), 1);
|
|
115188
|
+
import { monitorEventLoopDelay } from "node:perf_hooks";
|
|
115188
115189
|
var prometheusExporter = null;
|
|
115189
115190
|
var sdk = null;
|
|
115190
115191
|
function getPrometheusMetricsHandler() {
|
|
@@ -115266,6 +115267,26 @@ var httpRequestDuration = meter.createHistogram("http_server_request_duration_ms
|
|
|
115266
115267
|
var httpRequestCount = meter.createCounter("http_server_requests_total", {
|
|
115267
115268
|
description: "Total number of HTTP requests"
|
|
115268
115269
|
});
|
|
115270
|
+
var eventLoopHistogram = monitorEventLoopDelay({ resolution: 20 });
|
|
115271
|
+
eventLoopHistogram.enable();
|
|
115272
|
+
var eventLoopLagP50 = meter.createObservableGauge("publisher_event_loop_lag_p50_ms", {
|
|
115273
|
+
description: "Event loop delay p50 since the last scrape, in milliseconds",
|
|
115274
|
+
unit: "ms"
|
|
115275
|
+
});
|
|
115276
|
+
var eventLoopLagP99 = meter.createObservableGauge("publisher_event_loop_lag_p99_ms", {
|
|
115277
|
+
description: "Event loop delay p99 since the last scrape, in milliseconds",
|
|
115278
|
+
unit: "ms"
|
|
115279
|
+
});
|
|
115280
|
+
var eventLoopLagMax = meter.createObservableGauge("publisher_event_loop_lag_max_ms", {
|
|
115281
|
+
description: "Event loop delay max since the last scrape, in milliseconds",
|
|
115282
|
+
unit: "ms"
|
|
115283
|
+
});
|
|
115284
|
+
meter.addBatchObservableCallback((observableResult) => {
|
|
115285
|
+
observableResult.observe(eventLoopLagP50, eventLoopHistogram.percentile(50) / 1e6);
|
|
115286
|
+
observableResult.observe(eventLoopLagP99, eventLoopHistogram.percentile(99) / 1e6);
|
|
115287
|
+
observableResult.observe(eventLoopLagMax, eventLoopHistogram.max / 1e6);
|
|
115288
|
+
eventLoopHistogram.reset();
|
|
115289
|
+
}, [eventLoopLagP50, eventLoopLagP99, eventLoopLagMax]);
|
|
115269
115290
|
var IGNORED_PATHS = new Set([
|
|
115270
115291
|
"/health",
|
|
115271
115292
|
"/health/liveness",
|