@superblocksteam/sdk 2.0.130-next.3 → 2.0.130-next.5

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.
Files changed (45) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cli-replacement/dependency-install-classifier.d.mts.map +1 -1
  3. package/dist/cli-replacement/dependency-install-classifier.mjs +11 -0
  4. package/dist/cli-replacement/dependency-install-classifier.mjs.map +1 -1
  5. package/dist/cli-replacement/dependency-install-classifier.test.mjs +26 -0
  6. package/dist/cli-replacement/dependency-install-classifier.test.mjs.map +1 -1
  7. package/dist/cli-replacement/dev-s3-restore.test.mjs +1 -0
  8. package/dist/cli-replacement/dev-s3-restore.test.mjs.map +1 -1
  9. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs +1 -0
  10. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs.map +1 -1
  11. package/dist/cli-replacement/dev.d.mts.map +1 -1
  12. package/dist/cli-replacement/dev.mjs +70 -4
  13. package/dist/cli-replacement/dev.mjs.map +1 -1
  14. package/dist/cli-replacement/disk-space.d.mts +86 -0
  15. package/dist/cli-replacement/disk-space.d.mts.map +1 -0
  16. package/dist/cli-replacement/disk-space.mjs +133 -0
  17. package/dist/cli-replacement/disk-space.mjs.map +1 -0
  18. package/dist/cli-replacement/disk-space.test.d.mts +2 -0
  19. package/dist/cli-replacement/disk-space.test.d.mts.map +1 -0
  20. package/dist/cli-replacement/disk-space.test.mjs +186 -0
  21. package/dist/cli-replacement/disk-space.test.mjs.map +1 -0
  22. package/dist/dev-utils/dev-server-metrics.d.mts +11 -0
  23. package/dist/dev-utils/dev-server-metrics.d.mts.map +1 -1
  24. package/dist/dev-utils/dev-server-metrics.mjs +18 -0
  25. package/dist/dev-utils/dev-server-metrics.mjs.map +1 -1
  26. package/dist/telemetry/memory-metrics.d.ts +7 -0
  27. package/dist/telemetry/memory-metrics.d.ts.map +1 -1
  28. package/dist/telemetry/memory-metrics.js +221 -44
  29. package/dist/telemetry/memory-metrics.js.map +1 -1
  30. package/dist/telemetry/memory-metrics.test.d.ts +2 -0
  31. package/dist/telemetry/memory-metrics.test.d.ts.map +1 -0
  32. package/dist/telemetry/memory-metrics.test.js +256 -0
  33. package/dist/telemetry/memory-metrics.test.js.map +1 -0
  34. package/package.json +6 -6
  35. package/src/cli-replacement/dependency-install-classifier.mts +14 -0
  36. package/src/cli-replacement/dependency-install-classifier.test.mts +39 -0
  37. package/src/cli-replacement/dev-s3-restore.test.mts +1 -0
  38. package/src/cli-replacement/dev-startup-git-before-dbfs-order.test.mts +1 -0
  39. package/src/cli-replacement/dev.mts +90 -10
  40. package/src/cli-replacement/disk-space.mts +216 -0
  41. package/src/cli-replacement/disk-space.test.mts +246 -0
  42. package/src/dev-utils/dev-server-metrics.mts +20 -0
  43. package/src/telemetry/memory-metrics.test.ts +363 -0
  44. package/src/telemetry/memory-metrics.ts +329 -60
  45. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,186 @@
