diff --git a/pkg/datasource/functions.go b/pkg/datasource/functions.go index cd1db7d..8512e08 100644 --- a/pkg/datasource/functions.go +++ b/pkg/datasource/functions.go @@ -160,9 +160,11 @@ func applyGroupBy(series timeseries.TimeSeries, params ...interface{}) (timeseri if err != nil { return nil, errParsingFunctionParam(err) } + if interval == 0 { + return series, nil + } - s := series.GroupBy(interval, aggFunc) - return s, nil + return series.GroupBy(interval, aggFunc), nil } func applyPercentile(series timeseries.TimeSeries, params ...interface{}) (timeseries.TimeSeries, error) { @@ -182,6 +184,9 @@ func applyPercentile(series timeseries.TimeSeries, params ...interface{}) (times if err != nil { return nil, errParsingFunctionParam(err) } + if interval == 0 { + return series, nil + } s := series.GroupBy(interval, aggFunc) return s, nil @@ -279,6 +284,9 @@ func applyAggregateBy(series []*timeseries.TimeSeriesData, params ...interface{} if err != nil { return nil, errParsingFunctionParam(err) } + if interval == 0 { + return series, nil + } aggFunc := getAggFunc(pAgg) aggregatedSeries := timeseries.AggregateBy(series, interval, aggFunc) @@ -304,6 +312,9 @@ func applyPercentileAgg(series []*timeseries.TimeSeriesData, params ...interface if err != nil { return nil, errParsingFunctionParam(err) } + if interval == 0 { + return series, nil + } aggFunc := timeseries.AggPercentile(percentile) aggregatedSeries := timeseries.AggregateBy(series, interval, aggFunc) @@ -363,6 +374,9 @@ func applyTimeShiftPre(query *QueryModel, items []*zabbix.Item, params ...interf if err != nil { return errParsingFunctionParam(err) } + if interval == 0 { + return fmt.Errorf("interval should be non-null value") + } if shiftForward { query.TimeRange.From = query.TimeRange.From.Add(interval) @@ -391,6 +405,9 @@ func applyTimeShiftPost(series timeseries.TimeSeries, params ...interface{}) (ti if err != nil { return nil, errParsingFunctionParam(err) } + if interval == 0 { + return series, nil + } if shiftForward == true { interval = -interval } diff --git a/pkg/datasource/zabbix.go b/pkg/datasource/zabbix.go index d6a547b..231c30b 100644 --- a/pkg/datasource/zabbix.go +++ b/pkg/datasource/zabbix.go @@ -95,7 +95,7 @@ func (ds *ZabbixDatasourceInstance) queryNumericDataForItems(ctx context.Context } for _, s := range series { - if int64(s.Len()) > query.MaxDataPoints && true { + if int64(s.Len()) > query.MaxDataPoints && query.Interval > 0 { downsampleFunc := consolidateBy if downsampleFunc == "" { downsampleFunc = "avg"