@benchkit/format 0.1.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 (148) hide show
  1. package/README.md +521 -0
  2. package/dist/build-otlp-result.d.ts +43 -0
  3. package/dist/build-otlp-result.d.ts.map +1 -0
  4. package/dist/build-otlp-result.js +102 -0
  5. package/dist/build-otlp-result.js.map +1 -0
  6. package/dist/build-otlp-result.test.d.ts +2 -0
  7. package/dist/build-otlp-result.test.d.ts.map +1 -0
  8. package/dist/build-otlp-result.test.js +148 -0
  9. package/dist/build-otlp-result.test.js.map +1 -0
  10. package/dist/compare.d.ts +20 -0
  11. package/dist/compare.d.ts.map +1 -0
  12. package/dist/compare.js +92 -0
  13. package/dist/compare.js.map +1 -0
  14. package/dist/compare.test.d.ts +2 -0
  15. package/dist/compare.test.d.ts.map +1 -0
  16. package/dist/compare.test.js +233 -0
  17. package/dist/compare.test.js.map +1 -0
  18. package/dist/format-comparison-markdown.d.ts +3 -0
  19. package/dist/format-comparison-markdown.d.ts.map +1 -0
  20. package/dist/format-comparison-markdown.js +142 -0
  21. package/dist/format-comparison-markdown.js.map +1 -0
  22. package/dist/format-comparison-markdown.test.d.ts +2 -0
  23. package/dist/format-comparison-markdown.test.d.ts.map +1 -0
  24. package/dist/format-comparison-markdown.test.js +173 -0
  25. package/dist/format-comparison-markdown.test.js.map +1 -0
  26. package/dist/index.d.ts +38 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +100 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/infer-direction.d.ts +10 -0
  31. package/dist/infer-direction.d.ts.map +1 -0
  32. package/dist/infer-direction.js +23 -0
  33. package/dist/infer-direction.js.map +1 -0
  34. package/dist/infer-direction.test.d.ts +2 -0
  35. package/dist/infer-direction.test.d.ts.map +1 -0
  36. package/dist/infer-direction.test.js +28 -0
  37. package/dist/infer-direction.test.js.map +1 -0
  38. package/dist/metrics-batch.d.ts +55 -0
  39. package/dist/metrics-batch.d.ts.map +1 -0
  40. package/dist/metrics-batch.js +296 -0
  41. package/dist/metrics-batch.js.map +1 -0
  42. package/dist/metrics-batch.test.d.ts +2 -0
  43. package/dist/metrics-batch.test.d.ts.map +1 -0
  44. package/dist/metrics-batch.test.js +306 -0
  45. package/dist/metrics-batch.test.js.map +1 -0
  46. package/dist/native-builder.d.ts.map +1 -0
  47. package/dist/native-builder.js.map +1 -0
  48. package/dist/native-builder.test.d.ts.map +1 -0
  49. package/dist/native-builder.test.js.map +1 -0
  50. package/dist/otlp-conventions.d.ts +80 -0
  51. package/dist/otlp-conventions.d.ts.map +1 -0
  52. package/dist/otlp-conventions.js +114 -0
  53. package/dist/otlp-conventions.js.map +1 -0
  54. package/dist/otlp-conventions.test.d.ts +2 -0
  55. package/dist/otlp-conventions.test.d.ts.map +1 -0
  56. package/dist/otlp-conventions.test.js +65 -0
  57. package/dist/otlp-conventions.test.js.map +1 -0
  58. package/dist/otlp-projections.d.ts.map +1 -0
  59. package/dist/otlp-projections.js.map +1 -0
  60. package/dist/otlp-projections.test.d.ts.map +1 -0
  61. package/dist/otlp-projections.test.js.map +1 -0
  62. package/dist/otlp-validation.d.ts +40 -0
  63. package/dist/otlp-validation.d.ts.map +1 -0
  64. package/dist/otlp-validation.js +110 -0
  65. package/dist/otlp-validation.js.map +1 -0
  66. package/dist/otlp-validation.test.d.ts +2 -0
  67. package/dist/otlp-validation.test.d.ts.map +1 -0
  68. package/dist/otlp-validation.test.js +160 -0
  69. package/dist/otlp-validation.test.js.map +1 -0
  70. package/dist/parse-benchmark-action.d.ts +11 -0
  71. package/dist/parse-benchmark-action.d.ts.map +1 -0
  72. package/dist/parse-benchmark-action.js +54 -0
  73. package/dist/parse-benchmark-action.js.map +1 -0
  74. package/dist/parse-benchmark-action.test.d.ts +2 -0
  75. package/dist/parse-benchmark-action.test.d.ts.map +1 -0
  76. package/dist/parse-benchmark-action.test.js +66 -0
  77. package/dist/parse-benchmark-action.test.js.map +1 -0
  78. package/dist/parse-go.d.ts +12 -0
  79. package/dist/parse-go.d.ts.map +1 -0
  80. package/dist/parse-go.js +63 -0
  81. package/dist/parse-go.js.map +1 -0
  82. package/dist/parse-go.test.d.ts +2 -0
  83. package/dist/parse-go.test.d.ts.map +1 -0
  84. package/dist/parse-go.test.js +110 -0
  85. package/dist/parse-go.test.js.map +1 -0
  86. package/dist/parse-hyperfine.d.ts +3 -0
  87. package/dist/parse-hyperfine.d.ts.map +1 -0
  88. package/dist/parse-hyperfine.js +59 -0
  89. package/dist/parse-hyperfine.js.map +1 -0
  90. package/dist/parse-hyperfine.test.d.ts +2 -0
  91. package/dist/parse-hyperfine.test.d.ts.map +1 -0
  92. package/dist/parse-hyperfine.test.js +64 -0
  93. package/dist/parse-hyperfine.test.js.map +1 -0
  94. package/dist/parse-otlp.d.ts +45 -0
  95. package/dist/parse-otlp.d.ts.map +1 -0
  96. package/dist/parse-otlp.js +92 -0
  97. package/dist/parse-otlp.js.map +1 -0
  98. package/dist/parse-otlp.test.d.ts +2 -0
  99. package/dist/parse-otlp.test.d.ts.map +1 -0
  100. package/dist/parse-otlp.test.js +133 -0
  101. package/dist/parse-otlp.test.js.map +1 -0
  102. package/dist/parse-pytest-benchmark.d.ts +3 -0
  103. package/dist/parse-pytest-benchmark.d.ts.map +1 -0
  104. package/dist/parse-pytest-benchmark.js +72 -0
  105. package/dist/parse-pytest-benchmark.js.map +1 -0
  106. package/dist/parse-pytest-benchmark.test.d.ts +2 -0
  107. package/dist/parse-pytest-benchmark.test.d.ts.map +1 -0
  108. package/dist/parse-pytest-benchmark.test.js +85 -0
  109. package/dist/parse-pytest-benchmark.test.js.map +1 -0
  110. package/dist/parse-rust.d.ts +9 -0
  111. package/dist/parse-rust.d.ts.map +1 -0
  112. package/dist/parse-rust.js +50 -0
  113. package/dist/parse-rust.js.map +1 -0
  114. package/dist/parse-rust.test.d.ts +2 -0
  115. package/dist/parse-rust.test.d.ts.map +1 -0
  116. package/dist/parse-rust.test.js +62 -0
  117. package/dist/parse-rust.test.js.map +1 -0
  118. package/dist/parse.d.ts +7 -0
  119. package/dist/parse.d.ts.map +1 -0
  120. package/dist/parse.js +87 -0
  121. package/dist/parse.js.map +1 -0
  122. package/dist/parse.test.d.ts +2 -0
  123. package/dist/parse.test.d.ts.map +1 -0
  124. package/dist/parse.test.js +171 -0
  125. package/dist/parse.test.js.map +1 -0
  126. package/dist/parser-utils.d.ts +17 -0
  127. package/dist/parser-utils.d.ts.map +1 -0
  128. package/dist/parser-utils.js +29 -0
  129. package/dist/parser-utils.js.map +1 -0
  130. package/dist/parser-utils.test.d.ts +2 -0
  131. package/dist/parser-utils.test.d.ts.map +1 -0
  132. package/dist/parser-utils.test.js +27 -0
  133. package/dist/parser-utils.test.js.map +1 -0
  134. package/dist/retry.d.ts +6 -0
  135. package/dist/retry.d.ts.map +1 -0
  136. package/dist/retry.js +18 -0
  137. package/dist/retry.js.map +1 -0
  138. package/dist/retry.test.d.ts +2 -0
  139. package/dist/retry.test.d.ts.map +1 -0
  140. package/dist/retry.test.js +29 -0
  141. package/dist/retry.test.js.map +1 -0
  142. package/dist/test-otlp-helpers.d.ts.map +1 -0
  143. package/dist/test-otlp-helpers.js.map +1 -0
  144. package/dist/types.d.ts +58 -0
  145. package/dist/types.d.ts.map +1 -0
  146. package/dist/types.js +3 -0
  147. package/dist/types.js.map +1 -0
  148. package/package.json +22 -0
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const metrics_batch_js_1 = require("./metrics-batch.js");
9
+ const build_otlp_result_js_1 = require("./build-otlp-result.js");
10
+ // ---------------------------------------------------------------------------
11
+ // Helpers
12
+ // ---------------------------------------------------------------------------
13
+ function makeDoc() {
14
+ return (0, build_otlp_result_js_1.buildOtlpResult)({
15
+ benchmarks: [
16
+ {
17
+ name: "BenchmarkSort",
18
+ tags: { impl: "quicksort" },
19
+ metrics: {
20
+ "ns/op": { value: 1500, unit: "ns", direction: "smaller_is_better" },
21
+ "allocs/op": { value: 3, unit: "1" },
22
+ },
23
+ },
24
+ {
25
+ name: "BenchmarkSearch",
26
+ metrics: {
27
+ "ns/op": { value: 800, unit: "ns", direction: "smaller_is_better" },
28
+ },
29
+ },
30
+ {
31
+ name: "_monitor.cpu_user_pct",
32
+ metrics: {
33
+ "_monitor.cpu_user_pct": { value: 42.5, unit: "%" },
34
+ },
35
+ },
36
+ ],
37
+ context: {
38
+ sourceFormat: "go",
39
+ runId: "123-1",
40
+ kind: "code",
41
+ ref: "refs/heads/main",
42
+ commit: "abc123",
43
+ },
44
+ });
45
+ }
46
+ // ---------------------------------------------------------------------------
47
+ // fromOtlp
48
+ // ---------------------------------------------------------------------------
49
+ (0, node_test_1.describe)("MetricsBatch.fromOtlp", () => {
50
+ (0, node_test_1.it)("flattens OTLP into MetricPoints", () => {
51
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
52
+ strict_1.default.equal(batch.size, 4);
53
+ });
54
+ (0, node_test_1.it)("extracts resource context", () => {
55
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
56
+ strict_1.default.equal(batch.context.runId, "123-1");
57
+ strict_1.default.equal(batch.context.kind, "code");
58
+ strict_1.default.equal(batch.context.sourceFormat, "go");
59
+ strict_1.default.equal(batch.context.ref, "refs/heads/main");
60
+ strict_1.default.equal(batch.context.commit, "abc123");
61
+ });
62
+ (0, node_test_1.it)("extracts scenario from datapoint attributes", () => {
63
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
64
+ const sort = batch.points.filter((p) => p.scenario === "BenchmarkSort");
65
+ strict_1.default.equal(sort.length, 2);
66
+ });
67
+ (0, node_test_1.it)("extracts tags excluding reserved attributes", () => {
68
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
69
+ const p = batch.points.find((p) => p.scenario === "BenchmarkSort" && p.metric === "ns/op");
70
+ strict_1.default.ok(p);
71
+ strict_1.default.equal(p.tags["impl"], "quicksort");
72
+ strict_1.default.equal(p.tags["benchkit.scenario"], undefined);
73
+ });
74
+ (0, node_test_1.it)("extracts direction and unit", () => {
75
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
76
+ const p = batch.points.find((p) => p.scenario === "BenchmarkSort" && p.metric === "ns/op");
77
+ strict_1.default.ok(p);
78
+ strict_1.default.equal(p.direction, "smaller_is_better");
79
+ strict_1.default.equal(p.unit, "ns");
80
+ });
81
+ });
82
+ // ---------------------------------------------------------------------------
83
+ // fromPoints
84
+ // ---------------------------------------------------------------------------
85
+ (0, node_test_1.describe)("MetricsBatch.fromPoints", () => {
86
+ (0, node_test_1.it)("creates batch from raw points", () => {
87
+ const batch = metrics_batch_js_1.MetricsBatch.fromPoints([
88
+ { scenario: "A", series: "A", metric: "x", value: 1, unit: "", direction: undefined, role: undefined, tags: {}, timestamp: undefined },
89
+ ]);
90
+ strict_1.default.equal(batch.size, 1);
91
+ strict_1.default.equal(batch.context.runId, undefined);
92
+ });
93
+ });
94
+ // ---------------------------------------------------------------------------
95
+ // Scalar accessors
96
+ // ---------------------------------------------------------------------------
97
+ (0, node_test_1.describe)("MetricsBatch accessors", () => {
98
+ (0, node_test_1.it)("scenarios returns sorted unique scenarios", () => {
99
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
100
+ strict_1.default.deepEqual(batch.scenarios, ["BenchmarkSearch", "BenchmarkSort", "_monitor.cpu_user_pct"]);
101
+ });
102
+ (0, node_test_1.it)("metricNames returns sorted unique metric names", () => {
103
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
104
+ strict_1.default.deepEqual(batch.metricNames, ["_monitor.cpu_user_pct", "allocs/op", "ns/op"]);
105
+ });
106
+ });
107
+ // ---------------------------------------------------------------------------
108
+ // Filter
109
+ // ---------------------------------------------------------------------------
110
+ (0, node_test_1.describe)("MetricsBatch.filter", () => {
111
+ (0, node_test_1.it)("filter keeps matching points", () => {
112
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
113
+ const filtered = batch.filter((p) => p.value > 100);
114
+ strict_1.default.equal(filtered.size, 2); // 1500, 800
115
+ });
116
+ (0, node_test_1.it)("forScenario filters by scenario name", () => {
117
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
118
+ const sort = batch.forScenario("BenchmarkSort");
119
+ strict_1.default.equal(sort.size, 2);
120
+ strict_1.default.ok(sort.points.every((p) => p.scenario === "BenchmarkSort"));
121
+ });
122
+ (0, node_test_1.it)("forMetric filters by metric name", () => {
123
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
124
+ const nsOp = batch.forMetric("ns/op");
125
+ strict_1.default.equal(nsOp.size, 2); // Sort + Search
126
+ });
127
+ (0, node_test_1.it)("withoutMonitor excludes monitor metrics", () => {
128
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
129
+ const noMonitor = batch.withoutMonitor();
130
+ strict_1.default.equal(noMonitor.size, 3);
131
+ strict_1.default.ok(noMonitor.points.every((p) => !p.metric.startsWith("_monitor.")));
132
+ });
133
+ (0, node_test_1.it)("onlyMonitor keeps only monitor metrics", () => {
134
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
135
+ const monitor = batch.onlyMonitor();
136
+ strict_1.default.equal(monitor.size, 1);
137
+ strict_1.default.equal(monitor.points[0].metric, "_monitor.cpu_user_pct");
138
+ });
139
+ (0, node_test_1.it)("filters are chainable", () => {
140
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
141
+ const result = batch.withoutMonitor().forMetric("ns/op").forScenario("BenchmarkSort");
142
+ strict_1.default.equal(result.size, 1);
143
+ strict_1.default.equal(result.points[0].value, 1500);
144
+ });
145
+ });
146
+ // ---------------------------------------------------------------------------
147
+ // GroupBy
148
+ // ---------------------------------------------------------------------------
149
+ (0, node_test_1.describe)("MetricsBatch.groupBy", () => {
150
+ (0, node_test_1.it)("groupByScenario groups points by scenario", () => {
151
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
152
+ const groups = batch.groupByScenario();
153
+ strict_1.default.equal(groups.size, 3);
154
+ strict_1.default.equal(groups.get("BenchmarkSort").size, 2);
155
+ strict_1.default.equal(groups.get("BenchmarkSearch").size, 1);
156
+ });
157
+ (0, node_test_1.it)("groupByMetric groups points by metric name", () => {
158
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
159
+ const groups = batch.groupByMetric();
160
+ strict_1.default.equal(groups.get("ns/op").size, 2);
161
+ strict_1.default.equal(groups.get("allocs/op").size, 1);
162
+ });
163
+ (0, node_test_1.it)("groupBySeries uses name + sorted tags", () => {
164
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
165
+ const groups = batch.groupBySeries();
166
+ // BenchmarkSort has tag impl=quicksort
167
+ strict_1.default.ok(groups.has("BenchmarkSort [impl=quicksort]"));
168
+ // BenchmarkSearch has no tags
169
+ strict_1.default.ok(groups.has("BenchmarkSearch"));
170
+ });
171
+ (0, node_test_1.it)("custom groupBy works", () => {
172
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
173
+ const groups = batch.groupBy((p) => p.unit);
174
+ strict_1.default.ok(groups.has("ns"));
175
+ strict_1.default.ok(groups.has("1"));
176
+ });
177
+ });
178
+ // ---------------------------------------------------------------------------
179
+ // Merge
180
+ // ---------------------------------------------------------------------------
181
+ (0, node_test_1.describe)("MetricsBatch.merge", () => {
182
+ (0, node_test_1.it)("merges multiple batches", () => {
183
+ const a = metrics_batch_js_1.MetricsBatch.fromPoints([
184
+ { scenario: "A", series: "A", metric: "x", value: 1, unit: "", direction: undefined, role: undefined, tags: {}, timestamp: undefined },
185
+ ], { runId: "run-1", kind: undefined, sourceFormat: "go", commit: undefined, ref: undefined, workflow: undefined, job: undefined, runAttempt: undefined, runner: undefined, serviceName: undefined });
186
+ const b = metrics_batch_js_1.MetricsBatch.fromPoints([
187
+ { scenario: "B", series: "B", metric: "y", value: 2, unit: "", direction: undefined, role: undefined, tags: {}, timestamp: undefined },
188
+ ]);
189
+ const merged = metrics_batch_js_1.MetricsBatch.merge(a, b);
190
+ strict_1.default.equal(merged.size, 2);
191
+ strict_1.default.equal(merged.context.runId, "run-1"); // uses first batch's context
192
+ });
193
+ (0, node_test_1.it)("merge of empty array returns empty batch", () => {
194
+ const merged = metrics_batch_js_1.MetricsBatch.merge();
195
+ strict_1.default.equal(merged.size, 0);
196
+ });
197
+ });
198
+ // ---------------------------------------------------------------------------
199
+ // toOtlp round-trip
200
+ // ---------------------------------------------------------------------------
201
+ (0, node_test_1.describe)("MetricsBatch.toOtlp", () => {
202
+ (0, node_test_1.it)("round-trips through fromOtlp → toOtlp → fromOtlp", () => {
203
+ const original = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
204
+ const doc = original.toOtlp();
205
+ const restored = metrics_batch_js_1.MetricsBatch.fromOtlp(doc);
206
+ strict_1.default.equal(restored.size, original.size);
207
+ strict_1.default.deepEqual(restored.scenarios, original.scenarios);
208
+ strict_1.default.deepEqual(restored.metricNames, original.metricNames);
209
+ strict_1.default.equal(restored.context.runId, original.context.runId);
210
+ strict_1.default.equal(restored.context.sourceFormat, original.context.sourceFormat);
211
+ });
212
+ (0, node_test_1.it)("preserves values through round-trip", () => {
213
+ const original = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
214
+ const restored = metrics_batch_js_1.MetricsBatch.fromOtlp(original.toOtlp());
215
+ for (const orig of original.points) {
216
+ const found = restored.points.find((p) => p.scenario === orig.scenario && p.metric === orig.metric);
217
+ strict_1.default.ok(found, `missing ${orig.scenario}/${orig.metric}`);
218
+ strict_1.default.equal(found.value, orig.value);
219
+ strict_1.default.equal(found.unit, orig.unit);
220
+ strict_1.default.equal(found.direction, orig.direction);
221
+ }
222
+ });
223
+ (0, node_test_1.it)("preserves tags through round-trip", () => {
224
+ const original = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
225
+ const restored = metrics_batch_js_1.MetricsBatch.fromOtlp(original.toOtlp());
226
+ const origSort = original.points.find((p) => p.scenario === "BenchmarkSort" && p.metric === "ns/op");
227
+ const restoredSort = restored.points.find((p) => p.scenario === "BenchmarkSort" && p.metric === "ns/op");
228
+ strict_1.default.ok(origSort && restoredSort);
229
+ strict_1.default.deepEqual(restoredSort.tags, origSort.tags);
230
+ });
231
+ (0, node_test_1.it)("toJson returns valid JSON", () => {
232
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
233
+ const json = batch.toJson();
234
+ const parsed = JSON.parse(json);
235
+ strict_1.default.ok(parsed.resourceMetrics);
236
+ strict_1.default.ok(parsed.resourceMetrics[0].scopeMetrics);
237
+ });
238
+ });
239
+ // ---------------------------------------------------------------------------
240
+ // seriesKey
241
+ // ---------------------------------------------------------------------------
242
+ (0, node_test_1.describe)("seriesKey", () => {
243
+ (0, node_test_1.it)("returns series name when no tags", () => {
244
+ const key = (0, metrics_batch_js_1.seriesKey)({
245
+ scenario: "A", series: "A", metric: "x", value: 1,
246
+ unit: "", direction: undefined, role: undefined, tags: {}, timestamp: undefined,
247
+ });
248
+ strict_1.default.equal(key, "A");
249
+ });
250
+ (0, node_test_1.it)("appends sorted tags", () => {
251
+ const key = (0, metrics_batch_js_1.seriesKey)({
252
+ scenario: "A", series: "A", metric: "x", value: 1,
253
+ unit: "", direction: undefined, role: undefined,
254
+ tags: { z: "3", a: "1" }, timestamp: undefined,
255
+ });
256
+ strict_1.default.equal(key, "A [a=1,z=3]");
257
+ });
258
+ });
259
+ // ---------------------------------------------------------------------------
260
+ // Real-world usage patterns (from consumer audit)
261
+ // ---------------------------------------------------------------------------
262
+ (0, node_test_1.describe)("Consumer patterns", () => {
263
+ (0, node_test_1.it)("stash: split bench vs monitor for markdown", () => {
264
+ const batch = metrics_batch_js_1.MetricsBatch.fromOtlp(makeDoc());
265
+ const benchmarks = batch.withoutMonitor().groupByScenario();
266
+ const monitor = batch.onlyMonitor().groupByScenario();
267
+ strict_1.default.equal(benchmarks.size, 2);
268
+ strict_1.default.equal(monitor.size, 1);
269
+ // Each scenario group has its metrics
270
+ const sort = benchmarks.get("BenchmarkSort");
271
+ strict_1.default.deepEqual(sort.metricNames, ["allocs/op", "ns/op"]);
272
+ });
273
+ (0, node_test_1.it)("aggregate: build series with averaged repeated runs", () => {
274
+ // Simulate 3 runs of BenchmarkSort with different values
275
+ const runs = [100, 200, 300].map((v) => metrics_batch_js_1.MetricsBatch.fromPoints([
276
+ { scenario: "BenchmarkSort", series: "BenchmarkSort", metric: "ns/op", value: v, unit: "ns", direction: "smaller_is_better", role: "outcome", tags: {}, timestamp: undefined },
277
+ ]));
278
+ const merged = metrics_batch_js_1.MetricsBatch.merge(...runs);
279
+ const byMetric = merged.groupByMetric();
280
+ const nsOp = byMetric.get("ns/op");
281
+ const values = nsOp.points.map((p) => p.value);
282
+ const avg = values.reduce((a, b) => a + b, 0) / values.length;
283
+ strict_1.default.equal(avg, 200);
284
+ strict_1.default.equal(Math.max(...values) - Math.min(...values), 200); // range
285
+ });
286
+ (0, node_test_1.it)("compare: current vs averaged baseline", () => {
287
+ const current = metrics_batch_js_1.MetricsBatch.fromPoints([
288
+ { scenario: "BenchmarkSort", series: "BenchmarkSort", metric: "ns/op", value: 150, unit: "ns", direction: "smaller_is_better", role: "outcome", tags: {}, timestamp: undefined },
289
+ ]);
290
+ const baseline = metrics_batch_js_1.MetricsBatch.merge(metrics_batch_js_1.MetricsBatch.fromPoints([
291
+ { scenario: "BenchmarkSort", series: "BenchmarkSort", metric: "ns/op", value: 100, unit: "ns", direction: "smaller_is_better", role: "outcome", tags: {}, timestamp: undefined },
292
+ ]), metrics_batch_js_1.MetricsBatch.fromPoints([
293
+ { scenario: "BenchmarkSort", series: "BenchmarkSort", metric: "ns/op", value: 100, unit: "ns", direction: "smaller_is_better", role: "outcome", tags: {}, timestamp: undefined },
294
+ ]));
295
+ for (const point of current.points) {
296
+ const baselineValues = baseline
297
+ .forScenario(point.scenario)
298
+ .forMetric(point.metric)
299
+ .points.map((p) => p.value);
300
+ const baselineAvg = baselineValues.reduce((a, b) => a + b, 0) / baselineValues.length;
301
+ const pctChange = ((point.value - baselineAvg) / baselineAvg) * 100;
302
+ strict_1.default.equal(pctChange, 50); // 150 vs 100 = 50% regression
303
+ }
304
+ });
305
+ });
306
+ //# sourceMappingURL=metrics-batch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-batch.test.js","sourceRoot":"","sources":["../src/metrics-batch.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-builder.d.ts","sourceRoot":"","sources":["../src/native-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EAEf,MAAM,EACN,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAUpB;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAM,GAAG,MAAM,CAQjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAgBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,CAKzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,eAAe,GAAG,gBAAgB,EAChD,MAAM,SAAI,GACT,MAAM,CAKR"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-builder.js","sourceRoot":"","sources":["../src/native-builder.ts"],"names":[],"mappings":";;AA8BA,oCAQC;AAYD,0CAgBC;AAWD,8CAKC;AAaD,sDAQC;AAvGD,6DAAsD;AACtD,uDAAgD;AAWhD,SAAS,YAAY,CAAC,OAA4B;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;KAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,KAAa,EAAE,UAA2C,EAAE;IACvF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mCAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjG,OAAO;QACL,KAAK;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS;QACT,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAAC,IAAyB;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CACH,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QAC9C,OAAO;QACP,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;KACtD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAAC,IAAsB;IACtD,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1E,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CACnC,YAAgD,EAChD,MAAM,GAAG,CAAC;IAEV,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAgC,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,IAAA,6BAAW,EAAC,IAAI,CAAC,CAAC;IAClB,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-builder.test.d.ts","sourceRoot":"","sources":["../src/native-builder.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-builder.test.js","sourceRoot":"","sources":["../src/native-builder.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Benchkit OTLP Semantic Conventions
3
+ *
4
+ * Canonical attribute names and valid values for the benchkit OTLP contract.
5
+ * Source of truth: docs/otlp-semantic-conventions.md
6
+ *
7
+ * Every benchkit OTLP producer and consumer should import from this module
8
+ * rather than hard-coding attribute strings.
9
+ */
10
+ /** Unique run artifact identifier, e.g. `"12345678-1"`. Required. */
11
+ export declare const ATTR_RUN_ID = "benchkit.run_id";
12
+ /** Benchmark kind: code, workflow, or hybrid. Required. */
13
+ export declare const ATTR_KIND = "benchkit.kind";
14
+ /** Parser / origin format that produced the OTLP data. Required. */
15
+ export declare const ATTR_SOURCE_FORMAT = "benchkit.source_format";
16
+ /** Git ref (branch or tag). Strongly recommended. */
17
+ export declare const ATTR_REF = "benchkit.ref";
18
+ /** Full commit SHA. Strongly recommended. */
19
+ export declare const ATTR_COMMIT = "benchkit.commit";
20
+ /** GitHub Actions workflow name. Strongly recommended. */
21
+ export declare const ATTR_WORKFLOW = "benchkit.workflow";
22
+ /** GitHub Actions job name. Strongly recommended. */
23
+ export declare const ATTR_JOB = "benchkit.job";
24
+ /** Retry/rerun attempt number. Optional. */
25
+ export declare const ATTR_RUN_ATTEMPT = "benchkit.run_attempt";
26
+ /** Human-readable runner description. Optional. */
27
+ export declare const ATTR_RUNNER = "benchkit.runner";
28
+ /** OpenTelemetry standard service name. Strongly recommended. */
29
+ export declare const ATTR_SERVICE_NAME = "service.name";
30
+ /** Application or service version. Optional. */
31
+ export declare const ATTR_SERVICE_VERSION = "service.version";
32
+ /** All resource attributes that MUST be present. */
33
+ export declare const REQUIRED_RESOURCE_ATTRIBUTES: readonly ["benchkit.run_id", "benchkit.kind", "benchkit.source_format"];
34
+ /** Primary benchmark scenario / workload name. Required. */
35
+ export declare const ATTR_SCENARIO = "benchkit.scenario";
36
+ /** Series identity within a scenario. Required. */
37
+ export declare const ATTR_SERIES = "benchkit.series";
38
+ /** Metric improvement direction. Required for comparison-eligible metrics. */
39
+ export declare const ATTR_METRIC_DIRECTION = "benchkit.metric.direction";
40
+ /** Metric role: outcome or diagnostic. Recommended. */
41
+ export declare const ATTR_METRIC_ROLE = "benchkit.metric.role";
42
+ /** Implementation / product label. Recommended. */
43
+ export declare const ATTR_IMPL = "benchkit.impl";
44
+ /** Free-form grouping: dataset. Optional. */
45
+ export declare const ATTR_DATASET = "benchkit.dataset";
46
+ /** Free-form grouping: transport. Optional. */
47
+ export declare const ATTR_TRANSPORT = "benchkit.transport";
48
+ /** Free-form grouping: batch size. Optional. */
49
+ export declare const ATTR_BATCH_SIZE = "benchkit.batch_size";
50
+ /** Free-form grouping: process. Optional. */
51
+ export declare const ATTR_PROCESS = "benchkit.process";
52
+ /** Free-form grouping: pipeline. Optional. */
53
+ export declare const ATTR_PIPELINE = "benchkit.pipeline";
54
+ /** Free-form grouping: variant. Optional. */
55
+ export declare const ATTR_VARIANT = "benchkit.variant";
56
+ /**
57
+ * Datapoint attributes consumed internally by the projection logic.
58
+ * These are not forwarded as user-visible benchmark tags.
59
+ */
60
+ export declare const RESERVED_DATAPOINT_ATTRIBUTES: Set<string>;
61
+ /** Valid values for `benchkit.kind`. */
62
+ export declare const VALID_RUN_KINDS: readonly ["code", "workflow", "hybrid"];
63
+ export type RunKind = (typeof VALID_RUN_KINDS)[number];
64
+ /** Valid values for `benchkit.metric.direction`. */
65
+ export declare const VALID_DIRECTIONS: readonly ["bigger_is_better", "smaller_is_better"];
66
+ export type Direction = (typeof VALID_DIRECTIONS)[number];
67
+ /** Valid values for `benchkit.metric.role`. */
68
+ export declare const VALID_METRIC_ROLES: readonly ["outcome", "diagnostic"];
69
+ export type MetricRole = (typeof VALID_METRIC_ROLES)[number];
70
+ /** Valid values for `benchkit.source_format`. */
71
+ export declare const VALID_SOURCE_FORMATS: readonly ["go", "native", "otlp", "rust", "hyperfine", "pytest-benchmark", "benchmark-action"];
72
+ export type SourceFormat = (typeof VALID_SOURCE_FORMATS)[number];
73
+ /** Default Git branch name used for storing benchmark data. */
74
+ export declare const DEFAULT_DATA_BRANCH = "bench-data";
75
+ /**
76
+ * Prefix reserved for infrastructure / diagnostic metrics emitted by the
77
+ * benchkit monitor action (e.g. `_monitor.cpu_user_pct`).
78
+ */
79
+ export declare const MONITOR_METRIC_PREFIX = "_monitor.";
80
+ //# sourceMappingURL=otlp-conventions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlp-conventions.d.ts","sourceRoot":"","sources":["../src/otlp-conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,qEAAqE;AACrE,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,2DAA2D;AAC3D,eAAO,MAAM,SAAS,kBAAkB,CAAC;AAEzC,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D,qDAAqD;AACrD,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAEvC,6CAA6C;AAC7C,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,0DAA0D;AAC1D,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAEjD,qDAAqD;AACrD,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAEvC,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD,mDAAmD;AACnD,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD,gDAAgD;AAChD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,oDAAoD;AACpD,eAAO,MAAM,4BAA4B,yEAI/B,CAAC;AAMX,4DAA4D;AAC5D,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAEjD,mDAAmD;AACnD,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAEjE,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD,mDAAmD;AACnD,eAAO,MAAM,SAAS,kBAAkB,CAAC;AAEzC,6CAA6C;AAC7C,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAE/C,+CAA+C;AAC/C,eAAO,MAAM,cAAc,uBAAuB,CAAC;AAEnD,gDAAgD;AAChD,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD,6CAA6C;AAC7C,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAE/C,8CAA8C;AAC9C,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAEjD,6CAA6C;AAC7C,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,6BAA6B,aAKxC,CAAC;AAMH,wCAAwC;AACxC,eAAO,MAAM,eAAe,yCAA0C,CAAC;AACvE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,oDAGnB,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,oCAAqC,CAAC;AACrE,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,iDAAiD;AACjD,eAAO,MAAM,oBAAoB,gGAQvB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMjE,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAMhD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,cAAc,CAAC"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * Benchkit OTLP Semantic Conventions
4
+ *
5
+ * Canonical attribute names and valid values for the benchkit OTLP contract.
6
+ * Source of truth: docs/otlp-semantic-conventions.md
7
+ *
8
+ * Every benchkit OTLP producer and consumer should import from this module
9
+ * rather than hard-coding attribute strings.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MONITOR_METRIC_PREFIX = exports.DEFAULT_DATA_BRANCH = exports.VALID_SOURCE_FORMATS = exports.VALID_METRIC_ROLES = exports.VALID_DIRECTIONS = exports.VALID_RUN_KINDS = exports.RESERVED_DATAPOINT_ATTRIBUTES = exports.ATTR_VARIANT = exports.ATTR_PIPELINE = exports.ATTR_PROCESS = exports.ATTR_BATCH_SIZE = exports.ATTR_TRANSPORT = exports.ATTR_DATASET = exports.ATTR_IMPL = exports.ATTR_METRIC_ROLE = exports.ATTR_METRIC_DIRECTION = exports.ATTR_SERIES = exports.ATTR_SCENARIO = exports.REQUIRED_RESOURCE_ATTRIBUTES = exports.ATTR_SERVICE_VERSION = exports.ATTR_SERVICE_NAME = exports.ATTR_RUNNER = exports.ATTR_RUN_ATTEMPT = exports.ATTR_JOB = exports.ATTR_WORKFLOW = exports.ATTR_COMMIT = exports.ATTR_REF = exports.ATTR_SOURCE_FORMAT = exports.ATTR_KIND = exports.ATTR_RUN_ID = void 0;
13
+ // ---------------------------------------------------------------------------
14
+ // Resource attributes (run-level metadata on every ResourceMetrics)
15
+ // ---------------------------------------------------------------------------
16
+ /** Unique run artifact identifier, e.g. `"12345678-1"`. Required. */
17
+ exports.ATTR_RUN_ID = "benchkit.run_id";
18
+ /** Benchmark kind: code, workflow, or hybrid. Required. */
19
+ exports.ATTR_KIND = "benchkit.kind";
20
+ /** Parser / origin format that produced the OTLP data. Required. */
21
+ exports.ATTR_SOURCE_FORMAT = "benchkit.source_format";
22
+ /** Git ref (branch or tag). Strongly recommended. */
23
+ exports.ATTR_REF = "benchkit.ref";
24
+ /** Full commit SHA. Strongly recommended. */
25
+ exports.ATTR_COMMIT = "benchkit.commit";
26
+ /** GitHub Actions workflow name. Strongly recommended. */
27
+ exports.ATTR_WORKFLOW = "benchkit.workflow";
28
+ /** GitHub Actions job name. Strongly recommended. */
29
+ exports.ATTR_JOB = "benchkit.job";
30
+ /** Retry/rerun attempt number. Optional. */
31
+ exports.ATTR_RUN_ATTEMPT = "benchkit.run_attempt";
32
+ /** Human-readable runner description. Optional. */
33
+ exports.ATTR_RUNNER = "benchkit.runner";
34
+ /** OpenTelemetry standard service name. Strongly recommended. */
35
+ exports.ATTR_SERVICE_NAME = "service.name";
36
+ /** Application or service version. Optional. */
37
+ exports.ATTR_SERVICE_VERSION = "service.version";
38
+ /** All resource attributes that MUST be present. */
39
+ exports.REQUIRED_RESOURCE_ATTRIBUTES = [
40
+ exports.ATTR_RUN_ID,
41
+ exports.ATTR_KIND,
42
+ exports.ATTR_SOURCE_FORMAT,
43
+ ];
44
+ // ---------------------------------------------------------------------------
45
+ // Datapoint attributes (metric identity on every data-point)
46
+ // ---------------------------------------------------------------------------
47
+ /** Primary benchmark scenario / workload name. Required. */
48
+ exports.ATTR_SCENARIO = "benchkit.scenario";
49
+ /** Series identity within a scenario. Required. */
50
+ exports.ATTR_SERIES = "benchkit.series";
51
+ /** Metric improvement direction. Required for comparison-eligible metrics. */
52
+ exports.ATTR_METRIC_DIRECTION = "benchkit.metric.direction";
53
+ /** Metric role: outcome or diagnostic. Recommended. */
54
+ exports.ATTR_METRIC_ROLE = "benchkit.metric.role";
55
+ /** Implementation / product label. Recommended. */
56
+ exports.ATTR_IMPL = "benchkit.impl";
57
+ /** Free-form grouping: dataset. Optional. */
58
+ exports.ATTR_DATASET = "benchkit.dataset";
59
+ /** Free-form grouping: transport. Optional. */
60
+ exports.ATTR_TRANSPORT = "benchkit.transport";
61
+ /** Free-form grouping: batch size. Optional. */
62
+ exports.ATTR_BATCH_SIZE = "benchkit.batch_size";
63
+ /** Free-form grouping: process. Optional. */
64
+ exports.ATTR_PROCESS = "benchkit.process";
65
+ /** Free-form grouping: pipeline. Optional. */
66
+ exports.ATTR_PIPELINE = "benchkit.pipeline";
67
+ /** Free-form grouping: variant. Optional. */
68
+ exports.ATTR_VARIANT = "benchkit.variant";
69
+ /**
70
+ * Datapoint attributes consumed internally by the projection logic.
71
+ * These are not forwarded as user-visible benchmark tags.
72
+ */
73
+ exports.RESERVED_DATAPOINT_ATTRIBUTES = new Set([
74
+ exports.ATTR_SCENARIO,
75
+ exports.ATTR_SERIES,
76
+ exports.ATTR_METRIC_DIRECTION,
77
+ exports.ATTR_METRIC_ROLE,
78
+ ]);
79
+ // ---------------------------------------------------------------------------
80
+ // Valid enum values
81
+ // ---------------------------------------------------------------------------
82
+ /** Valid values for `benchkit.kind`. */
83
+ exports.VALID_RUN_KINDS = ["code", "workflow", "hybrid"];
84
+ /** Valid values for `benchkit.metric.direction`. */
85
+ exports.VALID_DIRECTIONS = [
86
+ "bigger_is_better",
87
+ "smaller_is_better",
88
+ ];
89
+ /** Valid values for `benchkit.metric.role`. */
90
+ exports.VALID_METRIC_ROLES = ["outcome", "diagnostic"];
91
+ /** Valid values for `benchkit.source_format`. */
92
+ exports.VALID_SOURCE_FORMATS = [
93
+ "go",
94
+ "native",
95
+ "otlp",
96
+ "rust",
97
+ "hyperfine",
98
+ "pytest-benchmark",
99
+ "benchmark-action",
100
+ ];
101
+ // ---------------------------------------------------------------------------
102
+ // Defaults
103
+ // ---------------------------------------------------------------------------
104
+ /** Default Git branch name used for storing benchmark data. */
105
+ exports.DEFAULT_DATA_BRANCH = "bench-data";
106
+ // ---------------------------------------------------------------------------
107
+ // Metric naming conventions
108
+ // ---------------------------------------------------------------------------
109
+ /**
110
+ * Prefix reserved for infrastructure / diagnostic metrics emitted by the
111
+ * benchkit monitor action (e.g. `_monitor.cpu_user_pct`).
112
+ */
113
+ exports.MONITOR_METRIC_PREFIX = "_monitor.";
114
+ //# sourceMappingURL=otlp-conventions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlp-conventions.js","sourceRoot":"","sources":["../src/otlp-conventions.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E,qEAAqE;AACxD,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAE7C,2DAA2D;AAC9C,QAAA,SAAS,GAAG,eAAe,CAAC;AAEzC,oEAAoE;AACvD,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,qDAAqD;AACxC,QAAA,QAAQ,GAAG,cAAc,CAAC;AAEvC,6CAA6C;AAChC,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAE7C,0DAA0D;AAC7C,QAAA,aAAa,GAAG,mBAAmB,CAAC;AAEjD,qDAAqD;AACxC,QAAA,QAAQ,GAAG,cAAc,CAAC;AAEvC,4CAA4C;AAC/B,QAAA,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,mDAAmD;AACtC,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAE7C,iEAAiE;AACpD,QAAA,iBAAiB,GAAG,cAAc,CAAC;AAEhD,gDAAgD;AACnC,QAAA,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD,oDAAoD;AACvC,QAAA,4BAA4B,GAAG;IAC1C,mBAAW;IACX,iBAAS;IACT,0BAAkB;CACV,CAAC;AAEX,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,4DAA4D;AAC/C,QAAA,aAAa,GAAG,mBAAmB,CAAC;AAEjD,mDAAmD;AACtC,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAE7C,8EAA8E;AACjE,QAAA,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,uDAAuD;AAC1C,QAAA,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,mDAAmD;AACtC,QAAA,SAAS,GAAG,eAAe,CAAC;AAEzC,6CAA6C;AAChC,QAAA,YAAY,GAAG,kBAAkB,CAAC;AAE/C,+CAA+C;AAClC,QAAA,cAAc,GAAG,oBAAoB,CAAC;AAEnD,gDAAgD;AACnC,QAAA,eAAe,GAAG,qBAAqB,CAAC;AAErD,6CAA6C;AAChC,QAAA,YAAY,GAAG,kBAAkB,CAAC;AAE/C,8CAA8C;AACjC,QAAA,aAAa,GAAG,mBAAmB,CAAC;AAEjD,6CAA6C;AAChC,QAAA,YAAY,GAAG,kBAAkB,CAAC;AAE/C;;;GAGG;AACU,QAAA,6BAA6B,GAAG,IAAI,GAAG,CAAC;IACnD,qBAAa;IACb,mBAAW;IACX,6BAAqB;IACrB,wBAAgB;CACjB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,wCAAwC;AAC3B,QAAA,eAAe,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAGvE,oDAAoD;AACvC,QAAA,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,mBAAmB;CACX,CAAC;AAGX,+CAA+C;AAClC,QAAA,kBAAkB,GAAG,CAAC,SAAS,EAAE,YAAY,CAAU,CAAC;AAGrE,iDAAiD;AACpC,QAAA,oBAAoB,GAAG;IAClC,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,kBAAkB;IAClB,kBAAkB;CACV,CAAC;AAGX,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,+DAA+D;AAClD,QAAA,mBAAmB,GAAG,YAAY,CAAC;AAEhD,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E;;;GAGG;AACU,QAAA,qBAAqB,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=otlp-conventions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlp-conventions.test.d.ts","sourceRoot":"","sources":["../src/otlp-conventions.test.ts"],"names":[],"mappings":""}