Fix percentile aggregation with $__range_series interval

This commit is contained in:
Alexander Zobnin
2022-04-27 15:26:48 +03:00
parent 13d89a0806
commit 8d35c6b297
2 changed files with 25 additions and 1 deletions

View File

@@ -166,6 +166,24 @@ func AggregateBy(series []*TimeSeriesData, interval time.Duration, aggFunc AggFu
return aggregatedSeriesData
}
func AggregateByRange(series []*TimeSeriesData, aggFunc AggFunc) *TimeSeriesData {
aggregatedSeries := NewTimeSeries()
// Combine all points into one time series
for _, s := range series {
aggregatedSeries = append(aggregatedSeries, s.TS...)
}
value := aggFunc(aggregatedSeries)
aggregatedSeriesData := NewTimeSeriesData()
aggregatedSeriesData.TS = []TimePoint{
{Time: aggregatedSeries[0].Time, Value: value},
{Time: aggregatedSeries[aggregatedSeries.Len()-1].Time, Value: value},
}
return aggregatedSeriesData
}
func (ts TimeSeries) Sort() {
sorted := sort.SliceIsSorted(ts, ts.less())
if !sorted {