github.com/pachyderm/pachyderm@v1.13.4/src/client/debug.go (about)

     1  package client
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/pachyderm/pachyderm/src/client/debug"
     7  	"github.com/pachyderm/pachyderm/src/client/pkg/grpcutil"
     8  )
     9  
    10  // Profile collects a set of pprof profiles.
    11  func (c APIClient) Profile(profile *debug.Profile, filter *debug.Filter, w io.Writer) (retErr error) {
    12  	defer func() {
    13  		retErr = grpcutil.ScrubGRPC(retErr)
    14  	}()
    15  	profileC, err := c.DebugClient.Profile(c.Ctx(), &debug.ProfileRequest{
    16  		Profile: profile,
    17  		Filter:  filter,
    18  	})
    19  	if err != nil {
    20  		return err
    21  	}
    22  	return grpcutil.WriteFromStreamingBytesClient(profileC, w)
    23  }
    24  
    25  // Binary collects a set of binaries.
    26  func (c APIClient) Binary(filter *debug.Filter, w io.Writer) (retErr error) {
    27  	defer func() {
    28  		retErr = grpcutil.ScrubGRPC(retErr)
    29  	}()
    30  	binaryC, err := c.DebugClient.Binary(c.Ctx(), &debug.BinaryRequest{Filter: filter})
    31  	if err != nil {
    32  		return err
    33  	}
    34  	return grpcutil.WriteFromStreamingBytesClient(binaryC, w)
    35  }
    36  
    37  // Dump collects a standard set of debugging information.
    38  func (c APIClient) Dump(filter *debug.Filter, limit int64, w io.Writer) (retErr error) {
    39  	defer func() {
    40  		retErr = grpcutil.ScrubGRPC(retErr)
    41  	}()
    42  	dumpC, err := c.DebugClient.Dump(c.Ctx(), &debug.DumpRequest{
    43  		Filter: filter,
    44  		Limit:  limit,
    45  	})
    46  	if err != nil {
    47  		return err
    48  	}
    49  	return grpcutil.WriteFromStreamingBytesClient(dumpC, w)
    50  }