Skip to content

Commit

Permalink
Log CloudWatch response error (#961)
Browse files Browse the repository at this point in the history
* fix condition for error logging

* add test  to check that error returned from `Send()` method
  • Loading branch information
taraspos committed Feb 24, 2020
1 parent a8b27b8 commit fb88150
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
2 changes: 1 addition & 1 deletion metrics/cloudwatch/cloudwatch.go
Expand Up @@ -255,7 +255,7 @@ func (cw *CloudWatch) Send() error {
}
var firstErr error
for i := 0; i < cap(errors); i++ {
if err := <-errors; err != nil && firstErr != nil {
if err := <-errors; err != nil && firstErr == nil {
firstErr = err
}
}
Expand Down
21 changes: 19 additions & 2 deletions metrics/cloudwatch/cloudwatch_test.go
Expand Up @@ -15,6 +15,10 @@ import (
"github.com/go-kit/kit/metrics/teststat"
)

const metricNameToGenerateError = "metric_name_used_to_throw_an_error"

var errTest = errors.New("test error")

type mockCloudWatch struct {
cloudwatchiface.CloudWatchAPI
mtx sync.RWMutex
Expand All @@ -33,6 +37,10 @@ func (mcw *mockCloudWatch) PutMetricData(input *cloudwatch.PutMetricDataInput) (
mcw.mtx.Lock()
defer mcw.mtx.Unlock()
for _, datum := range input.MetricData {
if *datum.MetricName == metricNameToGenerateError {
return nil, errTest
}

if len(datum.Values) > 0 {
for _, v := range datum.Values {
mcw.valuesReceived[*datum.MetricName] = append(mcw.valuesReceived[*datum.MetricName], *v)
Expand Down Expand Up @@ -125,8 +133,7 @@ func TestCounterLowSendConcurrency(t *testing.T) {
wants = append(wants, teststat.FillCounter(counters[name]))
}

err := cw.Send()
if err != nil {
if err := cw.Send(); err != nil {
t.Fatal(err)
}

Expand Down Expand Up @@ -280,3 +287,13 @@ func TestHistogram(t *testing.T) {
t.Fatal(err)
}
}

func TestErrorLog(t *testing.T) {
namespace := "abc"
svc := newMockCloudWatch()
cw := New(namespace, svc, WithLogger(log.NewNopLogger()))
cw.NewGauge(metricNameToGenerateError).Set(123)
if err := cw.Send(); err != errTest {
t.Fatal("Expected error, but didn't get one")
}
}

0 comments on commit fb88150

Please sign in to comment.