Codebase list golang-github-go-kit-kit / fb88150
Log CloudWatch response error (#961) * fix condition for error logging * add test to check that error returned from `Send()` method Taras authored 4 years ago GitHub committed 4 years ago
2 changed file(s) with 20 addition(s) and 3 deletion(s). Raw diff Collapse all Expand all
254254 }
255255 var firstErr error
256256 for i := 0; i < cap(errors); i++ {
257 if err := <-errors; err != nil && firstErr != nil {
257 if err := <-errors; err != nil && firstErr == nil {
258258 firstErr = err
259259 }
260260 }
1414 "github.com/go-kit/kit/metrics/teststat"
1515 )
1616
17 const metricNameToGenerateError = "metric_name_used_to_throw_an_error"
18
19 var errTest = errors.New("test error")
20
1721 type mockCloudWatch struct {
1822 cloudwatchiface.CloudWatchAPI
1923 mtx sync.RWMutex
3236 mcw.mtx.Lock()
3337 defer mcw.mtx.Unlock()
3438 for _, datum := range input.MetricData {
39 if *datum.MetricName == metricNameToGenerateError {
40 return nil, errTest
41 }
42
3543 if len(datum.Values) > 0 {
3644 for _, v := range datum.Values {
3745 mcw.valuesReceived[*datum.MetricName] = append(mcw.valuesReceived[*datum.MetricName], *v)
124132 wants = append(wants, teststat.FillCounter(counters[name]))
125133 }
126134
127 err := cw.Send()
128 if err != nil {
135 if err := cw.Send(); err != nil {
129136 t.Fatal(err)
130137 }
131138
279286 t.Fatal(err)
280287 }
281288 }
289
290 func TestErrorLog(t *testing.T) {
291 namespace := "abc"
292 svc := newMockCloudWatch()
293 cw := New(namespace, svc, WithLogger(log.NewNopLogger()))
294 cw.NewGauge(metricNameToGenerateError).Set(123)
295 if err := cw.Send(); err != errTest {
296 t.Fatal("Expected error, but didn't get one")
297 }
298 }