diff --git a/pkg/cloudprovider/gce/token_source.go b/pkg/cloudprovider/gce/token_source.go index 6b772e58ab7..ac41ba5e832 100644 --- a/pkg/cloudprovider/gce/token_source.go +++ b/pkg/cloudprovider/gce/token_source.go @@ -24,6 +24,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/util" "code.google.com/p/google-api-go-client/googleapi" + "github.com/prometheus/client_golang/prometheus" "golang.org/x/oauth2" "golang.org/x/oauth2/google" ) @@ -35,6 +36,26 @@ const ( tokenURLBurst = 3 ) +var ( + getTokenCounter = prometheus.NewCounter( + prometheus.CounterOpts{ + Name: "get_token_count", + Help: "Counter of total Token() requests to the alternate token source", + }, + ) + getTokenFailCounter = prometheus.NewCounter( + prometheus.CounterOpts{ + Name: "get_token_fail_count", + Help: "Counter of failed Token() requests to the alternate token source", + }, + ) +) + +func init() { + prometheus.MustRegister(getTokenCounter) + prometheus.MustRegister(getTokenFailCounter) +} + type altTokenSource struct { oauthClient *http.Client tokenURL string @@ -43,6 +64,15 @@ type altTokenSource struct { func (a *altTokenSource) Token() (*oauth2.Token, error) { a.throttle.Accept() + getTokenCounter.Inc() + t, err := a.token() + if err != nil { + getTokenFailCounter.Inc() + } + return t, err +} + +func (a *altTokenSource) token() (*oauth2.Token, error) { req, err := http.NewRequest("GET", a.tokenURL, nil) if err != nil { return nil, err