@glubean/runner 0.7.0 → 0.8.0

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 (71) hide show
  1. package/dist/engine-bridge.d.ts +4 -0
  2. package/dist/engine-bridge.d.ts.map +1 -1
  3. package/dist/engine-bridge.js +10 -1
  4. package/dist/engine-bridge.js.map +1 -1
  5. package/dist/executor.d.ts +2 -2
  6. package/dist/executor.d.ts.map +1 -1
  7. package/dist/executor.js +9 -226
  8. package/dist/executor.js.map +1 -1
  9. package/dist/harness.js +3 -79
  10. package/dist/harness.js.map +1 -1
  11. package/dist/index.d.ts +16 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +17 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/load/continuation-pool.d.ts +82 -0
  16. package/dist/load/continuation-pool.d.ts.map +1 -0
  17. package/dist/load/continuation-pool.js +154 -0
  18. package/dist/load/continuation-pool.js.map +1 -0
  19. package/dist/load/execute-iteration.d.ts +126 -0
  20. package/dist/load/execute-iteration.d.ts.map +1 -0
  21. package/dist/load/execute-iteration.js +367 -0
  22. package/dist/load/execute-iteration.js.map +1 -0
  23. package/dist/load/histogram.d.ts +63 -0
  24. package/dist/load/histogram.d.ts.map +1 -0
  25. package/dist/load/histogram.js +149 -0
  26. package/dist/load/histogram.js.map +1 -0
  27. package/dist/load/orchestrator.d.ts +55 -0
  28. package/dist/load/orchestrator.d.ts.map +1 -0
  29. package/dist/load/orchestrator.js +571 -0
  30. package/dist/load/orchestrator.js.map +1 -0
  31. package/dist/load/reducer.d.ts +109 -0
  32. package/dist/load/reducer.d.ts.map +1 -0
  33. package/dist/load/reducer.js +718 -0
  34. package/dist/load/reducer.js.map +1 -0
  35. package/dist/load/route-key.d.ts +38 -0
  36. package/dist/load/route-key.d.ts.map +1 -0
  37. package/dist/load/route-key.js +107 -0
  38. package/dist/load/route-key.js.map +1 -0
  39. package/dist/load/samples.d.ts +83 -0
  40. package/dist/load/samples.d.ts.map +1 -0
  41. package/dist/load/samples.js +269 -0
  42. package/dist/load/samples.js.map +1 -0
  43. package/dist/load/sink.d.ts +127 -0
  44. package/dist/load/sink.d.ts.map +1 -0
  45. package/dist/load/sink.js +351 -0
  46. package/dist/load/sink.js.map +1 -0
  47. package/dist/load/subprocess.d.ts +83 -0
  48. package/dist/load/subprocess.d.ts.map +1 -0
  49. package/dist/load/subprocess.js +229 -0
  50. package/dist/load/subprocess.js.map +1 -0
  51. package/dist/load/threshold.d.ts +44 -0
  52. package/dist/load/threshold.d.ts.map +1 -0
  53. package/dist/load/threshold.js +197 -0
  54. package/dist/load/threshold.js.map +1 -0
  55. package/dist/load/timeline.d.ts +36 -0
  56. package/dist/load/timeline.d.ts.map +1 -0
  57. package/dist/load/timeline.js +158 -0
  58. package/dist/load/timeline.js.map +1 -0
  59. package/dist/load-harness.d.ts +2 -0
  60. package/dist/load-harness.d.ts.map +1 -0
  61. package/dist/load-harness.js +105 -0
  62. package/dist/load-harness.js.map +1 -0
  63. package/dist/runner-resolve.d.ts +53 -0
  64. package/dist/runner-resolve.d.ts.map +1 -0
  65. package/dist/runner-resolve.js +264 -0
  66. package/dist/runner-resolve.js.map +1 -0
  67. package/dist/workflow/event-timeline.d.ts +3 -0
  68. package/dist/workflow/event-timeline.d.ts.map +1 -0
  69. package/dist/workflow/event-timeline.js +72 -0
  70. package/dist/workflow/event-timeline.js.map +1 -0
  71. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../src/load/reducer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Heuristic routeKey normalization (M3-e).
