@glubean/runner 0.8.4 → 0.9.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.
@@ -118,6 +118,163 @@ function actualFor(metric, data) {
118
118
  return data.backpressureMs;
119
119
  }
120
120
  }
121
+ /** Metrics a custom-metric threshold can target (keys of `LoadCustomMetricThresholdScope`). */
122
+ const CUSTOM_METRIC_KEYS = ["rate", "sum", "count", "p50", "p90", "p95", "p99"];
123
+ /** Parse a custom-metric expression by reusing the base parser under a unit-compatible
124
+ * proxy metric: `rate` is a fraction (`%` ok, like errorRate), `sum`/`count` are unitless
125
+ * counts (like backlog), `p50..p99` are durations (ms, like latency percentiles) — but
126
+ * ONLY when the trend's declared unit is `"ms"` (or unset). A trend in any other unit
127
+ * ("bytes", "items") is gated in ITS OWN unit: bare numbers only — an `ms`/`s` suffix
128
+ * would silently scale a non-duration value and is rejected instead. */
129
+ function parseCustomExpression(expr, key, unit) {
130
+ if (key === "rate")
131
+ return parseThresholdExpression(expr, "errorRate");
132
+ if (key === "sum" || key === "count")
133
+ return parseThresholdExpression(expr, "backlog");
134
+ if (unit !== undefined && unit !== "ms") {
135
+ const m = EXPR_RE.exec(expr.trim());
136
+ if (!m) {
137
+ throw new Error(`invalid threshold expression ${JSON.stringify(expr)} — expected e.g. "<1%", "<800ms", ">100/s"`);
138
+ }
139
+ if (m[3] !== undefined) {
140
+ throw new Error(`threshold unit "${m[3]}" is not valid for a trend declared with unit "${unit}" (in ${JSON.stringify(expr)}) — use a bare number in the metric's own unit`);
141
+ }
142
+ const num = Number(m[2]);
143
+ if (!Number.isFinite(num))
144
+ throw new Error(`invalid threshold number in ${JSON.stringify(expr)}`);
145
+ return { op: m[1], value: num };
146
+ }
147
+ return parseThresholdExpression(expr, key);
148
+ }
149
+ /** Match a custom-metric threshold target against a set of metric ids, disambiguating a
150
+ * `:` in the metric ID from the `metricId:tag=val` selector: an EXACT id match wins
151
+ * (so `"http:ok"` resolves to the metric named `http:ok`), else the longest id that is
152
+ * a `${id}:` prefix of the target (the tag-selector form). Undefined → no such metric. */
153
+ function matchMetricId(ids, targetKey) {
154
+ let best;
155
+ for (const id of ids) {
156
+ if (id === targetKey)
157
+ return { id }; // exact id → untagged total
158
+ if (targetKey.startsWith(`${id}:`) && (best === undefined || id.length > best.length)) {
159
+ best = id;
160
+ }
161
+ }
162
+ return best !== undefined ? { id: best, suffix: targetKey.slice(best.length + 1) } : undefined;
163
+ }
164
+ /** Resolve a custom-metric threshold target to its folded artifact metric (see
165
+ * `matchMetricId` for the `metricId` vs `metricId:tag=val` disambiguation). */
166
+ function resolveCustomTarget(metrics, targetKey) {
167
+ if (!metrics)
168
+ return undefined;
169
+ const m = matchMetricId(metrics.map((x) => x.metricId), targetKey);
170
+ if (!m)
171
+ return undefined;
172
+ const metric = metrics.find((x) => x.metricId === m.id);
173
+ return metric ? { metric, ...(m.suffix !== undefined ? { suffix: m.suffix } : {}) } : undefined;
174
+ }
175
+ /** The declared custom-metric kinds (mirrors `LoadMetricKind` for runtime checks). */
176
+ const METRIC_KINDS = ["rate", "trend", "counter"];
177
+ /** Gate keys applicable to each kind (`count` is folded for every kind). A key
178
+ * outside its kind's set would evaluate to `undefined` and skip silently. */
179
+ const KIND_GATE_KEYS = {
180
+ rate: ["rate", "count"],
181
+ counter: ["sum", "count"],
182
+ trend: ["count", "p50", "p90", "p95", "p99"],
183
+ };
184
+ /**
185
+ * Fail-fast validation for `loadRunner({ metrics, thresholds.customMetric })`, run
186
+ * BEFORE any iteration (untyped JS config bypasses the compile-time types):
187
+ * - every declaration's `kind` must be in the union — an out-of-union kind would
188
+ * emit schema-invalid custom-metric artifact rows instead of failing config;
189
+ * - every `thresholds.customMetric` gate must target a DECLARED metric with a
190
+ * well-formed tag selector — a typo'd target would otherwise never match a
191
+ * folded series, silently skip, and leave CI green;
192
+ * - every gate key must be applicable to the target's declared kind (`sum` on a
193
+ * `rate`, or a typo'd key, would otherwise evaluate nothing and skip silently).
194
+ * Returns error strings (empty = valid); the caller owns the throw + prefix.
195
+ */
196
+ export function validateLoadMetricsConfig(metrics, customMetricThresholds) {
197
+ const errors = [];
198
+ for (const [id, d] of Object.entries(metrics ?? {})) {
199
+ if (id === "")
200
+ errors.push("metrics: a metric id must be a non-empty string");
201
+ if (d === null || typeof d !== "object" || !METRIC_KINDS.includes(d.kind)) {
202
+ errors.push(`metrics${id ? `.${id}` : ""}: kind must be one of ${METRIC_KINDS.join(" / ")} — declare via rate() / trend() / counter()`);
203
+ }
204
+ else if (d.unit !== undefined && typeof d.unit !== "string") {
205
+ errors.push(`metrics.${id}: unit must be a string`);
206
+ }
207
+ }
208
+ for (const [targetKey, cfg] of Object.entries(customMetricThresholds ?? {})) {
209
+ const m = matchMetricId(Object.keys(metrics ?? {}), targetKey);
210
+ if (!m) {
211
+ errors.push(`thresholds.customMetric["${targetKey}"]: gates a metric that is not declared in \`metrics\``);
212
+ continue;
213
+ }
214
+ if (m.suffix !== undefined && parseTagSuffix(m.suffix) === undefined) {
215
+ errors.push(`thresholds.customMetric["${targetKey}"]: malformed tag selector "${m.suffix}" — expected \`${m.id}:tagKey=tagVal\``);
216
+ }
217
+ // Gate keys must fit the declared kind (skip when the declaration itself is
218
+ // invalid — that already errored above).
219
+ const kind = metrics?.[m.id]?.kind;
220
+ const validKeys = kind !== undefined ? KIND_GATE_KEYS[kind] : undefined;
221
+ if (validKeys === undefined)
222
+ continue;
223
+ for (const key of Object.keys(cfg ?? {})) {
224
+ if (!validKeys.includes(key)) {
225
+ errors.push(`thresholds.customMetric["${targetKey}"].${key}: not applicable to a "${kind}" metric — valid keys: ${validKeys.join(" / ")}`);
226
+ }
227
+ }
228
+ }
229
+ return errors;
230
+ }
231
+ /** Parse a tag suffix (`"a=1,b=2"`) into a tag record, or `undefined` if it is malformed
232
+ * (empty, or any pair lacking `=`) — so `pollOk:` / `pollOk:class` don't silently collapse
233
+ * onto the untagged total. */
234
+ function parseTagSuffix(suffix) {
235
+ const tags = {};
236
+ for (const pair of suffix.split(",")) {
237
+ const eq = pair.indexOf("=");
238
+ if (eq <= 0)
239
+ return undefined; // no `=`, or an empty key
240
+ tags[pair.slice(0, eq)] = pair.slice(eq + 1);
241
+ }
242
+ return Object.keys(tags).length > 0 ? tags : undefined;
243
+ }
244
+ function tagsEqual(a, b) {
245
+ const ak = Object.keys(a);
246
+ return ak.length === Object.keys(b).length && ak.every((k) => a[k] === b[k]);
247
+ }
248
+ /** Find the series a custom-metric threshold targets: the untagged total (no suffix)
249
+ * or the series whose tags exactly match the suffix. */
250
+ function findCustomSeries(metric, suffix) {
251
+ if (suffix === undefined)
252
+ return metric.series.find((s) => Object.keys(s.tags).length === 0);
253
+ const want = parseTagSuffix(suffix);
254
+ if (want === undefined)
255
+ return undefined; // malformed suffix → no match (skipped)
256
+ return metric.series.find((s) => tagsEqual(s.tags, want));
257
+ }
258
+ /** Pull the actual value for a custom-metric key from a folded series (undefined = N/A
259
+ * to this metric's kind, e.g. `rate` on a counter → skipped, not failed). */
260
+ function customActualFor(key, series) {
261
+ switch (key) {
262
+ case "rate":
263
+ return series.rate;
264
+ case "sum":
265
+ return series.sum;
266
+ case "count":
267
+ return series.count;
268
+ case "p50":
269
+ return series.latency?.p50;
270
+ case "p90":
271
+ return series.latency?.p90;
272
+ case "p95":
273
+ return series.latency?.p95;
274
+ case "p99":
275
+ return series.latency?.p99;
276
+ }
277
+ }
121
278
  /**
122
279
  * Evaluate every configured threshold against the artifact, returning the
123
280
  * `ThresholdEvaluation[]` and the refined run pass (crash-free AND every evaluable
@@ -126,6 +283,7 @@ function actualFor(metric, data) {
126
283
  */
