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

Commit 6b966a8

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 6b966a8

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

metrics/sinks/stackdriver/stackdriver.go

+22
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,41 @@ func (sink *StackdriverSink) requestSender(reqQueue chan *sd_api.CreateTimeSerie
302303
}
303304
}
304305

306+
func marshalRequestAndLog(printer func([]byte), 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+
// Convert request to json and log it, but only if logging level is equal to 2 or more.
323+
if glog.V(2) {
324+
marshalRequestAndLog(func(reqJson []byte) {
325+
glog.V(2).Infof("The request was: %s", reqJson)
326+
}, req)
327+
}
312328
switch reflect.Indirect(reflect.ValueOf(err)).Type() {
313329
case reflect.Indirect(reflect.ValueOf(&googleapi.Error{})).Type():
314330
responseCode = err.(*googleapi.Error).Code
315331
default:
316332
responseCode = httpResponseCodeUnknown
317333
}
318334
} else {
335+
// Convert request to json and log it, but only if logging level is equal to 10 or more.
336+
if glog.V(10) {
337+
marshalRequestAndLog(func(reqJson []byte) {
338+
glog.V(2).Infof("Stackdriver request sent: %s", reqJson)
339+
}, req)
340+
}
319341
responseCode = empty.ServerResponse.HTTPStatusCode
320342
}
321343

0 commit comments

Comments
 (0)