pond-ts 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +108 -1
- package/dist/LiveAggregation.d.ts.map +1 -1
- package/dist/LiveAggregation.js +5 -19
- package/dist/LiveAggregation.js.map +1 -1
- package/dist/LivePartitionedSyncRolling.d.ts.map +1 -1
- package/dist/LivePartitionedSyncRolling.js +6 -18
- package/dist/LivePartitionedSyncRolling.js.map +1 -1
- package/dist/LiveRollingAggregation.d.ts.map +1 -1
- package/dist/LiveRollingAggregation.js +7 -20
- package/dist/LiveRollingAggregation.js.map +1 -1
- package/dist/reducers/index.d.ts +36 -1
- package/dist/reducers/index.d.ts.map +1 -1
- package/dist/reducers/index.js +67 -0
- package/dist/reducers/index.js.map +1 -1
- package/dist/reducers/samples.d.ts +22 -0
- package/dist/reducers/samples.d.ts.map +1 -0
- package/dist/reducers/samples.js +80 -0
- package/dist/reducers/samples.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,10 +7,117 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
7
7
|
file covers both packages. Pre-1.0: minor bumps may include new features and
|
|
8
8
|
type-level changes; patch bumps are strictly additive.
|
|
9
9
|
|
|
10
|
-
[Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.14.
|
|
10
|
+
[Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.14.1...HEAD
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [0.14.1] — 2026-05-03
|
|
15
|
+
|
|
16
|
+
The "samples reducer + lifted custom-fn guard" release. Surfaced by
|
|
17
|
+
the gRPC experiment's step-4 (anomaly density) walkback: the use
|
|
18
|
+
case "compute counts of values exceeding `k·σ` from a baseline" needs
|
|
19
|
+
the **raw values** from the rolling window, but pond's existing
|
|
20
|
+
built-ins all collapse to scalars or deduplicate. Custom-function
|
|
21
|
+
reducers — which would cover the use case cleanly — worked on batch
|
|
22
|
+
but were rejected at runtime on live with a `TypeError` pointing at
|
|
23
|
+
`AggregateOutputMap` aliases (which don't actually solve "all values"
|
|
24
|
+
either). Two related changes ship together to close both gaps.
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- **`'samples'` built-in reducer.** Returns the bucket's defined
|
|
29
|
+
values as an array, in arrival order, with duplicates preserved.
|
|
30
|
+
Sits beside `'unique'` (which deduplicates) and `'top${N}'` (which
|
|
31
|
+
bounds and frequency-orders) — same array-output kind, same
|
|
32
|
+
type-system narrowing through `AggregateOutputMap`. Library-
|
|
33
|
+
implemented; per-event cost is O(1) `add` / O(1) `remove`
|
|
34
|
+
(Map-keyed by event index); `snapshot` is O(N) array copy.
|
|
35
|
+
Memory O(window size).
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
// Anomaly density: count samples > k·σ from a separate baseline.
|
|
39
|
+
const stats = live.rolling(
|
|
40
|
+
'1m',
|
|
41
|
+
{
|
|
42
|
+
mean: { from: 'cpu', using: 'avg' },
|
|
43
|
+
sd: { from: 'cpu', using: 'stdev' },
|
|
44
|
+
},
|
|
45
|
+
{ trigger: Trigger.every('30s') },
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
const recent = live.rolling('200ms', {
|
|
49
|
+
vals: { from: 'cpu', using: 'samples' },
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// At each tick, count threshold crossings against the baseline:
|
|
53
|
+
stats.on('event', (e) => {
|
|
54
|
+
const samples = recent.value().vals as ReadonlyArray<number>;
|
|
55
|
+
const counts = thresholds.map(
|
|
56
|
+
(k) => samples.filter((v) => v - e.get('mean') > k * e.get('sd')).length,
|
|
57
|
+
);
|
|
58
|
+
// ... emit anomaly density
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Like `unique`, `samples` flattens one level on array-kind source
|
|
63
|
+
columns. Returns `[]` for an empty bucket.
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
|
|
67
|
+
- **Custom-function reducers now work on live.** Removed the runtime
|
|
68
|
+
`TypeError` guards on `LiveAggregation`, `LiveRollingAggregation`,
|
|
69
|
+
and `LivePartitionedSyncRolling` that previously rejected
|
|
70
|
+
function-typed reducers. New `bucketStateFor` and `rollingStateFor`
|
|
71
|
+
helpers in `reducers/index.ts` route built-ins to their dedicated
|
|
72
|
+
O(1) machinery and wrap custom functions in a generic adapter:
|
|
73
|
+
|
|
74
|
+
- **Bucket adapter** (`LiveAggregation`): buffers values, calls
|
|
75
|
+
the function once at `snapshot()` time. O(N) per snapshot.
|
|
76
|
+
- **Rolling adapter** (`LiveRollingAggregation`,
|
|
77
|
+
`LivePartitionedSyncRolling`): Map-keyed by event index for O(1)
|
|
78
|
+
`add` / O(1) `remove`; `snapshot()` calls the function with
|
|
79
|
+
`Array.from(map.values())` in arrival order. **O(N) per
|
|
80
|
+
snapshot** — the function re-runs over the current window each
|
|
81
|
+
time the accumulator emits.
|
|
82
|
+
|
|
83
|
+
Documented as the explicit trade-off: convenience of writing
|
|
84
|
+
`(values) => ...` inline against the perf cliff at high event
|
|
85
|
+
rates. For high-throughput streams prefer built-ins or `'samples'`
|
|
86
|
+
(collapse the window once on the producer side, run custom logic
|
|
87
|
+
on the consumer). For low-rate dashboards / debug pipelines /
|
|
88
|
+
prototypes, the convenience usually wins.
|
|
89
|
+
|
|
90
|
+
Pre-v0.14.1, calling `live.rolling(...)` with a custom-function
|
|
91
|
+
reducer threw `TypeError: live rolling reducer for output 'X' must
|
|
92
|
+
be a built-in name; ...`. Post-v0.14.1, the same call constructs
|
|
93
|
+
successfully and runs.
|
|
94
|
+
|
|
95
|
+
### Tests
|
|
96
|
+
|
|
97
|
+
- 15 new tests in `test/samples-reducer.test.ts` covering: batch
|
|
98
|
+
reduce / aggregate / rolling (including the array-source
|
|
99
|
+
flattening); live aggregate (per-bucket arrays); live rolling
|
|
100
|
+
(window eviction, snapshot correctness through multiple cycles);
|
|
101
|
+
synced partitioned rolling with samples per partition; an
|
|
102
|
+
end-to-end anomaly-density-against-baseline scenario.
|
|
103
|
+
- 2 obsolete tests in `LiveAggregateOutputMap.test.ts` rewritten —
|
|
104
|
+
previously asserted the rejection error, now assert that custom
|
|
105
|
+
functions construct successfully and produce the right value.
|
|
106
|
+
- Total core tests: 1087 (was 1072).
|
|
107
|
+
|
|
108
|
+
### Docs
|
|
109
|
+
|
|
110
|
+
- `pond-ts/transforms/reducer-reference.mdx`: new `'samples'` entry
|
|
111
|
+
in the Array-producing reducers section; "Choosing a reducer"
|
|
112
|
+
matrix updated; empty-bucket and rolling-complexity tables
|
|
113
|
+
updated; Custom reducers section gained the live perf-cliff
|
|
114
|
+
callout.
|
|
115
|
+
- `pond-ts/transforms/rolling.mdx`: replaced the "Custom-function
|
|
116
|
+
reducers are batch-only" note with the new "O(N) per snapshot on
|
|
117
|
+
live" perf-cliff note pointing at the reducer reference.
|
|
118
|
+
|
|
119
|
+
[0.14.1]: https://github.com/pjm17971/pond-ts/compare/v0.14.0...v0.14.1
|
|
120
|
+
|
|
14
121
|
## [0.14.0] — 2026-05-01
|
|
15
122
|
|
|
16
123
|
Two perf wins driven by the gRPC experiment's V3 profiling pass
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveAggregation.d.ts","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,QAAQ,EAIR,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAElB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EAEb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQzD,KAAK,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC;AAE5E,KAAK,cAAc,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AACnD,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAClD,KAAK,cAAc,GAAG,MAAM,IAAI,CAAC;AAEjC,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,CAAC,EAAE,aAAa,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;CACpE,CAAC;AAEF,qBAAa,eAAe,CAC1B,CAAC,SAAS,YAAY,EACtB,GAAG,SAAS,YAAY,GAAG,YAAY;;IAEvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;gBAiBnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,EAAE,sBAAsB;
|
|
1
|
+
{"version":3,"file":"LiveAggregation.d.ts","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"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"}
|
package/dist/LiveAggregation.js
CHANGED
|
@@ -4,7 +4,7 @@ import { Interval } from './Interval.js';
|
|
|
4
4
|
import { LiveView, makeDiffView, makeFillView, makeCumulativeView, } from './LiveView.js';
|
|
5
5
|
import { LiveRollingAggregation, } from './LiveRollingAggregation.js';
|
|
6
6
|
import { TimeSeries } from './TimeSeries.js';
|
|
7
|
-
import {
|
|
7
|
+
import { bucketStateFor } from './reducers/index.js';
|
|
8
8
|
import { parseDuration } from './utils/duration.js';
|
|
9
9
|
export class LiveAggregation {
|
|
10
10
|
name;
|
|
@@ -38,20 +38,6 @@ export class LiveAggregation {
|
|
|
38
38
|
// `AggregateOutputMap<S>` (named alias outputs, multiple
|
|
39
39
|
// reducers per source column).
|
|
40
40
|
this.#columns = normalizeAggregateColumns(source.schema, mapping);
|
|
41
|
-
// Live aggregation currently only supports built-in (string)
|
|
42
|
-
// reducers. They have incremental bucket-state machinery
|
|
43
|
-
// (`add`/`snapshot`) that custom functions don't. Validate
|
|
44
|
-
// eagerly so the error surfaces at construction time, not on
|
|
45
|
-
// the first event arrival. Use AggregateOutputMap aliases over
|
|
46
|
-
// built-ins to compose multiple stats from one source column.
|
|
47
|
-
for (const c of this.#columns) {
|
|
48
|
-
if (typeof c.reducer !== 'string') {
|
|
49
|
-
throw new TypeError(`live aggregation reducer for output '${c.output}' must be a built-in name; ` +
|
|
50
|
-
'custom function reducers are not supported on live aggregation. ' +
|
|
51
|
-
'Use AggregateOutputMap aliases (`{ alias: { from, using } }`) ' +
|
|
52
|
-
'to compose multiple built-in reducers from one source column.');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
41
|
this.schema = Object.freeze([
|
|
56
42
|
{ name: 'time', kind: 'interval' },
|
|
57
43
|
...this.#columns.map((c) => ({
|
|
@@ -167,13 +153,13 @@ export class LiveAggregation {
|
|
|
167
153
|
return;
|
|
168
154
|
let pending = this.#pending.get(bucket.start);
|
|
169
155
|
if (!pending) {
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
//
|
|
156
|
+
// Built-ins use their dedicated O(1) machinery; custom functions
|
|
157
|
+
// use a generic adapter that buffers values and runs the
|
|
158
|
+
// function at snapshot time (O(N) per snapshot).
|
|
173
159
|
pending = {
|
|
174
160
|
start: bucket.start,
|
|
175
161
|
end: bucket.end,
|
|
176
|
-
states: this.#columns.map((c) =>
|
|
162
|
+
states: this.#columns.map((c) => bucketStateFor(c.reducer)),
|
|
177
163
|
};
|
|
178
164
|
this.#pending.set(bucket.start, pending);
|
|
179
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveAggregation.js","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,GAGnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,GAGvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAA6B,MAAM,qBAAqB,CAAC;AAmBhF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmBpD,MAAM,OAAO,eAAe;IAIjB,IAAI,CAAS;IACb,MAAM,CAAM;IAEZ,QAAQ,CAAwB;IAChC,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,QAAQ,CAAS;IAEjB,QAAQ,CAA6B;IAC9C,UAAU,CAAS;IACV,aAAa,CAAgB;IAE7B,SAAS,CAAsB;IAC/B,QAAQ,CAAqB;IAC7B,SAAS,CAAsB;IAC/B,YAAY,CAAa;IAElC,YACE,MAAqB,EACrB,QAAkB,EAClB,OAAgD,EAChD,OAAgC;QAEhC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,aAAa,GACjB,eAAe,IAAI,MAAM;YACzB,OAAQ,MAAc,CAAC,aAAa,KAAK,QAAQ;YACjD,QAAQ,CAAE,MAAc,CAAC,aAAa,CAAC;YACrC,CAAC,CAAE,MAAc,CAAC,aAAa;YAC/B,CAAC,CAAC,CAAC,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK;YAC5B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAY,CAAC;YACrC,CAAC,CAAC,aAAa,CAAC;QAElB,gEAAgE;QAChE,2DAA2D;QAC3D,gEAAgE;QAChE,yDAAyD;QACzD,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CACvC,MAAM,CAAC,MAAM,EACb,OAAkD,CACnD,CAAC;QAEF,
|
|
1
|
+
{"version":3,"file":"LiveAggregation.js","sourceRoot":"","sources":["../src/LiveAggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePartitionedSyncRolling.d.ts","sourceRoot":"","sources":["../src/LivePartitionedSyncRolling.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAElB,cAAc,EACd,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AAcpB,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,0BAA0B,CACrC,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,YAAY,CACxB,YAAW,UAAU,CAAC,GAAG,CAAC;;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IA6BrB;;;;;;;;;;;;;;;;;;;OAmBG;gBAED,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,YAAY,EAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAC,YAAY,CAAC,EACtE,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;KAAO;
|
|
1
|
+
{"version":3,"file":"LivePartitionedSyncRolling.d.ts","sourceRoot":"","sources":["../src/LivePartitionedSyncRolling.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAElB,cAAc,EACd,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AAcpB,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,0BAA0B,CACrC,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,MAAM,EAChB,GAAG,SAAS,YAAY,CACxB,YAAW,UAAU,CAAC,GAAG,CAAC;;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IA6BrB;;;;;;;;;;;;;;;;;;;OAmBG;gBAED,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,YAAY,EAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAC,YAAY,CAAC,EACtE,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;KAAO;IA2F1E,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS;IAKlD,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM,IAAI;IAYhD;;;;;;;;;;;OAWG;IACH,OAAO,IAAI,IAAI;IASf;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI;IAM7C;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;CAiIxD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { normalizeAggregateColumns, } from './aggregate-columns.js';
|
|
2
2
|
import { Event } from './Event.js';
|
|
3
3
|
import { Time } from './Time.js';
|
|
4
|
-
import {
|
|
4
|
+
import { rollingStateFor } from './reducers/index.js';
|
|
5
5
|
import { bucketIndexFor, boundaryTimestampFor, } from './triggers.js';
|
|
6
6
|
import { parseDuration } from './utils/duration.js';
|
|
7
7
|
/**
|
|
@@ -92,19 +92,6 @@ export class LivePartitionedSyncRolling {
|
|
|
92
92
|
// `AggregateMap` or `AggregateOutputMap` shapes via the shared
|
|
93
93
|
// helper.
|
|
94
94
|
this.#columns = normalizeAggregateColumns(reducerInputSchema, mapping);
|
|
95
|
-
// Live rolling currently only supports built-in (string) reducers
|
|
96
|
-
// — they have incremental rolling-state machinery (`add`/`remove`)
|
|
97
|
-
// that custom functions don't. Validate eagerly so the error
|
|
98
|
-
// surfaces at construction time, not when the first partition
|
|
99
|
-
// spawns. (Same gate as `LiveRollingAggregation`.)
|
|
100
|
-
for (const c of this.#columns) {
|
|
101
|
-
if (typeof c.reducer !== 'string') {
|
|
102
|
-
throw new TypeError(`live partitioned sync rolling reducer for output '${c.output}' must be a built-in name; ` +
|
|
103
|
-
'custom function reducers are not supported on live rolling. ' +
|
|
104
|
-
'Use AggregateOutputMap aliases (`{ alias: { from, using } }`) ' +
|
|
105
|
-
'to compose multiple built-in reducers from one source column.');
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
95
|
// Reject column-name collisions between the partition column and
|
|
109
96
|
// any reducer-OUTPUT column. The emit loop's record would
|
|
110
97
|
// overwrite the partition tag with the reducer output (or vice
|
|
@@ -244,11 +231,12 @@ export class LivePartitionedSyncRolling {
|
|
|
244
231
|
let state = this.#partitionStates.get(key);
|
|
245
232
|
if (state)
|
|
246
233
|
return state;
|
|
247
|
-
//
|
|
248
|
-
//
|
|
249
|
-
//
|
|
234
|
+
// Built-ins use their dedicated O(1) machinery; custom functions
|
|
235
|
+
// use a generic adapter that re-runs the function over the current
|
|
236
|
+
// window at each `snapshot()` (O(N) per snapshot — see
|
|
237
|
+
// `rollingStateFor` for the perf characteristic).
|
|
250
238
|
state = {
|
|
251
|
-
states: this.#columns.map((c) =>
|
|
239
|
+
states: this.#columns.map((c) => rollingStateFor(c.reducer)),
|
|
252
240
|
entries: [],
|
|
253
241
|
nextIndex: 0,
|
|
254
242
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivePartitionedSyncRolling.js","sourceRoot":"","sources":["../src/LivePartitionedSyncRolling.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"LivePartitionedSyncRolling.js","sourceRoot":"","sources":["../src/LivePartitionedSyncRolling.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveRollingAggregation.d.ts","sourceRoot":"","sources":["../src/LiveRollingAggregation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,QAAQ,EAIR,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,0BAA0B,EAC1B,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASzD,KAAK,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC;AAC/E,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,qBAAa,sBAAsB,CACjC,CAAC,SAAS,YAAY,EACtB,GAAG,SAAS,YAAY,GAAG,YAAY;;IAEvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;gBAwCnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAChD,OAAO,GAAE,kBAAuB;
|
|
1
|
+
{"version":3,"file":"LiveRollingAggregation.d.ts","sourceRoot":"","sources":["../src/LiveRollingAggregation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,QAAQ,EAIR,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,0BAA0B,EAC1B,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASzD,KAAK,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC;AAC/E,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,qBAAa,sBAAsB,CACjC,CAAC,SAAS,YAAY,EACtB,GAAG,SAAS,YAAY,GAAG,YAAY;;IAEvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;gBAwCnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAChD,OAAO,GAAE,kBAAuB;IA0ElC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS;IAKlD,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAahD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM,IAAI;IAChD,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAiB5C,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;IAMzE,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,cAAc,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IAI3E,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,SAAS,CAAC,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAClE,GAAG,IAAI,EAAE,IAAI,GACZ,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IAWrD,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC;IAI1C,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,0BAA0B,CAAC,GAAG,CAAC,EACvD,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACnC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAIpC,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,0BAA0B,CAAC,GAAG,CAAC,EACvD,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACnC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAIpC,SAAS,CAAC,KAAK,CAAC,MAAM,SAAS,0BAA0B,CAAC,GAAG,CAAC,EAC5D,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACnC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAIpC,IAAI,CACF,QAAQ,EAAE,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAC,EACjD,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,QAAQ,CAAC,GAAG,CAAC;IAIhB,UAAU,CAAC,KAAK,CAAC,OAAO,SAAS,0BAA0B,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;SACrE,CAAC,IAAI,OAAO,GACT,KAAK,GACL,KAAK,GACL,KAAK,GACL,OAAO,GACP,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;KAC7C,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAItC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,GACT,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,kBAAkB,CAAC,GAAG,CAAC,EAC/C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,GACT,eAAe,CAAC,GAAG,EAAE,8BAA8B,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAQ/D,OAAO,IAAI,IAAI;CAgHhB"}
|
|
@@ -3,7 +3,7 @@ import { Event } from './Event.js';
|
|
|
3
3
|
import { Time } from './Time.js';
|
|
4
4
|
import { LiveAggregation } from './LiveAggregation.js';
|
|
5
5
|
import { LiveView, makeDiffView, makeFillView, makeCumulativeView, } from './LiveView.js';
|
|
6
|
-
import {
|
|
6
|
+
import { rollingStateFor } from './reducers/index.js';
|
|
7
7
|
import { bucketIndexFor, boundaryTimestampFor, } from './triggers.js';
|
|
8
8
|
import { parseDuration } from './utils/duration.js';
|
|
9
9
|
export class LiveRollingAggregation {
|
|
@@ -81,25 +81,12 @@ export class LiveRollingAggregation {
|
|
|
81
81
|
required: false,
|
|
82
82
|
})),
|
|
83
83
|
]);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
// multiple stats from one column:
|
|
91
|
-
// `{ avg: { from: 'cpu', using: 'avg' },
|
|
92
|
-
// sd: { from: 'cpu', using: 'stdev' } }`
|
|
93
|
-
// Custom-function support on live rolling is queued as
|
|
94
|
-
// separate work — would require recomputing over the
|
|
95
|
-
// rolling deque on every emission.
|
|
96
|
-
throw new TypeError(`live rolling reducer for output '${c.output}' must be a built-in name; ` +
|
|
97
|
-
'custom function reducers are not supported on live rolling. ' +
|
|
98
|
-
'Use AggregateOutputMap aliases (`{ alias: { from, using } }`) ' +
|
|
99
|
-
'to compose multiple built-in reducers from one source column.');
|
|
100
|
-
}
|
|
101
|
-
return resolveReducer(c.reducer).rollingState();
|
|
102
|
-
});
|
|
84
|
+
// Build per-column rolling state. Built-in reducers use their
|
|
85
|
+
// dedicated O(1) `add`/`remove`/`snapshot` machinery; custom
|
|
86
|
+
// functions use a generic adapter that re-runs the function over
|
|
87
|
+
// the current window at each `snapshot()` (O(N) per snapshot —
|
|
88
|
+
// see {@link rollingStateFor} for the perf characteristic).
|
|
89
|
+
this.#states = this.#columns.map((c) => rollingStateFor(c.reducer));
|
|
103
90
|
this.#entries = [];
|
|
104
91
|
this.#nextIndex = 0;
|
|
105
92
|
this.#outputEvents = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveRollingAggregation.js","sourceRoot":"","sources":["../src/LiveRollingAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,kBAAkB,GAGnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"LiveRollingAggregation.js","sourceRoot":"","sources":["../src/LiveRollingAggregation.ts"],"names":[],"mappings":"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"}
|
package/dist/reducers/index.d.ts
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
export type { ReducerDef, AggregateBucketState, RollingReducerState, } from './types.js';
|
|
2
|
-
import type { ReducerDef } from './types.js';
|
|
2
|
+
import type { AggregateBucketState, ReducerDef, RollingReducerState } from './types.js';
|
|
3
|
+
import type { AggregateReducer } from '../types.js';
|
|
3
4
|
export { top } from './top.js';
|
|
4
5
|
export declare function resolveReducer(operation: string): ReducerDef;
|
|
6
|
+
/**
|
|
7
|
+
* Build an `AggregateBucketState` for a reducer that may be either a
|
|
8
|
+
* built-in name (string) or a custom function. Built-ins use their
|
|
9
|
+
* dedicated incremental machinery (O(1) `add`, O(1) `snapshot`).
|
|
10
|
+
* Custom functions use a generic adapter that buffers values and
|
|
11
|
+
* runs the function once per `snapshot()` call (O(N) per snapshot).
|
|
12
|
+
*
|
|
13
|
+
* Used by `LiveAggregation` and the batch aggregation path.
|
|
14
|
+
*/
|
|
15
|
+
export declare function bucketStateFor(reducer: AggregateReducer): AggregateBucketState;
|
|
16
|
+
/**
|
|
17
|
+
* Build a `RollingReducerState` for a reducer that may be either a
|
|
18
|
+
* built-in name (string) or a custom function. Built-ins use their
|
|
19
|
+
* dedicated incremental machinery (O(1) `add`/`remove`/`snapshot`).
|
|
20
|
+
*
|
|
21
|
+
* Custom functions use a generic adapter:
|
|
22
|
+
* - `add(idx, v)` stores into a Map keyed by event index.
|
|
23
|
+
* - `remove(idx, v)` deletes by index.
|
|
24
|
+
* - `snapshot()` calls the function with the current window's values
|
|
25
|
+
* in arrival order — O(N) per snapshot.
|
|
26
|
+
*
|
|
27
|
+
* **Performance characteristic.** Per-event cost is O(1) for state
|
|
28
|
+
* maintenance but `snapshot` is O(window size) — the function re-
|
|
29
|
+
* runs over every value in the current window each time the
|
|
30
|
+
* accumulator emits. Compare to built-in reducers which maintain a
|
|
31
|
+
* running result incrementally and snapshot in O(1).
|
|
32
|
+
*
|
|
33
|
+
* For high-throughput live use, prefer built-ins or `'samples'`
|
|
34
|
+
* (which lets you compute the custom logic once at the consumer,
|
|
35
|
+
* after the rolling has already collapsed events to the value list).
|
|
36
|
+
* Custom-function reducers shine on low-rate streams where
|
|
37
|
+
* convenience matters more than per-snapshot cost.
|
|
38
|
+
*/
|
|
39
|
+
export declare function rollingStateFor(reducer: AggregateReducer): RollingReducerState;
|
|
5
40
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reducers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reducers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAkBjE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAkB/B,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAQ5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,GACxB,oBAAoB,CActB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,gBAAgB,GACxB,mBAAmB,CAiBrB"}
|
package/dist/reducers/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { median } from './median.js';
|
|
|
11
11
|
import { stdev } from './stdev.js';
|
|
12
12
|
import { difference } from './difference.js';
|
|
13
13
|
import { keep } from './keep.js';
|
|
14
|
+
import { samples } from './samples.js';
|
|
14
15
|
import { unique } from './unique.js';
|
|
15
16
|
export { top } from './top.js';
|
|
16
17
|
const registry = {
|
|
@@ -25,6 +26,7 @@ const registry = {
|
|
|
25
26
|
stdev,
|
|
26
27
|
difference,
|
|
27
28
|
keep,
|
|
29
|
+
samples,
|
|
28
30
|
unique,
|
|
29
31
|
};
|
|
30
32
|
export function resolveReducer(operation) {
|
|
@@ -39,4 +41,69 @@ export function resolveReducer(operation) {
|
|
|
39
41
|
return topReducer(n);
|
|
40
42
|
throw new TypeError(`unsupported aggregate reducer: ${operation}`);
|
|
41
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Build an `AggregateBucketState` for a reducer that may be either a
|
|
46
|
+
* built-in name (string) or a custom function. Built-ins use their
|
|
47
|
+
* dedicated incremental machinery (O(1) `add`, O(1) `snapshot`).
|
|
48
|
+
* Custom functions use a generic adapter that buffers values and
|
|
49
|
+
* runs the function once per `snapshot()` call (O(N) per snapshot).
|
|
50
|
+
*
|
|
51
|
+
* Used by `LiveAggregation` and the batch aggregation path.
|
|
52
|
+
*/
|
|
53
|
+
export function bucketStateFor(reducer) {
|
|
54
|
+
if (typeof reducer === 'string') {
|
|
55
|
+
return resolveReducer(reducer).bucketState();
|
|
56
|
+
}
|
|
57
|
+
// Custom-function adapter: buffer values, call fn at snapshot time.
|
|
58
|
+
const items = [];
|
|
59
|
+
return {
|
|
60
|
+
add(v) {
|
|
61
|
+
items.push(v);
|
|
62
|
+
},
|
|
63
|
+
snapshot() {
|
|
64
|
+
return reducer(items);
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Build a `RollingReducerState` for a reducer that may be either a
|
|
70
|
+
* built-in name (string) or a custom function. Built-ins use their
|
|
71
|
+
* dedicated incremental machinery (O(1) `add`/`remove`/`snapshot`).
|
|
72
|
+
*
|
|
73
|
+
* Custom functions use a generic adapter:
|
|
74
|
+
* - `add(idx, v)` stores into a Map keyed by event index.
|
|
75
|
+
* - `remove(idx, v)` deletes by index.
|
|
76
|
+
* - `snapshot()` calls the function with the current window's values
|
|
77
|
+
* in arrival order — O(N) per snapshot.
|
|
78
|
+
*
|
|
79
|
+
* **Performance characteristic.** Per-event cost is O(1) for state
|
|
80
|
+
* maintenance but `snapshot` is O(window size) — the function re-
|
|
81
|
+
* runs over every value in the current window each time the
|
|
82
|
+
* accumulator emits. Compare to built-in reducers which maintain a
|
|
83
|
+
* running result incrementally and snapshot in O(1).
|
|
84
|
+
*
|
|
85
|
+
* For high-throughput live use, prefer built-ins or `'samples'`
|
|
86
|
+
* (which lets you compute the custom logic once at the consumer,
|
|
87
|
+
* after the rolling has already collapsed events to the value list).
|
|
88
|
+
* Custom-function reducers shine on low-rate streams where
|
|
89
|
+
* convenience matters more than per-snapshot cost.
|
|
90
|
+
*/
|
|
91
|
+
export function rollingStateFor(reducer) {
|
|
92
|
+
if (typeof reducer === 'string') {
|
|
93
|
+
return resolveReducer(reducer).rollingState();
|
|
94
|
+
}
|
|
95
|
+
// Custom-function adapter: Map keyed by event index for O(1) remove.
|
|
96
|
+
const items = new Map();
|
|
97
|
+
return {
|
|
98
|
+
add(index, v) {
|
|
99
|
+
items.set(index, v);
|
|
100
|
+
},
|
|
101
|
+
remove(index, _v) {
|
|
102
|
+
items.delete(index);
|
|
103
|
+
},
|
|
104
|
+
snapshot() {
|
|
105
|
+
return reducer(Array.from(items.values()));
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
42
109
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reducers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reducers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReducerDef } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* All defined scalar values from a bucket, returned as an array in
|
|
4
|
+
* arrival order (duplicates preserved). Array-kind inputs are
|
|
5
|
+
* flattened one level: a bucket of `[['a','b'], ['b','c']]` produces
|
|
6
|
+
* `['a','b','b','c']`. This makes "give me every value the rolling
|
|
7
|
+
* window has seen" work naturally on either scalar or tag-list
|
|
8
|
+
* columns.
|
|
9
|
+
*
|
|
10
|
+
* Sits beside `unique` (which deduplicates) and `top${N}` (which
|
|
11
|
+
* bounds and frequency-orders). Reach for `samples` when you need
|
|
12
|
+
* the full value list, with duplicates and arrival order preserved
|
|
13
|
+
* — typically because a downstream computation needs the raw
|
|
14
|
+
* values (anomaly density against a baseline, custom thresholding,
|
|
15
|
+
* histogramming).
|
|
16
|
+
*
|
|
17
|
+
* **Use on bounded windows.** Memory is O(window size); per-event
|
|
18
|
+
* cost is O(1) `add` and O(1) `remove` (Map-keyed by event index);
|
|
19
|
+
* `snapshot` is O(N) for the array copy.
|
|
20
|
+
*/
|
|
21
|
+
export declare const samples: ReducerDef;
|
|
22
|
+
//# sourceMappingURL=samples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"samples.d.ts","sourceRoot":"","sources":["../../src/reducers/samples.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAoB7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,EAAE,UAwCrB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
function isScalar(v) {
|
|
2
|
+
return (typeof v === 'number' || typeof v === 'string' || typeof v === 'boolean');
|
|
3
|
+
}
|
|
4
|
+
/** Push each scalar from `v` into `out`; flattens a single level of array. */
|
|
5
|
+
function collectInto(out, v) {
|
|
6
|
+
if (v === undefined)
|
|
7
|
+
return;
|
|
8
|
+
if (isScalar(v)) {
|
|
9
|
+
out.push(v);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
for (const element of v) {
|
|
13
|
+
if (isScalar(element))
|
|
14
|
+
out.push(element);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* All defined scalar values from a bucket, returned as an array in
|
|
19
|
+
* arrival order (duplicates preserved). Array-kind inputs are
|
|
20
|
+
* flattened one level: a bucket of `[['a','b'], ['b','c']]` produces
|
|
21
|
+
* `['a','b','b','c']`. This makes "give me every value the rolling
|
|
22
|
+
* window has seen" work naturally on either scalar or tag-list
|
|
23
|
+
* columns.
|
|
24
|
+
*
|
|
25
|
+
* Sits beside `unique` (which deduplicates) and `top${N}` (which
|
|
26
|
+
* bounds and frequency-orders). Reach for `samples` when you need
|
|
27
|
+
* the full value list, with duplicates and arrival order preserved
|
|
28
|
+
* — typically because a downstream computation needs the raw
|
|
29
|
+
* values (anomaly density against a baseline, custom thresholding,
|
|
30
|
+
* histogramming).
|
|
31
|
+
*
|
|
32
|
+
* **Use on bounded windows.** Memory is O(window size); per-event
|
|
33
|
+
* cost is O(1) `add` and O(1) `remove` (Map-keyed by event index);
|
|
34
|
+
* `snapshot` is O(N) for the array copy.
|
|
35
|
+
*/
|
|
36
|
+
export const samples = {
|
|
37
|
+
outputKind: 'array',
|
|
38
|
+
reduce(defined) {
|
|
39
|
+
const out = [];
|
|
40
|
+
for (const v of defined)
|
|
41
|
+
collectInto(out, v);
|
|
42
|
+
return out;
|
|
43
|
+
},
|
|
44
|
+
bucketState() {
|
|
45
|
+
const items = [];
|
|
46
|
+
return {
|
|
47
|
+
add(v) {
|
|
48
|
+
collectInto(items, v);
|
|
49
|
+
},
|
|
50
|
+
snapshot() {
|
|
51
|
+
return items.slice();
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
rollingState() {
|
|
56
|
+
// Map keyed by event index so `remove` is O(1). `Array.from(map.values())`
|
|
57
|
+
// returns insertion order, which matches arrival order.
|
|
58
|
+
const items = new Map();
|
|
59
|
+
return {
|
|
60
|
+
add(index, v) {
|
|
61
|
+
const collected = [];
|
|
62
|
+
collectInto(collected, v);
|
|
63
|
+
if (collected.length > 0)
|
|
64
|
+
items.set(index, collected);
|
|
65
|
+
},
|
|
66
|
+
remove(index, _v) {
|
|
67
|
+
items.delete(index);
|
|
68
|
+
},
|
|
69
|
+
snapshot() {
|
|
70
|
+
const out = [];
|
|
71
|
+
for (const arr of items.values()) {
|
|
72
|
+
for (const v of arr)
|
|
73
|
+
out.push(v);
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=samples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"samples.js","sourceRoot":"","sources":["../../src/reducers/samples.ts"],"names":[],"mappings":"AAGA,SAAS,QAAQ,CAAC,CAA0B;IAC1C,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,CACzE,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAC,GAAkB,EAAE,CAA0B;IACjE,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO;IAC5B,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,OAAO;IACT,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAe;IACjC,UAAU,EAAE,OAAO;IACnB,MAAM,CAAC,OAAO;QACZ,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC;IACb,CAAC;IACD,WAAW;QACT,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,OAAO;YACL,GAAG,CAAC,CAAC;gBACH,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC;YACD,QAAQ;gBACN,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;SACF,CAAC;IACJ,CAAC;IACD,YAAY;QACV,2EAA2E;QAC3E,wDAAwD;QACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC/C,OAAO;YACL,GAAG,CAAC,KAAK,EAAE,CAAC;gBACV,MAAM,SAAS,GAAkB,EAAE,CAAC;gBACpC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC1B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,EAAE;gBACd,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,QAAQ;gBACN,MAAM,GAAG,GAAkB,EAAE,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACjC,KAAK,MAAM,CAAC,IAAI,GAAG;wBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|