127
284
  export function evaluateThresholds(artifact, thresholds) {
128
285
  const out = [];
286
+ const advisories = [];
129
287
  const evalScope = (scope, target, data, cfg) => {
130
288
  if (!data || !cfg)
131
289
  return;
@@ -190,8 +348,59 @@ export function evaluateThresholds(artifact, thresholds) {
190
348
  evalScope("step", stepId, rows.length > 0 ? combineRows(rows) : undefined, cfg);
191
349
  }
192
350
  }
351
+ // Custom metrics (rate / trend / counter). A target is `metricId` (the untagged
352
+ // total) or `metricId:tagKey=tagVal` (a per-series gate). A metric/series not present
353
+ // (never observed) or a key N/A to the metric's kind (`rate` on a counter) is skipped.
354
+ if (thresholds.customMetric) {
355
+ for (const [targetKey, cfg] of Object.entries(thresholds.customMetric)) {
356
+ const resolved = resolveCustomTarget(s.customMetrics, targetKey);
357
+ const series = resolved ? findCustomSeries(resolved.metric, resolved.suffix) : undefined;
358
+ if (!series) {
359
+ // Skip-on-absent is the module policy (a gate can't fail on missing data),
360
+ // but a CONFIGURED gate that measured nothing must not stay silent: it
361
+ // surfaces as an advisory so a metric that never records / a tag series
362
+ // dropped by `maxSeries` truncation can't leave CI green unnoticed.
363
+ advisories.push(resolved
364
+ ? resolved.metric.seriesTruncated && resolved.suffix !== undefined
365
+ ? `customMetric threshold "${targetKey}" was skipped: the targeted tag series was not folded — metric "${resolved.metric.metricId}" hit its maxSeries cap and overflow folded into the untagged total`
366
+ : `customMetric threshold "${targetKey}" was skipped: no samples were folded for the targeted series`
367
+ : `customMetric threshold "${targetKey}" was skipped: metric was declared but never recorded a sample`);
368
+ continue;
369
+ }
370
+ // Iterate the CONFIGURED keys (not just the known set), so a typo'd key on the
371
+ // evaluator-only path (an adapter/imported artifact that bypassed our config
372
+ // validation) surfaces as an advisory instead of skipping silently.
373
+ for (const key of Object.keys(cfg)) {
374
+ if (!CUSTOM_METRIC_KEYS.includes(key)) {
375
+ advisories.push(`customMetric threshold "${targetKey}".${key} was skipped: unknown gate key — valid keys: ${CUSTOM_METRIC_KEYS.join(" / ")}`);
376
+ continue;
377
+ }
378
+ const known = key;
379
+ const expr = cfg[known];
380
+ if (expr === undefined)
381
+ continue;
382
+ const actual = customActualFor(known, series);
383
+ if (actual === undefined) {
384
+ // N/A to this metric's kind (`sum` on a rate). Startup validation rejects
385
+ // this for our own config; an adapter-produced artifact still surfaces it.
386
+ advisories.push(`customMetric threshold "${targetKey}".${key} was skipped: not applicable to a "${resolved?.metric.kind}" metric`);
387
+ continue;
388
+ }
389
+ const { op, value } = parseCustomExpression(expr, known, resolved?.metric.unit);
390
+ out.push({
391
+ scope: "customMetric",
392
+ target: targetKey,
393
+ metric: known,
394
+ expression: expr,
395
+ actual,
396
+ pass: compare(actual, op, value),
397
+ source: "glubean",
398
+ });
399
+ }
400
+ }
401
+ }
193
402
  // A crash already fails the run; otherwise every evaluable threshold must hold.
194
403
  const pass = s.pass && out.every((e) => e.pass);
195
- return { thresholds: out, pass };
404
+ return { thresholds: out, pass, advisories };
196
405
  }
197
406
  //# sourceMappingURL=threshold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"threshold.js","sourceRoot":"","sources":["../../src/load/threshold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"threshold.js","sourceRoot":"","sources":["../../src/load/threshold.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glubean/runner",
3
- "version": "0.8.4",
3
+ "version": "0.9.0",
4
4
  "engines": {
5
5
  "node": ">=22"
6
6
  },
@@ -24,10 +24,10 @@
24
24
  "dotenv": "^16.4.0",
25
25
  "ky": "^2.0.2",
26
26
  "p-queue": "^9.1.0",
27
- "tsx": "^4.19.0",
28
- "@glubean/sdk": "0.8.4",
29
- "@glubean/scanner": "0.8.4",
30
- "@glubean/engine": "0.8.4"
27
+ "tsx": "^4.22.4",
28
+ "@glubean/engine": "0.9.0",
29
+ "@glubean/sdk": "0.9.0",
30
+ "@glubean/scanner": "0.9.0"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/node": "^22.0.0",