1
+ import nodeFs from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
+ import { getDiskSpace, reclaimDiskSpace, recoverFromDiskFull, } from "./disk-space.mjs";
6
+ const silentLogger = { info: vi.fn(), warn: vi.fn() };
7
+ async function writeFile(p, bytes) {
8
+ await nodeFs.mkdir(path.dirname(p), { recursive: true });
9
+ await nodeFs.writeFile(p, Buffer.alloc(bytes, "x"));
10
+ }
11
+ async function exists(p) {
12
+ try {
13
+ await nodeFs.stat(p);
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ describe("reclaimDiskSpace", () => {
21
+ let cwd;
22
+ beforeEach(async () => {
23
+ cwd = await nodeFs.mkdtemp(path.join(os.tmpdir(), "reclaim-test-"));
24
+ });
25
+ afterEach(async () => {
26
+ await nodeFs.rm(cwd, { recursive: true, force: true });
27
+ vi.clearAllMocks();
28
+ });
29
+ it("deletes regenerable build artifacts, leaving source and node_modules intact", async () => {
30
+ await writeFile(path.join(cwd, ".vite", "deps", "chunk.js"), 1000);
31
+ await writeFile(path.join(cwd, "dist", "bundle.js"), 500);
32
+ await writeFile(path.join(cwd, "node_modules", "react", "index.js"), 2000);
33
+ await writeFile(path.join(cwd, "src", "App.tsx"), 42);
34
+ const result = await reclaimDiskSpace(cwd, silentLogger);
35
+ // Regenerable artifacts are gone…
36
+ expect(await exists(path.join(cwd, ".vite"))).toBe(false);
37
+ expect(await exists(path.join(cwd, "dist"))).toBe(false);
38
+ // …source and the dependency tree survive by default.
39
+ expect(await exists(path.join(cwd, "src", "App.tsx"))).toBe(true);
40
+ expect(await exists(path.join(cwd, "node_modules"))).toBe(true);
41
+ expect(result.removed).toContain(".vite");
42
+ expect(result.removed).toContain("dist");
43
+ expect(result.removed).not.toContain("node_modules");
44
+ expect(result.bytesFreed).toBeGreaterThanOrEqual(0);
45
+ });
46
+ it("removes node_modules too when includeNodeModules is set (the tier-2 lever)", async () => {
47
+ await writeFile(path.join(cwd, "node_modules", "react", "index.js"), 2000);
48
+ await writeFile(path.join(cwd, "src", "App.tsx"), 42);
49
+ const result = await reclaimDiskSpace(cwd, silentLogger, {
50
+ includeNodeModules: true,
51
+ });
52
+ expect(await exists(path.join(cwd, "node_modules"))).toBe(false);
53
+ expect(await exists(path.join(cwd, "src", "App.tsx"))).toBe(true);
54
+ expect(result.removed).toContain("node_modules");
55
+ });
56
+ it("reports bytesFreed as the statfs free-space delta (no directory walk)", async () => {
57
+ await writeFile(path.join(cwd, ".vite", "dep.js"), 100);
58
+ const baseStatfs = {
59
+ type: 0,
60
+ bsize: 4096,
61
+ blocks: 1000,
62
+ bfree: 200,
63
+ bavail: 100,
64
+ files: 0,
65
+ ffree: 0,
66
+ };
67
+ const statfsSpy = vi
68
+ .spyOn(nodeFs, "statfs")
69
+ .mockResolvedValueOnce({ ...baseStatfs, bavail: 100 }) // before
70
+ .mockResolvedValueOnce({ ...baseStatfs, bavail: 150 }); // after
71
+ const result = await reclaimDiskSpace(cwd, silentLogger);
72
+ expect(result.removed).toContain(".vite");
73
+ expect(result.bytesFreed).toBe((150 - 100) * 4096);
74
+ statfsSpy.mockRestore();
75
+ });
76
+ it("warns and skips a target whose deletion fails, still removing the others", async () => {
77
+ await writeFile(path.join(cwd, ".vite", "dep.js"), 100);
78
+ await writeFile(path.join(cwd, "dist", "bundle.js"), 100);
79
+ const warn = vi.fn();
80
+ const rmSpy = vi.spyOn(nodeFs, "rm").mockImplementation((async (p) => {
81
+ if (String(p).endsWith(".vite"))
82
+ throw new Error("EBUSY");
83
+ }));
84
+ const result = await reclaimDiskSpace(cwd, { info: vi.fn(), warn });
85
+ expect(result.removed).toContain("dist");
86
+ expect(result.removed).not.toContain(".vite");
87
+ expect(warn).toHaveBeenCalledWith(expect.stringContaining(".vite"), expect.objectContaining({ error: expect.any(String) }));
88
+ rmSpy.mockRestore();
89
+ });
90
+ it("preserves the npm debug log dir (.superblocks/logs) so the ENOSPC autopsy survives recovery", async () => {
91
+ // installPackages points NPM_CONFIG_LOGS_DIR at <app>/.superblocks/logs, so
92
+ // on an ENOSPC this holds npm's debug log of the failure we're diagnosing.
93
+ await writeFile(path.join(cwd, ".superblocks", "logs", "2026-06-15-debug-0.log"), 500);
94
+ await writeFile(path.join(cwd, ".vite", "dep.js"), 100);
95
+ const result = await reclaimDiskSpace(cwd, silentLogger, {
96
+ includeNodeModules: true,
97
+ });
98
+ expect(await exists(path.join(cwd, ".superblocks", "logs"))).toBe(true);
99
+ expect(result.removed).not.toContain(".superblocks/logs");
100
+ // Regenerable caches are still reclaimed.
101
+ expect(result.removed).toContain(".vite");
102
+ });
103
+ it("is a no-op (no throw, nothing removed) when there are no regenerable artifacts", async () => {
104
+ await writeFile(path.join(cwd, "src", "App.tsx"), 42);
105
+ const result = await reclaimDiskSpace(cwd, silentLogger);
106
+ expect(result.removed).toEqual([]);
107
+ expect(await exists(path.join(cwd, "src", "App.tsx"))).toBe(true);
108
+ });
109
+ });
110
+ describe("recoverFromDiskFull", () => {
111
+ let cwd;
112
+ beforeEach(async () => {
113
+ cwd = await nodeFs.mkdtemp(path.join(os.tmpdir(), "recover-test-"));
114
+ });
115
+ afterEach(async () => {
116
+ await nodeFs.rm(cwd, { recursive: true, force: true });
117
+ vi.clearAllMocks();
118
+ });
119
+ it("recovers at tier 1 (caches) without touching node_modules when the retry then succeeds", async () => {
120
+ await writeFile(path.join(cwd, ".vite", "dep.js"), 1000);
121
+ await writeFile(path.join(cwd, "node_modules", "react", "index.js"), 2000);
122
+ const runInstall = vi
123
+ .fn()
124
+ .mockResolvedValueOnce("ok");
125
+ const result = await recoverFromDiskFull(cwd, runInstall, silentLogger);
126
+ expect(result.recovered).toBe(true);
127
+ // Tier 1 ran (caches cleared)…
128
+ expect(await exists(path.join(cwd, ".vite"))).toBe(false);
129
+ // …but tier 2 was never reached, so the dependency tree is preserved.
130
+ expect(await exists(path.join(cwd, "node_modules"))).toBe(true);
131
+ expect(runInstall).toHaveBeenCalledTimes(1);
132
+ });
133
+ it("escalates to tier 2 (node_modules) and recovers when the clean reinstall succeeds", async () => {
134
+ await writeFile(path.join(cwd, "node_modules", "react", "index.js"), 2000);
135
+ const runInstall = vi
136
+ .fn()
137
+ .mockRejectedValueOnce(new Error("ENOSPC again"))
138
+ .mockResolvedValueOnce("ok");
139
+ const result = await recoverFromDiskFull(cwd, runInstall, silentLogger);
140
+ expect(result.recovered).toBe(true);
141
+ expect(await exists(path.join(cwd, "node_modules"))).toBe(false);
142
+ expect(runInstall).toHaveBeenCalledTimes(2);
143
+ });
144
+ it("does NOT escalate to tier 2 (preserves node_modules) when the tier-1 retry fails for a non-ENOSPC reason", async () => {
145
+ await writeFile(path.join(cwd, "node_modules", "react", "index.js"), 2000);
146
+ const resolveError = new Error("npm error code ERESOLVE\nunable to resolve dependency tree");
147
+ const runInstall = vi
148
+ .fn()
149
+ .mockRejectedValueOnce(resolveError);
150
+ const result = await recoverFromDiskFull(cwd, runInstall, silentLogger);
151
+ expect(result.recovered).toBe(false);
152
+ expect(result.lastError).toBe(resolveError);
153
+ // The disk wasn't the problem on retry, so node_modules must be preserved
154
+ // rather than destroyed by a needless tier-2 clean reinstall.
155
+ expect(await exists(path.join(cwd, "node_modules"))).toBe(true);
156
+ expect(runInstall).toHaveBeenCalledTimes(1);
157
+ });
158
+ it("reports failure with the last error when even a clean reinstall can't fit", async () => {
159
+ await writeFile(path.join(cwd, "node_modules", "react", "index.js"), 2000);
160
+ const finalError = new Error("ENOSPC: no space left on device");
161
+ const runInstall = vi
162
+ .fn()
163
+ .mockRejectedValueOnce(new Error("ENOSPC 1"))
164
+ .mockRejectedValueOnce(finalError);
165
+ const result = await recoverFromDiskFull(cwd, runInstall, silentLogger);
166
+ expect(result.recovered).toBe(false);
167
+ expect(result.lastError).toBe(finalError);
168
+ expect(runInstall).toHaveBeenCalledTimes(2);
169
+ });
170
+ });
171
+ describe("getDiskSpace", () => {
172
+ it("returns numeric totals with a sane percentUsed for a real directory", async () => {
173
+ const space = await getDiskSpace(os.tmpdir());
174
+ expect(space).toBeDefined();
175
+ expect(space.totalBytes).toBeGreaterThan(0);
176
+ expect(space.freeBytes).toBeGreaterThanOrEqual(0);
177
+ expect(space.usedBytes).toBeGreaterThanOrEqual(0);
178
+ expect(space.percentUsed).toBeGreaterThanOrEqual(0);
179
+ expect(space.percentUsed).toBeLessThanOrEqual(100);
180
+ });
181
+ it("returns undefined for a path that cannot be statfs'd", async () => {
182
+ const space = await getDiskSpace(path.join(os.tmpdir(), "definitely-does-not-exist-xyz", "nested"));
183
+ expect(space).toBeUndefined();
184
+ });
185
+ });
186
+ //# sourceMappingURL=disk-space.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-space.test.mjs","sourceRoot":"","sources":["../../src/cli-replacement/disk-space.test.mts"],"names":[],"mappings":"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"}
@@ -145,6 +145,17 @@ declare class DevServerMetrics {
145
145
  npmErrorCode?: string;
146
146
  hasAnyRegistryConfigured?: boolean;
147
147
  }): void;
148
+ /**
149
+ * Records an ENOSPC disk-recovery attempt and its outcome. Lets dashboards
150
+ * and alerts answer "how often is the live-edit PVC filling up, and is
151
+ * recovery actually rescuing the install?" without depending on log
152
+ * ingestion (the PVC is destroyed at teardown, so logs can be lost).
153
+ *
154
+ * `recovered` is the only label — bounded cardinality (true/false).
155
+ */
156
+ recordDiskRecovery({ recovered }: {
157
+ recovered: boolean;
158
+ }): void;
148
159
  }
