Add prometheus metrics for altTokenSource.

pull/6/head
CJ Cullen 2015-07-07 15:25:23 -07:00
parent 530bff315f
commit 53c9f324c2
1 changed files with 30 additions and 0 deletions

View File

@ -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