@@ -56,7 +56,7 @@ func (c *testCounter) count() int {
5656//
5757
5858func createMeteredClientConnection (
59- t testing.TB , server DRPCServiceServer , metrics * drpcmetrics.ClientMetrics ,
59+ t testing.TB , server DRPCServiceServer , metrics drpcmetrics.ClientMetrics ,
6060) (DRPCServiceClient , func ()) {
6161 ctx := drpctest .NewTracker (t )
6262 c1 , c2 := net .Pipe ()
@@ -65,8 +65,9 @@ func createMeteredClientConnection(
6565 srv := drpcserver .New (mux )
6666 ctx .Run (func (ctx context.Context ) { _ = srv .ServeOne (ctx , c1 ) })
6767 conn := drpcconn .NewWithOptions (c2 , drpcconn.Options {
68- Manager : drpcmanager.Options {},
69- Metrics : metrics ,
68+ Manager : drpcmanager.Options {},
69+ Metrics : metrics ,
70+ CollectMetrics : true ,
7071 })
7172 return NewDRPCServiceClient (conn ), func () {
7273 _ = conn .Close ()
@@ -84,7 +85,7 @@ func TestClientByteMetrics(t *testing.T) {
8485
8586 sent := & testCounter {}
8687 recv := & testCounter {}
87- cli , close := createMeteredClientConnection (t , standardImpl , & drpcmetrics.ClientMetrics {
88+ cli , close := createMeteredClientConnection (t , standardImpl , drpcmetrics.ClientMetrics {
8889 BytesSent : sent ,
8990 BytesRecv : recv ,
9091 })
@@ -121,7 +122,7 @@ func TestClientByteMetricsPartialNil(t *testing.T) {
121122 defer ctx .Close ()
122123
123124 sent := & testCounter {}
124- cli , close := createMeteredClientConnection (t , standardImpl , & drpcmetrics.ClientMetrics {
125+ cli , close := createMeteredClientConnection (t , standardImpl , drpcmetrics.ClientMetrics {
125126 BytesSent : sent ,
126127 // BytesRecv intentionally nil.
127128 })
@@ -133,13 +134,44 @@ func TestClientByteMetricsPartialNil(t *testing.T) {
133134 assert .That (t , sent .total () > 0 )
134135}
135136
137+ func TestClientByteMetricsNotCollected (t * testing.T ) {
138+ ctx := drpctest .NewTracker (t )
139+ defer ctx .Close ()
140+
141+ sent := & testCounter {}
142+ recv := & testCounter {}
143+
144+ c1 , c2 := net .Pipe ()
145+ mux := drpcmux .New ()
146+ assert .NoError (t , DRPCRegisterService (mux , standardImpl ))
147+ srv := drpcserver .New (mux )
148+ ctx .Run (func (ctx2 context.Context ) { _ = srv .ServeOne (ctx2 , c1 ) })
149+ conn := drpcconn .NewWithOptions (c2 , drpcconn.Options {
150+ Metrics : drpcmetrics.ClientMetrics {
151+ BytesSent : sent ,
152+ BytesRecv : recv ,
153+ },
154+ })
155+ cli := NewDRPCServiceClient (conn )
156+
157+ out , err := cli .Method1 (ctx , in (1 ))
158+ assert .NoError (t , err )
159+ assert .True (t , Equal (out , & Out {Out : 1 }))
160+
161+ // CollectMetrics is false, so no metrics should be collected.
162+ assert .Equal (t , sent .total (), 0.0 )
163+ assert .Equal (t , recv .total (), 0.0 )
164+
165+ _ = conn .Close ()
166+ }
167+
136168func TestServerTLSHandshakeErrorMetric (t * testing.T ) {
137169 tlsErrors := & testCounter {}
138170
139171 mux := drpcmux .New ()
140172 assert .NoError (t , DRPCRegisterService (mux , standardImpl ))
141173 srv := drpcserver .NewWithOptions (mux , drpcserver.Options {
142- Metrics : & drpcserver.ServerMetrics {
174+ Metrics : drpcserver.ServerMetrics {
143175 TLSHandshakeErrors : tlsErrors ,
144176 },
145177 })
0 commit comments