149
160
  /** Process-wide dev-server metrics singleton. */
150
161
  export declare const devServerMetrics: DevServerMetrics;
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server-metrics.d.mts","sourceRoot":"","sources":["../../src/dev-utils/dev-server-metrics.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmDH;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,CAMR;AAED,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,aAAa,GACb,WAAW,CAAC;AAsBhB;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,MAAM,GACN,YAAY,GACZ,iBAAiB,GACjB,WAAW,GACX,UAAU,CAAC;AAEf;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAUtE;;;;;;;;;GASG;AACH,cAAM,gBAAgB;IACpB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAyB;IAElD;4EACwE;IACxE,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAad;;;;;;;;;;;OAWG;IACH,KAAK,IAAI,IAAI;IAcb;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAuBnD;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,oBAA6B,GACzC,IAAI;IAyBP;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAW3D;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI;IAY3E;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI;IAYzE;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAW1D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAY3C;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAC,EAC1B,QAAQ,EACR,YAAY,EACZ,wBAAwB,GACzB,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,GAAG,IAAI;CAkBT;AAED,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
1
+ {"version":3,"file":"dev-server-metrics.d.mts","sourceRoot":"","sources":["../../src/dev-utils/dev-server-metrics.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmDH;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,CAMR;AAED,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,aAAa,GACb,WAAW,CAAC;AAsBhB;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,MAAM,GACN,YAAY,GACZ,iBAAiB,GACjB,WAAW,GACX,UAAU,CAAC;AAEf;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAUtE;;;;;;;;;GASG;AACH,cAAM,gBAAgB;IACpB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAyB;IAElD;4EACwE;IACxE,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAad;;;;;;;;;;;OAWG;IACH,KAAK,IAAI,IAAI;IAcb;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAuBnD;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,oBAA6B,GACzC,IAAI;IAyBP;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAW3D;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI;IAY3E;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI;IAYzE;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAW1D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAY3C;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAC,EAC1B,QAAQ,EACR,YAAY,EACZ,wBAAwB,GACzB,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,GAAG,IAAI;IAmBR;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;CAWhE;AAED,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -331,6 +331,24 @@ class DevServerMetrics {
331
331
  .add(1, labels);
332
332
  });