3
+ *
4
+ * Until explicit routeKeys / a contract catalog land (M8), the load sink derives
5
+ * an endpoint's routeKey from the request's METHOD + pathname. Raw pathnames are
6
+ * high-cardinality (`/items/42`, `/items/43`, `/orders/<uuid>` …), so without
7
+ * normalization every id spawns its own endpoint bucket and the LoadArtifact's
8
+ * endpoint aggregates explode. This collapses id-LIKE path segments to `:id` so
9
+ * the same logical endpoint aggregates together.
10
+ *
11
+ * The heuristic is deliberately CONSERVATIVE — it only collapses segments that are
12
+ * unambiguously ids (pure integers, UUIDs, Mongo ObjectIds, long hex hashes) — so
13
+ * real route words (`/api/v2`, `/users/me`) are never merged. Anything it touches
14
+ * stays flagged `routeKeyHeuristic: true` so consumers know it was inferred.
15
+ */
16
+ /** Whether a single path segment looks like a high-cardinality id (→ `:id`). */
17
+ export declare function looksLikeIdSegment(segment: string): boolean;
18
+ /** Collapse id-like segments of a pathname to `:id` (query/hash stripped). */
19
+ export declare function normalizeRoutePath(pathname: string): string;
20
+ /** A trace's resolved method + heuristic routeKey. */
21
+ export interface ResolvedRoute {
22
+ method: string;
23
+ routeKey: string;
24
+ }
25
+ /**
26
+ * Resolve a request's method + heuristic routeKey from a trace's fields.
27
+ *
28
+ * HTTP path normalization (method prefix + id-like segments → `:id`) applies to
29
+ * HTTP traces — `protocol === "http"` AND legacy traces that OMIT `protocol` but
30
+ * carry HTTP `method`/`url` fields. For HTTP: method precedence is explicit
31
+ * `method` > the method embedded in `target` (`"POST /orders"`) > `"GET"` (so a
32
+ * target-only trace keeps its real verb), and path precedence is `url` >
33
+ * `target`'s path. Only an EXPLICIT non-http protocol (gRPC `"Service/Method"`,
34
+ * custom protocols) is treated as non-HTTP: its `target` IS the routeKey
35
+ * (normalizing it would fabricate a bogus HTTP route), used verbatim.
36
+ */
37
+ export declare function resolveRouteKey(method: string | undefined, url: string | undefined, target: string | undefined, protocol: string | undefined, explicitRouteKey?: string): ResolvedRoute;
38
+ //# sourceMappingURL=route-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-key.d.ts","sourceRoot":"","sources":["../../src/load/route-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU3D;AAyBD,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,gBAAgB,CAAC,EAAE,MAAM,GACxB,aAAa,CAqBf"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Heuristic routeKey normalization (M3-e).
3
+ *
4
+ * Until explicit routeKeys / a contract catalog land (M8), the load sink derives
5
+ * an endpoint's routeKey from the request's METHOD + pathname. Raw pathnames are
6
+ * high-cardinality (`/items/42`, `/items/43`, `/orders/<uuid>` …), so without
7
+ * normalization every id spawns its own endpoint bucket and the LoadArtifact's
8
+ * endpoint aggregates explode. This collapses id-LIKE path segments to `:id` so
9
+ * the same logical endpoint aggregates together.
10
+ *
11
+ * The heuristic is deliberately CONSERVATIVE — it only collapses segments that are
12
+ * unambiguously ids (pure integers, UUIDs, Mongo ObjectIds, long hex hashes) — so
13
+ * real route words (`/api/v2`, `/users/me`) are never merged. Anything it touches
14
+ * stays flagged `routeKeyHeuristic: true` so consumers know it was inferred.
15
+ */
16
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
17
+ const OBJECT_ID_RE = /^[0-9a-f]{24}$/i; // Mongo ObjectId
18
+ const LONG_HEX_RE = /^[0-9a-f]{32,}$/i; // md5 / sha-* / other hex digests
19
+ /** Whether a single path segment looks like a high-cardinality id (→ `:id`). */
20
+ export function looksLikeIdSegment(segment) {
21
+ if (segment === "")
22
+ return false;
23
+ if (/^\d+$/.test(segment))
24
+ return true; // integer id
25
+ if (UUID_RE.test(segment))
26
+ return true;
27
+ if (OBJECT_ID_RE.test(segment))
28
+ return true;
29
+ if (LONG_HEX_RE.test(segment))
30
+ return true;
31
+ return false;
32
+ }
33
+ /** Collapse id-like segments of a pathname to `:id` (query/hash stripped). */
34
+ export function normalizeRoutePath(pathname) {
35
+ if (!pathname)
36
+ return "";
37
+ // Defensive: pathnames from the engine carry no query/hash, but strip just in case.
38
+ const q = pathname.search(/[?#]/);
39
+ const path = q >= 0 ? pathname.slice(0, q) : pathname;
40
+ if (path === "/" || path === "")
41
+ return path;
42
+ return path
43
+ .split("/")
44
+ .map((seg) => (looksLikeIdSegment(seg) ? ":id" : seg))
45
+ .join("/");
46
+ }
47
+ /** Split an engine/user `target` (`"METHOD /pathname"`) into its method + path. */
48
+ function splitTarget(target) {
49
+ if (!target)
50
+ return {};
51
+ const sp = target.indexOf(" ");
52
+ if (sp < 0)
53
+ return { path: target };
54
+ return { method: target.slice(0, sp), path: target.slice(sp + 1) };
55
+ }
56
+ /** Extract the pathname from a trace's `url`, or undefined if absent/unparseable. */
57
+ function pathnameFromUrl(url) {
58
+ if (!url)
59
+ return undefined;
60
+ try {
61
+ return new URL(url).pathname;
62
+ }
63
+ catch {
64
+ // Relative URL — resolve against a dummy base to extract the pathname.
65
+ try {
66
+ return new URL(url, "http://glubean.invalid").pathname;
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Resolve a request's method + heuristic routeKey from a trace's fields.
75
+ *
76
+ * HTTP path normalization (method prefix + id-like segments → `:id`) applies to
77
+ * HTTP traces — `protocol === "http"` AND legacy traces that OMIT `protocol` but
78
+ * carry HTTP `method`/`url` fields. For HTTP: method precedence is explicit
79
+ * `method` > the method embedded in `target` (`"POST /orders"`) > `"GET"` (so a
80
+ * target-only trace keeps its real verb), and path precedence is `url` >
81
+ * `target`'s path. Only an EXPLICIT non-http protocol (gRPC `"Service/Method"`,
82
+ * custom protocols) is treated as non-HTTP: its `target` IS the routeKey
83
+ * (normalizing it would fabricate a bogus HTTP route), used verbatim.
84
+ */
85
+ export function resolveRouteKey(method, url, target, protocol, explicitRouteKey) {
86
+ // An EXACT route template (M8) wins over every heuristic: a `contract.http()` client
87
+ // (or a user header) supplies its `endpoint`, e.g. "GET /runs/:runId", verbatim. Method
88
+ // precedence: the template's own verb > explicit `method` > the verb in `target`
89
+ // ("POST /orders") > "GET". A PATH-ONLY template ("/orders", no verb) is prefixed with
90
+ // the recovered method, since the reducer keys endpoints by routeKey alone — otherwise a
91
+ // GET and POST on the same path would collapse into one endpoint.
92
+ if (explicitRouteKey !== undefined && explicitRouteKey !== "") {
93
+ const keyMethod = splitTarget(explicitRouteKey).method;
94
+ const resolved = keyMethod ?? method ?? splitTarget(target).method ?? "GET";
95
+ return { method: resolved, routeKey: keyMethod ? explicitRouteKey : `${resolved} ${explicitRouteKey}` };
96
+ }
97
+ // Only an explicit non-"http" protocol opts out of HTTP normalization; a missing
98
+ // protocol is the legacy HTTP shape (method/url) and must still normalize.
99
+ if (protocol !== undefined && protocol !== "http") {
100
+ return { method: method ?? "", routeKey: target ?? "" };
101
+ }
102
+ const t = splitTarget(target);
103
+ const resolvedMethod = method ?? t.method ?? "GET";
104
+ const path = pathnameFromUrl(url) ?? t.path ?? "";
105
+ return { method: resolvedMethod, routeKey: `${resolvedMethod} ${normalizeRoutePath(path)}` };
106
+ }
107
+ //# sourceMappingURL=route-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-key.js","sourceRoot":"","sources":["../../src/load/route-key.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Bounded failure-trace / slow-transaction sampling for the load reducer.
3
+ *
4
+ * The aggregates answer "how bad, where"; the samples answer "show me one". For each
5
+ * in-flight iteration the collector buffers a CAPPED list of observations (requests +
6
+ * failed assertions) plus its slowest step and a bounded top-k of busiest endpoints. At
7
+ * iteration:end:
8
+ * - a FAILED iteration keeps a `LoadFailureTraceSample` (its observations + the failed
9
+ * step), up to `maxFailureTraces` (the first N — the onset is the useful part);
10
+ * - a SUCCESSFUL one competes for the top `maxSlowTransactionSummaries` slowest, kept as
11
+ * a `LoadSlowTransactionSummary` (no full trace, just its slowest step + top endpoints).
12
+ *
13
+ * Memory is bounded: per in-flight iteration the observation buffer AND the endpoint top-k
14
+ * are capped, the in-flight count is bounded by concurrency, and the kept-sample counts are
15
+ * capped. The caps come from the plan's `report` config (0 disables a sample type entirely —
16
+ * then nothing is even buffered for it).
17
+ */
18
+ import type { LoadArtifactSamples, LoadErrorKind } from "@glubean/sdk/load";
19
+ type Phase = "primary" | "continuation";
20
+ export declare class LoadSampleCollector {
21
+ private readonly maxFailureTraces;
22
+ private readonly maxSlow;
23
+ private readonly buffers;
24
+ private readonly failureTraces;
25
+ private readonly slow;
26
+ /** `report` caps (0 disables a sample type entirely; undefined → the default). */
27
+ constructor(caps?: {
28
+ maxFailureTraces?: number;
29
+ maxSlowTransactionSummaries?: number;
30
+ });
31
+ /** Whether any per-iteration buffering is needed at all. */
32
+ private get tracking();
33
+ beginIteration(iterationId: string, info: {
34
+ scenarioId: string;
35
+ scenarioRefId?: string;
36
+ producerSlotId: string;
37
+ feederKeys?: Record<string, string>;
38
+ }): void;
39
+ recordRequest(iterationId: string, r: {
40
+ tsOffsetMs: number;
41
+ stepId?: string;
42
+ stepName?: string;
43
+ phase?: Phase;
44
+ method: string;
45
+ routeKey: string;
46
+ status?: number;
47
+ ok: boolean;
48
+ durationMs: number;
49
+ errorKind?: LoadErrorKind;
50
+ }): void;
51
+ recordAssertionFailure(iterationId: string, a: {
52
+ tsOffsetMs: number;
53
+ stepId?: string;
54
+ stepName?: string;
55
+ phase?: Phase;
56
+ message?: string;
57
+ actual?: unknown;
58
+ hasActual?: boolean;
59
+ expected?: unknown;
60
+ hasExpected?: boolean;
61
+ }): void;
62
+ recordStep(iterationId: string, s: {
63
+ stepId: string;
64
+ stepName: string;
65
+ durationMs: number;
66
+ ok: boolean;
67
+ skipped: boolean;
68
+ }): void;
69
+ endIteration(iterationId: string, end: {
70
+ ok: boolean;
71
+ durationMs: number;
72
+ errorKind?: LoadErrorKind;
73
+ }): void;
74
+ finalize(): LoadArtifactSamples;
75
+ private pushObservation;
76
+ /** Keep only the TOP_ENDPOINTS slowest endpoints seen this iteration (sorted desc). */
77
+ private offerEndpoint;
78
+ private identityOf;
79
+ /** Keep this transaction iff it's among the top `maxSlow` slowest (sorted DESC). */
80
+ private offerSlow;
81
+ }
82
+ export {};
83
+ //# sourceMappingURL=samples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"samples.d.ts","sourceRoot":"","sources":["../../src/load/samples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAKd,MAAM,mBAAmB,CAAC;AA4E3B,KAAK,KAAK,GAAG,SAAS,GAAG,cAAc,CAAC;AAexC,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAE9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;IAEzD,kFAAkF;gBACtE,IAAI,GAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,2BAA2B,CAAC,EAAE,MAAM,CAAA;KAAO;IAK1F,4DAA4D;IAC5D,OAAO,KAAK,QAAQ,GAEnB;IAED,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAChH,IAAI;IAcP,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,EAAE,EAAE,OAAO,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,aAAa,CAAC;KAC3B,GACA,IAAI;IA4BP,sBAAsB,CACpB,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QAGjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GACA,IAAI;IAoBP,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GACzF,IAAI;IAWP,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI;IA4B5G,QAAQ,IAAI,mBAAmB;IAS/B,OAAO,CAAC,eAAe;IAoBvB,uFAAuF;IACvF,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,UAAU;IAalB,oFAAoF;IACpF,OAAO,CAAC,SAAS;CAUlB"}
@@ -0,0 +1,269 @@
1
+ const DEFAULT_MAX_FAILURE_TRACES = 20;
2
+ const DEFAULT_MAX_SLOW = 20;
3
+ const MAX_OBS_PER_TRACE = 40;
4
+ const TOP_ENDPOINTS = 3;
5
+ // Memory backstop on CONCURRENTLY-buffered iterations (each holds a bounded obs/endpoint
6
+ // buffer until iteration:end). Normal runs stay far below this — in-flight is bounded by
7
+ // concurrency + continuation limits. It only bites the pathological `releaseProducerSlot` +
8
+ // unbounded-continuation case with slow/hung tails, where in-flight iterations would otherwise
9
+ // grow without bound; there, excess iterations are simply not sampled.
10
+ const MAX_ACTIVE_BUFFERS = 4096;
11
+ const MAX_PREVIEW_CHARS = 512;
12
+ const MAX_PREVIEW_DEPTH = 6;
13
+ const PREVIEW_NODE_BUDGET = 512; // hard cap on nodes visited — bounds CPU/memory for huge payloads
14
+ const truncateStr = (s) => (s.length > MAX_PREVIEW_CHARS ? `${s.slice(0, MAX_PREVIEW_CHARS)}…` : s);
15
+ /** Deep-truncate `v` into a bounded, JSON-safe structure WITHOUT walking the whole input: a
16
+ * shared node budget caps total work, arrays/objects stop early when it's exhausted, depth
17
+ * is capped, strings are truncated, and BigInt / symbol / function become strings. This runs
18
+ * BEFORE serialization, so a huge response body can't make JSON.stringify allocate the whole
19
+ * value first (codex). */
20
+ function boundStructure(v, depth, budget) {
21
+ if (budget.n <= 0)
22
+ return "…";
23
+ budget.n -= 1;
24
+ if (typeof v === "string")
25
+ return truncateStr(v);
26
+ if (typeof v === "number")
27
+ return Number.isFinite(v) ? v : String(v); // NaN / ±Infinity → JSON null
28
+ if (typeof v === "boolean" || v === null)
29
+ return v;
30
+ if (typeof v === "bigint")
31
+ return truncateStr(`${v}n`);
32
+ if (typeof v !== "object")
33
+ return truncateStr(String(v)); // symbol / function — length-capped
34
+ if (depth >= MAX_PREVIEW_DEPTH)
35
+ return Array.isArray(v) ? "[…]" : "{…}";
36
+ if (Array.isArray(v)) {
37
+ const out = [];
38
+ for (let i = 0; i < v.length && budget.n > 0; i++)
39
+ out.push(boundStructure(v[i], depth + 1, budget));
40
+ if (v.length > out.length)
41
+ out.push(`…+${v.length - out.length} more`);
42
+ return out;
43
+ }
44
+ const out = {};
45
+ for (const k in v) {
46
+ if (!Object.prototype.hasOwnProperty.call(v, k))
47
+ continue;
48
+ if (budget.n <= 0) {
49
+ out["…"] = "…";
50
+ break;
51
+ }
52
+ out[k] = boundStructure(v[k], depth + 1, budget);
53
+ }
54
+ return out;
55
+ }
56
+ /** Bound a captured assertion value for the trace so a single retained failure sample can't
57
+ * carry an unbounded payload AND so the preview is JSON-safe — the artifact is later
58
+ * `JSON.stringify`d, which throws on a BigInt. Primitives pass through (long strings
59
+ * truncated; BigInt / symbol / function → string); a structured value is deep-truncated to a
60
+ * bounded structure, then serialized to a length-capped JSON string (a debugging PREVIEW). */
61
+ function previewValue(v) {
62
+ if (typeof v === "string")
63
+ return truncateStr(v);
64
+ if (typeof v === "number")
65
+ return Number.isFinite(v) ? v : String(v); // NaN / ±Infinity → JSON null
66
+ if (typeof v === "boolean" || v === null)
67
+ return v;
68
+ if (typeof v === "bigint")
69
+ return truncateStr(`${v}n`);
70
+ if (typeof v !== "object")
71
+ return truncateStr(String(v)); // symbol / function — length-capped
72
+ let s;
73
+ try {
74
+ s = JSON.stringify(boundStructure(v, 0, { n: PREVIEW_NODE_BUDGET }));
75
+ }
76
+ catch {
77
+ return "[unserializable]"; // a throwing getter / toJSON on the bounded structure
78
+ }
79
+ return truncateStr(s === undefined ? String(v) : s);
80
+ }
81
+ /** The failure cause worth keeping over a successful request when the trace buffer is full:
82
+ * a failed assertion (only failures are recorded) or a failed/errored request. */
83
+ function isHighValue(o) {
84
+ return o.type === "assertion" || (o.type === "request" && !o.ok);
85
+ }
86
+ export class LoadSampleCollector {
87
+ maxFailureTraces;
88
+ maxSlow;
89
+ buffers = new Map();
90
+ failureTraces = [];
91
+ // Slowest successful transactions, kept sorted DESC by durationMs (top `maxSlow`).
92
+ slow = [];
93
+ /** `report` caps (0 disables a sample type entirely; undefined → the default). */
94
+ constructor(caps = {}) {
95
+ this.maxFailureTraces = caps.maxFailureTraces ?? DEFAULT_MAX_FAILURE_TRACES;
96
+ this.maxSlow = caps.maxSlowTransactionSummaries ?? DEFAULT_MAX_SLOW;
97
+ }
98
+ /** Whether any per-iteration buffering is needed at all. */
99
+ get tracking() {
100
+ return this.maxFailureTraces > 0 || this.maxSlow > 0;
101
+ }
102
+ beginIteration(iterationId, info) {
103
+ if (!this.tracking)
104
+ return; // both sample types disabled — buffer nothing
105
+ if (this.buffers.size >= MAX_ACTIVE_BUFFERS)
106
+ return; // memory backstop (see the const)
107
+ this.buffers.set(iterationId, {
108
+ scenarioId: info.scenarioId,
109
+ ...(info.scenarioRefId !== undefined ? { scenarioRefId: info.scenarioRefId } : {}),
110
+ producerSlotId: info.producerSlotId,
111
+ ...(info.feederKeys !== undefined ? { feederKeys: info.feederKeys } : {}),
112
+ observations: [],
113
+ droppedObservations: 0,
114
+ endpoints: [],
115
+ });
116
+ }
117
+ recordRequest(iterationId, r) {
118
+ const b = this.buffers.get(iterationId);
119
+ if (b === undefined)
120
+ return;
121
+ if (this.maxFailureTraces > 0) {
122
+ this.pushObservation(b, {
123
+ type: "request",
124
+ tsOffsetMs: r.tsOffsetMs,
125
+ ...(r.stepId !== undefined ? { stepId: r.stepId } : {}),
126
+ ...(r.stepName !== undefined ? { stepName: r.stepName } : {}),
127
+ ...(r.phase !== undefined ? { phase: r.phase } : {}),
128
+ method: r.method,
129
+ routeKey: r.routeKey,
130
+ ...(r.status !== undefined ? { status: r.status } : {}),
131
+ ok: r.ok,
132
+ durationMs: r.durationMs,
133
+ ...(r.errorKind !== undefined ? { errorKind: r.errorKind } : {}),
134
+ });
135
+ }
136
+ if (this.maxSlow > 0) {
137
+ this.offerEndpoint(b, {
138
+ routeKey: r.routeKey,
139
+ ...(r.phase !== undefined ? { phase: r.phase } : {}),
140
+ durationMs: r.durationMs,
141
+ ...(r.status !== undefined ? { status: r.status } : {}),
142
+ });
143
+ }
144
+ }
145
+ recordAssertionFailure(iterationId, a) {
146
+ const b = this.buffers.get(iterationId);
147
+ if (b === undefined || this.maxFailureTraces === 0)
148
+ return;
149
+ // The caller may pass an explicit presence flag (to retain an `undefined` operand) or rely
150
+ // on the value being defined.
151
+ const hasActual = a.hasActual ?? a.actual !== undefined;
152
+ const hasExpected = a.hasExpected ?? a.expected !== undefined;
153
+ this.pushObservation(b, {
154
+ type: "assertion",
155
+ tsOffsetMs: a.tsOffsetMs,
156
+ ...(a.stepId !== undefined ? { stepId: a.stepId } : {}),
157
+ ...(a.stepName !== undefined ? { stepName: a.stepName } : {}),
158
+ ...(a.phase !== undefined ? { phase: a.phase } : {}),
159
+ passed: false,
160
+ ...(a.message !== undefined ? { message: a.message } : {}),
161
+ ...(hasActual ? { actualPreview: previewValue(a.actual) } : {}),
162
+ ...(hasExpected ? { expectedPreview: previewValue(a.expected) } : {}),
163
+ });
164
+ }
165
+ recordStep(iterationId, s) {
166
+ const b = this.buffers.get(iterationId);
167
+ if (b === undefined || s.skipped)
168
+ return;
169
+ if (this.maxSlow > 0 && (b.slowestStep === undefined || s.durationMs > b.slowestStep.durationMs)) {
170
+ b.slowestStep = { stepId: s.stepId, stepName: s.stepName, durationMs: s.durationMs };
171
+ }
172
+ if (this.maxFailureTraces > 0 && !s.ok && b.failedStep === undefined) {
173
+ b.failedStep = { stepId: s.stepId, stepName: s.stepName };
174
+ }
175
+ }
176
+ endIteration(iterationId, end) {
177
+ const b = this.buffers.get(iterationId);
178
+ if (b === undefined)
179
+ return;
180
+ this.buffers.delete(iterationId);
181
+ const identity = this.identityOf(iterationId, b);
182
+ if (!end.ok) {
183
+ if (this.failureTraces.length < this.maxFailureTraces) {
184
+ this.failureTraces.push({
185
+ identity,
186
+ durationMs: end.durationMs,
187
+ ...(end.errorKind !== undefined ? { errorKind: end.errorKind } : {}),
188
+ ...(b.failedStep !== undefined ? { failedStepId: b.failedStep.stepId, failedStepName: b.failedStep.stepName } : {}),
189
+ observations: b.observations,
190
+ truncated: b.droppedObservations > 0,
191
+ droppedObservationCount: b.droppedObservations,
192
+ });
193
+ }
194
+ }
195
+ else if (this.maxSlow > 0) {
196
+ this.offerSlow({
197
+ identity,
198
+ durationMs: end.durationMs,
199
+ ...(b.slowestStep !== undefined ? { slowStepId: b.slowestStep.stepId, slowStepName: b.slowestStep.stepName } : {}),
200
+ topEndpoints: b.endpoints, // already a bounded top-k, sorted desc
201
+ truncated: false,
202
+ });
203
+ }
204
+ }
205
+ finalize() {
206
+ return {
207
+ maxFailureTraces: this.maxFailureTraces,
208
+ maxSlowTransactionSummaries: this.maxSlow,
209
+ failureTraces: this.failureTraces,
210
+ slowTransactions: this.slow,
211
+ };
212
+ }
213
+ pushObservation(b, obs) {
214
+ if (b.observations.length < MAX_OBS_PER_TRACE) {
215
+ b.observations.push(obs);
216
+ return;
217
+ }
218
+ // Full. The exact failure cause — a failed assertion OR a failed request (500 / timeout) —
219
+ // must never be dropped just because a chatty/polling iteration filled the buffer with
220
+ // successful requests first. A LOW-value overflow (a successful request) is dropped; a
221
+ // HIGH-value one evicts the oldest LOW-value observation (or the oldest, if all are
222
+ // high-value, keeping the most recent) to make room.
223
+ if (!isHighValue(obs)) {
224
+ b.droppedObservations += 1;
225
+ return;
226
+ }
227
+ const lowIdx = b.observations.findIndex((o) => !isHighValue(o));
228
+ b.observations.splice(lowIdx >= 0 ? lowIdx : 0, 1);
229
+ b.droppedObservations += 1;
230
+ b.observations.push(obs);
231
+ }
232
+ /** Keep only the TOP_ENDPOINTS slowest endpoints seen this iteration (sorted desc). */
233
+ offerEndpoint(b, ep) {
234
+ if (b.endpoints.length < TOP_ENDPOINTS) {
235
+ b.endpoints.push(ep);
236
+ b.endpoints.sort((x, y) => y.durationMs - x.durationMs);
237
+ return;
238
+ }
239
+ if (ep.durationMs <= b.endpoints[b.endpoints.length - 1].durationMs)
240
+ return;
241
+ b.endpoints[b.endpoints.length - 1] = ep;
242
+ b.endpoints.sort((x, y) => y.durationMs - x.durationMs);
243
+ }
244
+ identityOf(iterationId, b) {
245
+ return {
246
+ scenarioId: b.scenarioId,
247
+ ...(b.scenarioRefId !== undefined ? { scenarioRefId: b.scenarioRefId } : {}),
248
+ producerSlotId: b.producerSlotId,
249
+ iterationId,
250
+ // Data-row attribution: which feeder key produced this sample (strategy isn't known here).
251
+ ...(b.feederKeys !== undefined && Object.keys(b.feederKeys).length > 0
252
+ ? { feeders: Object.fromEntries(Object.entries(b.feederKeys).map(([name, key]) => [name, { key }])) }
253
+ : {}),
254
+ };
255
+ }
256
+ /** Keep this transaction iff it's among the top `maxSlow` slowest (sorted DESC). */
257
+ offerSlow(s) {
258
+ if (this.slow.length < this.maxSlow) {
259
+ this.slow.push(s);
260
+ this.slow.sort((a, c) => c.durationMs - a.durationMs);
261
+ return;
262
+ }
263
+ if (s.durationMs <= this.slow[this.slow.length - 1].durationMs)
264
+ return;
265
+ this.slow[this.slow.length - 1] = s;
266
+ this.slow.sort((a, c) => c.durationMs - a.durationMs);
267
+ }
268
+ }
269
+ //# sourceMappingURL=samples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"samples.js","sourceRoot":"","sources":["../../src/load/samples.ts"],"names":[],"mappings":"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"}