...

Source file src/golang.conradwood.net/go-easyops/client/client_stream_interceptor.go

Documentation: golang.conradwood.net/go-easyops/client

     1  package client
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"time"
     7  
     8  	"golang.conradwood.net/go-easyops/auth"
     9  	"golang.conradwood.net/go-easyops/cmdline"
    10  	pp "golang.conradwood.net/go-easyops/profiling"
    11  	"google.golang.org/grpc"
    12  )
    13  
    14  func unaryStreamInterceptor(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error) {
    15  	pp.ClientRpcEntered()
    16  	var err error
    17  	s := "X"
    18  	m := "Y"
    19  	if cmdline.IsDebugRPCClient() {
    20  		s, m, err = splitMethodAndService(method)
    21  		if err != nil {
    22  			fmt.Printf("[go-easyops] failed to split method \"%s\": %s\n", method, err)
    23  		}
    24  		fmt.Printf("[go-easyops] invoking streaming rpc \"%s/%s\" as user %s\n", s, m, auth.UserIDString(auth.GetUser(ctx)))
    25  	}
    26  	started := time.Now()
    27  	cs, err := streamer(ctx, desc, cc, method, opts...)
    28  	pp.ClientRpcDone()
    29  	dur := time.Since(started)
    30  	if cmdline.IsDebugRPCClient() {
    31  		if err != nil {
    32  			fmt.Printf("[go-easyops] streaming rpc \"%s/%s\" failed after %0.2fs with error %s\n", s, m, dur.Seconds(), err)
    33  		} else {
    34  			fmt.Printf("[go-easyops] streaming rpc \"%s/%s\" returned after %0.2fs\n", s, m, dur.Seconds())
    35  		}
    36  	}
    37  	return cs, err
    38  }
    39  

View as plain text