Add 'percentile' (with a 'p' fraction in [0,1]) and 'distinctCount' to the aggregation engine. Both are exact, computed from a per-metric value multiset (MetricState.valueCounts) maintained incrementally and delete-safe; percentile uses numpy-linear interpolation. The multiset is JSON-serializable so results survive persistence. 35 aggregation unit tests pass. |
||
|---|---|---|
| .. | ||
| AggregationIndex.test.ts | ||
| materializer.test.ts | ||
| timeWindows.test.ts | ||