333
333
  }
334
+ /**
335
+ * Records an ENOSPC disk-recovery attempt and its outcome. Lets dashboards
336
+ * and alerts answer "how often is the live-edit PVC filling up, and is
337
+ * recovery actually rescuing the install?" without depending on log
338
+ * ingestion (the PVC is destroyed at teardown, so logs can be lost).
339
+ *
340
+ * `recovered` is the only label — bounded cardinality (true/false).
341
+ */
342
+ recordDiskRecovery({ recovered }) {
343
+ const labels = { recovered: String(recovered) };
344
+ this.record(() => {
345
+ getMeter()
346
+ .createCounter("dev_server_disk_recovery_total", {
347
+ description: "Count of ENOSPC disk-recovery attempts during the dev-server initial install, labeled by whether a retry succeeded.",
348
+ })
349
+ .add(1, labels);
350
+ });
351
+ }
334
352
  }
335
353
  /** Process-wide dev-server metrics singleton. */
336
354
  export const devServerMetrics = new DevServerMetrics();
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server-metrics.mjs","sourceRoot":"","sources":["../../src/dev-utils/dev-server-metrics.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-server-metrics.mjs","sourceRoot":"","sources":["../../src/dev-utils/dev-server-metrics.mts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
+ interface CgroupMemory {
2
+ currentBytes: number;
3
+ limitBytes: number;
4
+ usageRatio: number;
5
+ }
6
+ export declare function readCgroupMemory(root?: string): CgroupMemory | undefined;
1
7
  export declare function startMemoryMetrics(): void;
