Cloudwatch: Use generic null-insertion mechanism (#43507)

* Cloudwatch: Fix nil values for a period gap in metrics

* Use fields periods for intervals
This commit is contained in:
Shirley
2022-02-10 10:17:45 +01:00
committed by GitHub
parent 5ded070aab
commit 5edcc2e795
4 changed files with 41 additions and 9 deletions
-7
View File
@@ -162,13 +162,6 @@ func buildDataFrames(startTime time.Time, endTime time.Time, aggregatedResponse
timestamps := []*time.Time{}
points := []*float64{}
for j, t := range metric.Timestamps {
if j > 0 {
expectedTimestamp := metric.Timestamps[j-1].Add(time.Duration(query.Period) * time.Second)
if expectedTimestamp.Before(*t) {
timestamps = append(timestamps, &expectedTimestamp)
points = append(points, nil)
}
}
val := metric.Values[j]
timestamps = append(timestamps, t)
points = append(points, val)
+1 -2
View File
@@ -422,8 +422,7 @@ func TestCloudWatchResponseParser(t *testing.T) {
assert.Equal(t, "lb", frame.Fields[1].Labels["LoadBalancer"])
assert.Equal(t, 10.0, *frame.Fields[1].At(0).(*float64))
assert.Equal(t, 20.0, *frame.Fields[1].At(1).(*float64))
assert.Nil(t, frame.Fields[1].At(2))
assert.Equal(t, 30.0, *frame.Fields[1].At(3).(*float64))
assert.Equal(t, 30.0, *frame.Fields[1].At(2).(*float64))
assert.Equal(t, "Value", frame.Fields[1].Name)
assert.Equal(t, "", frame.Fields[1].Config.DisplayName)
})