From 568549e81017a75e1245c277b5db41170e85324a Mon Sep 17 00:00:00 2001 From: idafurjes <36131195+idafurjes@users.noreply.github.com> Date: Thu, 26 Aug 2021 16:39:50 +0200 Subject: [PATCH] Bug: Return empty plugins.DataTimeSeriesSlice when the frame field vector is epmty (#38587) * Add check if the vector is empty * Use Rows() instead of Len() on field * Remove redundant condition --- pkg/services/alerting/conditions/query.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/services/alerting/conditions/query.go b/pkg/services/alerting/conditions/query.go index f71c51a37b3..68797b8582b 100644 --- a/pkg/services/alerting/conditions/query.go +++ b/pkg/services/alerting/conditions/query.go @@ -308,7 +308,7 @@ func FrameToSeriesSlice(frame *data.Frame) (plugins.DataTimeSeriesSlice, error) if tsSchema.Type == data.TimeSeriesTypeNot { // If no fields, or only a time field, create an empty plugins.DataTimeSeriesSlice with a single // time series in order to trigger "no data" in alerting. - if len(frame.Fields) == 0 || (len(frame.Fields) == 1 && frame.Fields[0].Type().Time()) { + if frame.Rows() == 0 || (len(frame.Fields) == 1 && frame.Fields[0].Type().Time()) { return plugins.DataTimeSeriesSlice{{ Name: frame.Name, Points: make(plugins.DataTimeSeriesPoints, 0), @@ -316,7 +316,6 @@ func FrameToSeriesSlice(frame *data.Frame) (plugins.DataTimeSeriesSlice, error) } return nil, fmt.Errorf("input frame is not recognized as a time series") } - seriesCount := len(tsSchema.ValueIndices) seriesSlice := make(plugins.DataTimeSeriesSlice, 0, seriesCount) timeField := frame.Fields[tsSchema.TimeIndex]