Browse Source

clientv3: added client side metrics support

sharat 9 years ago
parent
commit
8fd1dd7862
1 changed files with 5 additions and 0 deletions
  1. 5 0
      clientv3/client.go

+ 5 - 0
clientv3/client.go

@@ -24,6 +24,7 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"
 	"github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"
+	prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
 
 
 	"golang.org/x/net/context"
 	"golang.org/x/net/context"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc"
@@ -247,6 +248,10 @@ func (c *Client) dial(endpoint string, dopts ...grpc.DialOption) (*grpc.ClientCo
 		opts = append(opts, grpc.WithPerRPCCredentials(authTokenCredential{token: resp.Token}))
 		opts = append(opts, grpc.WithPerRPCCredentials(authTokenCredential{token: resp.Token}))
 	}
 	}
 
 
+	// add metrics options
+	opts = append(opts, grpc.WithUnaryInterceptor(prometheus.UnaryClientInterceptor))
+	opts = append(opts, grpc.WithStreamInterceptor(prometheus.StreamClientInterceptor))
+
 	conn, err := grpc.Dial(host, opts...)
 	conn, err := grpc.Dial(host, opts...)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err