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 }