Skip to content
This repository was archived by the owner on Dec 1, 2018. It is now read-only.

Commit df89170

Browse files
committed
Log Stackdriver request when it fails.
Failed requests logged at log level 2. Successful ones logged at log level 10.
1 parent 600e70b commit df89170

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

metrics/sinks/stackdriver/stackdriver.go

+20
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package stackdriver
1616

1717
import (
18+
"encoding/json"
1819
"fmt"
1920
"math/rand"
2021
"net/url"
@@ -302,20 +303,39 @@ func (sink *StackdriverSink) requestSender(reqQueue chan *sd_api.CreateTimeSerie
302303
}
303304
}
304305

306+
func marshalRequestAndLog(printer func (string), req *sd_api.CreateTimeSeriesRequest) {
307+
reqJson, errJson := json.Marshal(req)
308+
if errJson != nil {
309+
printer(reqJson)
310+
} else {
311+
glog.Errorf("Couldn't marshal Stackdriver request %v", errJson)
312+
}
313+
}
314+
305315
func (sink *StackdriverSink) sendOneRequest(req *sd_api.CreateTimeSeriesRequest) {
306316
startTime := time.Now()
307317
empty, err := sink.stackdriverClient.Projects.TimeSeries.Create(fullProjectName(sink.project), req).Do()
308318

309319
var responseCode int
310320
if err != nil {
311321
glog.Warningf("Error while sending request to Stackdriver %v", err)
322+
if glog.V(2) {
323+
marshalRequestAndLog(func (reqJson string) {
324+
glog.Warningf("The request was: %s", reqJson)
325+
}, req)
326+
}
312327
switch reflect.Indirect(reflect.ValueOf(err)).Type() {
313328
case reflect.Indirect(reflect.ValueOf(&googleapi.Error{})).Type():
314329
responseCode = err.(*googleapi.Error).Code
315330
default:
316331
responseCode = httpResponseCodeUnknown
317332
}
318333
} else {
334+
if glog.V(10) {
335+
marshalRequestAndLog(func (reqJson string) {
336+
glog.Infof("Stackdriver request sent: %s", reqJson)
337+
}, req)
338+
}
319339
responseCode = empty.ServerResponse.HTTPStatusCode
320340
}
321341

0 commit comments

Comments
 (0)