Added logging to AWS api calls. #46969

This commit is contained in:
Robert Rati 2017-06-08 09:17:33 -04:00
parent 10dc1aac61
commit 92f030ca24
2 changed files with 31 additions and 2 deletions

View File

@ -480,6 +480,20 @@ func (p *awsSDKProvider) addHandlers(regionName string, h *request.Handlers) {
Fn: delayer.AfterRetry,
})
}
p.addAPILoggingHandlers(h)
}
func (p *awsSDKProvider) addAPILoggingHandlers(h *request.Handlers) {
h.Send.PushBackNamed(request.NamedHandler{
Name: "k8s/api-request",
Fn: awsSendHandlerLogger,
})
h.ValidateResponse.PushFrontNamed(request.NamedHandler{
Name: "k8s/api-validate-response",
Fn: awsValidateResponseHandlerLogger,
})
}
// Get a CrossRequestRetryDelay, scoped to the region, not to the request.
@ -550,6 +564,7 @@ func (p *awsSDKProvider) Autoscaling(regionName string) (ASG, error) {
func (p *awsSDKProvider) Metadata() (EC2Metadata, error) {
client := ec2metadata.New(session.New(&aws.Config{}))
p.addAPILoggingHandlers(&client.Handlers)
return client, nil
}

View File

@ -23,12 +23,26 @@ import (
// Handler for aws-sdk-go that logs all requests
func awsHandlerLogger(req *request.Request) {
service, name := awsServiceAndName(req)
glog.V(4).Infof("AWS request: %s %s", service, name)
}
func awsSendHandlerLogger(req *request.Request) {
service, name := awsServiceAndName(req)
glog.V(4).Infof("AWS API Send: %s %s %v %v", service, name, req.Operation, req.Params)
}
func awsValidateResponseHandlerLogger(req *request.Request) {
service, name := awsServiceAndName(req)
glog.V(4).Infof("AWS API ValidateResponse: %s %s %v %v %s", service, name, req.Operation, req.Params, req.HTTPResponse.Status)
}
func awsServiceAndName(req *request.Request) (string, string) {
service := req.ClientInfo.ServiceName
name := "?"
if req.Operation != nil {
name = req.Operation.Name
}
glog.V(4).Infof("AWS request: %s %s", service, name)
return service, name
}