2
8
  export declare function stopMemoryMetrics(): void;
9
+ export {};
3
10
  //# sourceMappingURL=memory-metrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-metrics.d.ts","sourceRoot":"","sources":["../../src/telemetry/memory-metrics.ts"],"names":[],"mappings":"AAWA,wBAAgB,kBAAkB,IAAI,IAAI,CAuEzC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
1
+ {"version":3,"file":"memory-metrics.d.ts","sourceRoot":"","sources":["../../src/telemetry/memory-metrics.ts"],"names":[],"mappings":"AAgBA,UAAU,YAAY;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAwDD,wBAAgB,gBAAgB,CAC9B,IAAI,SAAmB,GACtB,YAAY,GAAG,SAAS,CAwB1B;AAiBD,wBAAgB,kBAAkB,IAAI,IAAI,CAwOzC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
@@ -1,54 +1,231 @@
1
- import { PerformanceObserver, } from "node:perf_hooks";
1
+ import { readFileSync } from "node:fs";
2
+ import { constants, monitorEventLoopDelay, performance, PerformanceObserver, } from "node:perf_hooks";
3
+ import { getHeapStatistics } from "node:v8";
2
4
  import { getMeter } from "./index.js";
3
5
  let cleanupFn;
6
+ const NS_PER_MS = 1_000_000;
7
+ const US_PER_SECOND = 1_000_000;
8
+ function finiteNonNegative(value) {
9
+ return Number.isFinite(value) && value > 0 ? value : 0;
10
+ }
11
+ function nsToMs(value) {
12
+ return finiteNonNegative(value) / NS_PER_MS;
13
+ }
14
+ function ratio(numerator, denominator) {
15
+ if (!Number.isFinite(numerator) || !Number.isFinite(denominator)) {
16
+ return 0;
17
+ }
18
+ if (denominator <= 0) {
19
+ return 0;
20
+ }
21
+ return Math.max(0, numerator / denominator);
22
+ }
23
+ function readCgroupNumber(filePath) {
24
+ try {
25
+ const value = readFileSync(filePath, "utf-8").trim();
26
+ if (!value || value === "max") {
27
+ return { exists: true };
28
+ }
29
+ const parsed = Number(value);
30
+ if (Number.isFinite(parsed) &&
31
+ parsed >= 0 &&
32
+ parsed < Number.MAX_SAFE_INTEGER) {
33
+ return { exists: true, value: parsed };
34
+ }
35
+ return { exists: true };
36
+ }
37
+ catch {
38
+ return { exists: false };
39
+ }
40
+ }
41
+ export function readCgroupMemory(root = "/sys/fs/cgroup") {
42
+ const v2Current = readCgroupNumber(`${root}/memory.current`);
43
+ const v2Limit = readCgroupNumber(`${root}/memory.max`);
44
+ const usesCgroupV2 = v2Current.exists || v2Limit.exists;
45
+ const currentBytes = usesCgroupV2
46
+ ? v2Current.value
47
+ : readCgroupNumber(`${root}/memory/memory.usage_in_bytes`).value;
48
+ const limitBytes = usesCgroupV2
49
+ ? v2Limit.value
50
+ : readCgroupNumber(`${root}/memory/memory.limit_in_bytes`).value;
51
+ if (currentBytes === undefined ||
52
+ limitBytes === undefined ||
53
+ limitBytes <= 0) {
54
+ return undefined;
55
+ }
56
+ return {
57
+ currentBytes,
58
+ limitBytes,
59
+ usageRatio: ratio(currentBytes, limitBytes),
60
+ };
61
+ }
62
+ function gcKind(kind) {
63
+ switch (kind) {
64
+ case constants.NODE_PERFORMANCE_GC_MINOR:
65
+ return "minor";
66
+ case constants.NODE_PERFORMANCE_GC_MAJOR:
67
+ return "major";
68
+ case constants.NODE_PERFORMANCE_GC_INCREMENTAL:
69
+ return "incremental";
70
+ case constants.NODE_PERFORMANCE_GC_WEAKCB:
71
+ return "weakcb";
72
+ default:
73
+ return "unknown";
74
+ }
75
+ }
4
76
  export function startMemoryMetrics() {
5
77
  if (cleanupFn) {
6
78
  return;
7
79
  }
8
80
  const meter = getMeter();
9
- const heapUsedGauge = meter.createObservableGauge("nodejs.memory.heap_used_bytes", { description: "V8 heap memory used (bytes)", unit: "By" });
10
- const heapTotalGauge = meter.createObservableGauge("nodejs.memory.heap_total_bytes", { description: "V8 heap memory allocated (bytes)", unit: "By" });
11
- const rssGauge = meter.createObservableGauge("nodejs.memory.rss_bytes", {
12
- description: "Resident Set Size - total memory allocated for the process",
13
- unit: "By",
14
- });
15
- const externalGauge = meter.createObservableGauge("nodejs.memory.external_bytes", {
16
- description: "Memory used by C++ objects bound to JavaScript objects",
17
- unit: "By",
18
- });
19
- const arrayBuffersGauge = meter.createObservableGauge("nodejs.memory.array_buffers_bytes", {
20
- description: "Memory allocated for ArrayBuffers and SharedArrayBuffers (also included in external)",
21
- unit: "By",
22
- });
23
- const gcCountCounter = meter.createCounter("nodejs.gc.count", {
24
- description: "Number of garbage collection events",
25
- unit: "{event}",
26
- });
27
- const gauges = [
28
- heapUsedGauge,
29
- heapTotalGauge,
30
- rssGauge,
31
- externalGauge,
32
- arrayBuffersGauge,
33
- ];
34
- // Single memoryUsage() call per export interval for all 5 gauges (idiomatic OTEL batch pattern).
35
- const batchCb = (result) => {
36
- const mem = process.memoryUsage();
37
- result.observe(heapUsedGauge, mem.heapUsed);
38
- result.observe(heapTotalGauge, mem.heapTotal);
39
- result.observe(rssGauge, mem.rss);
40
- result.observe(externalGauge, mem.external);
41
- result.observe(arrayBuffersGauge, mem.arrayBuffers);
42
- };
43
- meter.addBatchObservableCallback(batchCb, gauges);
44
- const gcObserver = new PerformanceObserver((list) => {
45
- gcCountCounter.add(list.getEntries().length);
46
- });
47
- gcObserver.observe({ entryTypes: ["gc"], buffered: false });
48
- cleanupFn = () => {
49
- gcObserver.disconnect();
50
- meter.removeBatchObservableCallback(batchCb, gauges);
51
- };
81
+ const eventLoopDelay = monitorEventLoopDelay({ resolution: 20 });
82
+ let previousEventLoopUtilization = performance.eventLoopUtilization();
83
+ let removeBatchCallback;
84
+ let disconnectGcObserver;
85
+ try {
86
+ const heapUsedGauge = meter.createObservableGauge("nodejs.memory.heap_used_bytes", { description: "V8 heap memory used (bytes)", unit: "By" });
87
+ const heapTotalGauge = meter.createObservableGauge("nodejs.memory.heap_total_bytes", { description: "V8 heap memory allocated (bytes)", unit: "By" });
88
+ const rssGauge = meter.createObservableGauge("nodejs.memory.rss_bytes", {
89
+ description: "Resident Set Size - total memory allocated for the process",
90
+ unit: "By",
91
+ });
92
+ const externalGauge = meter.createObservableGauge("nodejs.memory.external_bytes", {
93
+ description: "Memory used by C++ objects bound to JavaScript objects",
94
+ unit: "By",
95
+ });
96
+ const arrayBuffersGauge = meter.createObservableGauge("nodejs.memory.array_buffers_bytes", {
97
+ description: "Memory allocated for ArrayBuffers and SharedArrayBuffers (also included in external)",
98
+ unit: "By",
99
+ });
100
+ const heapLimitGauge = meter.createObservableGauge("nodejs.memory.heap_limit_bytes", { description: "Configured V8 heap size limit (bytes)", unit: "By" });
101
+ const heapUsedRatioGauge = meter.createObservableGauge("nodejs.memory.heap_used_ratio", { description: "V8 heap used divided by V8 heap size limit", unit: "1" });
102
+ const cgroupCurrentGauge = meter.createObservableGauge("nodejs.memory.cgroup_current_bytes", { description: "Current cgroup memory usage when available", unit: "By" });
103
+ const cgroupLimitGauge = meter.createObservableGauge("nodejs.memory.cgroup_limit_bytes", { description: "Cgroup memory limit when available", unit: "By" });
104
+ const cgroupUsageRatioGauge = meter.createObservableGauge("nodejs.memory.cgroup_usage_ratio", {
105
+ description: "Cgroup memory usage divided by cgroup memory limit",
106
+ unit: "1",
107
+ });
108
+ const eventLoopDelayMeanGauge = meter.createObservableGauge("nodejs.event_loop.delay.mean_ms", {
109
+ description: "Mean event-loop delay for the last collection window",
110
+ unit: "ms",
111
+ });
112
+ const eventLoopDelayMaxGauge = meter.createObservableGauge("nodejs.event_loop.delay.max_ms", {
113
+ description: "Max event-loop delay for the last collection window",
114
+ unit: "ms",
115
+ });
116
+ const eventLoopDelayP50Gauge = meter.createObservableGauge("nodejs.event_loop.delay.p50_ms", {
117
+ description: "p50 event-loop delay for the last collection window",
118
+ unit: "ms",
119
+ });
120
+ const eventLoopDelayP90Gauge = meter.createObservableGauge("nodejs.event_loop.delay.p90_ms", {
121
+ description: "p90 event-loop delay for the last collection window",
122
+ unit: "ms",
123
+ });
124
+ const eventLoopDelayP99Gauge = meter.createObservableGauge("nodejs.event_loop.delay.p99_ms", {
125
+ description: "p99 event-loop delay for the last collection window",
126
+ unit: "ms",
127
+ });
128
+ const eventLoopUtilizationGauge = meter.createObservableGauge("nodejs.event_loop.utilization", {
129
+ description: "Event-loop utilization delta for the last collection window",
130
+ unit: "1",
131
+ });
132
+ const processCpuUserCounter = meter.createObservableCounter("nodejs.process.cpu.user_seconds", { description: "Process user CPU time since start", unit: "s" });
133
+ const processCpuSystemCounter = meter.createObservableCounter("nodejs.process.cpu.system_seconds", { description: "Process system CPU time since start", unit: "s" });
134
+ const gcCountCounter = meter.createCounter("nodejs.gc.count", {
135
+ description: "Number of garbage collection events",
136
+ unit: "{event}",
137
+ });
138
+ const gcDurationHistogram = meter.createHistogram("nodejs.gc.duration_ms", {
139
+ description: "Garbage collection duration by collection kind",
140
+ unit: "ms",
141
+ advice: {
142
+ explicitBucketBoundaries: [0.5, 1, 2, 5, 10, 25, 50, 100, 250, 500],
143
+ },
144
+ });
145
+ const observableInstruments = [
146
+ heapUsedGauge,
147
+ heapTotalGauge,
148
+ rssGauge,
149
+ externalGauge,
150
+ arrayBuffersGauge,
151
+ heapLimitGauge,
152
+ heapUsedRatioGauge,
153
+ cgroupCurrentGauge,
154
+ cgroupLimitGauge,
155
+ cgroupUsageRatioGauge,
156
+ eventLoopDelayMeanGauge,
157
+ eventLoopDelayMaxGauge,
158
+ eventLoopDelayP50Gauge,
159
+ eventLoopDelayP90Gauge,
160
+ eventLoopDelayP99Gauge,
161
+ eventLoopUtilizationGauge,
162
+ processCpuUserCounter,
163
+ processCpuSystemCounter,
164
+ ];
165
+ // Single callback per export interval keeps runtime stats temporally aligned.
166
+ const batchCb = (result) => {
167
+ try {
168
+ const mem = process.memoryUsage();
169
+ const heap = getHeapStatistics();
170
+ const cgroup = readCgroupMemory();
171
+ const elu = performance.eventLoopUtilization(previousEventLoopUtilization);
172
+ previousEventLoopUtilization = performance.eventLoopUtilization();
173
+ const cpu = process.cpuUsage();
174
+ result.observe(heapUsedGauge, mem.heapUsed);
175
+ result.observe(heapTotalGauge, mem.heapTotal);
176
+ result.observe(rssGauge, mem.rss);
177
+ result.observe(externalGauge, mem.external);
178
+ result.observe(arrayBuffersGauge, mem.arrayBuffers);
179
+ result.observe(heapLimitGauge, heap.heap_size_limit);
180
+ result.observe(heapUsedRatioGauge, ratio(mem.heapUsed, heap.heap_size_limit));
181
+ // Omit cgroup gauges when no finite cgroup limit is available; absence means host/unlimited memory, not telemetry setup failure.
182
+ if (cgroup) {
183
+ result.observe(cgroupCurrentGauge, cgroup.currentBytes);
184
+ result.observe(cgroupLimitGauge, cgroup.limitBytes);
185
+ result.observe(cgroupUsageRatioGauge, cgroup.usageRatio);
186
+ }
187
+ result.observe(eventLoopDelayMeanGauge, nsToMs(eventLoopDelay.mean));
188
+ result.observe(eventLoopDelayMaxGauge, nsToMs(eventLoopDelay.max));
189
+ result.observe(eventLoopDelayP50Gauge, nsToMs(eventLoopDelay.percentile(50)));
190
+ result.observe(eventLoopDelayP90Gauge, nsToMs(eventLoopDelay.percentile(90)));
191
+ result.observe(eventLoopDelayP99Gauge, nsToMs(eventLoopDelay.percentile(99)));
192
+ result.observe(eventLoopUtilizationGauge, finiteNonNegative(elu.utilization));
193
+ result.observe(processCpuUserCounter, cpu.user / US_PER_SECOND);
194
+ result.observe(processCpuSystemCounter, cpu.system / US_PER_SECOND);
195
+ }
196
+ finally {
197
+ eventLoopDelay.reset();
198
+ }
199
+ };
200
+ meter.addBatchObservableCallback(batchCb, observableInstruments);
201
+ removeBatchCallback = () => {
202
+ meter.removeBatchObservableCallback(batchCb, observableInstruments);
203
+ };
204
+ const gcObserver = new PerformanceObserver((list) => {
205
+ for (const entry of list.getEntries()) {
206
+ const kind = gcKind(entry.detail?.kind ?? entry.kind);
207
+ const attrs = { kind };
208
+ gcCountCounter.add(1, attrs);
209
+ gcDurationHistogram.record(finiteNonNegative(entry.duration), attrs);
210
+ }
211
+ });
212
+ disconnectGcObserver = () => {
213
+ gcObserver.disconnect();
214
+ };
215
+ gcObserver.observe({ entryTypes: ["gc"], buffered: false });
216
+ eventLoopDelay.enable();
217
+ cleanupFn = () => {
218
+ eventLoopDelay.disable();
219
+ disconnectGcObserver?.();
220
+ removeBatchCallback?.();
221
+ };
222
+ }
223
+ catch (error) {
224
+ eventLoopDelay.disable();
225
+ disconnectGcObserver?.();
226
+ removeBatchCallback?.();
227
+ throw error;
228
+ }
52
229
  }
53
230
  export function stopMemoryMetrics() {
54
231
  if (cleanupFn) {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-metrics.js","sourceRoot":"","sources":["../../src/telemetry/memory-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,IAAI,SAAmC,CAAC;AAExC,MAAM,UAAU,kBAAkB;IAChC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,MAAM,aAAa,GAAG,KAAK,CAAC,qBAAqB,CAC/C,+BAA+B,EAC/B,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,CAC3D,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,CAAC,qBAAqB,CAChD,gCAAgC,EAChC,EAAE,WAAW,EAAE,kCAAkC,EAAE,IAAI,EAAE,IAAI,EAAE,CAChE,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC,yBAAyB,EAAE;QACtE,WAAW,EAAE,4DAA4D;QACzE,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,KAAK,CAAC,qBAAqB,CAC/C,8BAA8B,EAC9B;QACE,WAAW,EAAE,wDAAwD;QACrE,IAAI,EAAE,IAAI;KACX,CACF,CAAC;IACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,qBAAqB,CACnD,mCAAmC,EACnC;QACE,WAAW,EACT,sFAAsF;QACxF,IAAI,EAAE,IAAI;KACX,CACF,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;QAC5D,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG;QACb,aAAa;QACb,cAAc;QACd,QAAQ;QACR,aAAa;QACb,iBAAiB;KAClB,CAAC;IAEF,iGAAiG;IACjG,MAAM,OAAO,GAAG,CAAC,MAA6B,EAAE,EAAE;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,KAAK,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,IAAI,mBAAmB,CACxC,CAAC,IAAkC,EAAE,EAAE;QACrC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAE5D,SAAS,GAAG,GAAG,EAAE;QACf,UAAU,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"memory-metrics.js","sourceRoot":"","sources":["../../src/telemetry/memory-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-metrics.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-metrics.test.d.ts","sourceRoot":"","sources":["../../src/telemetry/memory-metrics.test.ts"],"names":[],"mappings":""}