fix bad Gauge test (#975)
Taras authored 4 years ago
GitHub committed 4 years ago
174 | 174 |
})
|
175 | 175 |
|
176 | 176 |
cw.gauges.Reset().Walk(func(name string, lvs lv.LabelValues, values []float64) bool {
|
|
177 |
if len(values) == 0 {
|
|
178 |
return true
|
|
179 |
}
|
|
180 |
|
177 | 181 |
datum := &cloudwatch.MetricDatum{
|
178 | 182 |
MetricName: aws.String(name),
|
179 | 183 |
Dimensions: makeDimensions(lvs...),
|
180 | 184 |
Timestamp: aws.Time(now),
|
181 | |
}
|
182 | |
|
183 | |
if len(values) == 0 {
|
184 | |
return true
|
185 | 185 |
}
|
186 | 186 |
|
187 | 187 |
// CloudWatch Put Metrics API (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)
|
6 | 6 |
"math"
|
7 | 7 |
"math/rand"
|
8 | 8 |
"reflect"
|
|
9 |
"sort"
|
9 | 10 |
"strings"
|
10 | 11 |
|
11 | 12 |
"github.com/go-kit/kit/metrics"
|
|
52 | 53 |
for i := 0; i < n; i++ {
|
53 | 54 |
f := float64(a[i])
|
54 | 55 |
gauge.Add(f)
|
55 | |
want[len(want)-1] += f
|
|
56 |
want = append(want, want[len(want)-1]+f)
|
56 | 57 |
}
|
57 | 58 |
|
58 | |
if have := value(); reflect.DeepEqual(want, have) {
|
59 | |
return fmt.Errorf("want %f, have %f", want, have)
|
|
59 |
have := value()
|
|
60 |
|
|
61 |
switch len(have) {
|
|
62 |
case 0:
|
|
63 |
return fmt.Errorf("got 0 values")
|
|
64 |
case 1: // provider doesn't support multi value
|
|
65 |
if have[0] != want[len(want)-1] {
|
|
66 |
return fmt.Errorf("want %f, have %f", want, have)
|
|
67 |
}
|
|
68 |
default: // provider support multi value gauges
|
|
69 |
sort.Float64s(want)
|
|
70 |
sort.Float64s(have)
|
|
71 |
if !reflect.DeepEqual(want, have) {
|
|
72 |
return fmt.Errorf("want %f, have %f", want, have)
|
|
73 |
}
|
60 | 74 |
}
|
61 | 75 |
|
62 | 76 |
return nil
|