diff --git a/api/admin/performance.go b/api/admin/performance.go index bf2a460..6035b08 100644 --- a/api/admin/performance.go +++ b/api/admin/performance.go @@ -10,6 +10,15 @@ import ( "runtime/pprof" ) +const ( + // Name of file that CPU profile is written to when StartCPUProfiler called + cpuProfileFile = "cpu.profile" + // Name of file that memory profile is written to when MemoryProfile called + memProfileFile = "mem.profile" + // Name of file that lock profile is written to + lockProfileFile = "lock.profile" +) + var ( errCPUProfilerRunning = errors.New("cpu profiler already running") errCPUProfilerNotRunning = errors.New("cpu profiler doesn't exist") @@ -20,12 +29,12 @@ var ( type Performance struct{ cpuProfileFile *os.File } // StartCPUProfiler starts measuring the cpu utilization of this node -func (p *Performance) StartCPUProfiler(filename string) error { +func (p *Performance) StartCPUProfiler() error { if p.cpuProfileFile != nil { return errCPUProfilerRunning } - file, err := os.Create(filename) + file, err := os.Create(cpuProfileFile) if err != nil { return err } @@ -52,8 +61,8 @@ func (p *Performance) StopCPUProfiler() error { } // MemoryProfile dumps the current memory utilization of this node -func (p *Performance) MemoryProfile(filename string) error { - file, err := os.Create(filename) +func (p *Performance) MemoryProfile() error { + file, err := os.Create(memProfileFile) if err != nil { return err } @@ -66,8 +75,8 @@ func (p *Performance) MemoryProfile(filename string) error { } // LockProfile dumps the current lock statistics of this node -func (p *Performance) LockProfile(filename string) error { - file, err := os.Create(filename) +func (p *Performance) LockProfile() error { + file, err := os.Create(lockProfileFile) if err != nil { return err } diff --git a/api/admin/service.go b/api/admin/service.go index 3d61730..c5059f0 100644 --- a/api/admin/service.go +++ b/api/admin/service.go @@ -39,21 +39,16 @@ func NewService(log logging.Logger, chainManager chains.Manager, peers network.N return &common.HTTPHandler{Handler: newServer} } -// StartCPUProfilerArgs are the arguments for calling StartCPUProfiler -type StartCPUProfilerArgs struct { - Filename string `json:"filename"` -} - // StartCPUProfilerReply are the results from calling StartCPUProfiler type StartCPUProfilerReply struct { Success bool `json:"success"` } // StartCPUProfiler starts a cpu profile writing to the specified file -func (service *Admin) StartCPUProfiler(_ *http.Request, args *StartCPUProfilerArgs, reply *StartCPUProfilerReply) error { - service.log.Info("Admin: StartCPUProfiler called with %s", args.Filename) +func (service *Admin) StartCPUProfiler(_ *http.Request, args *struct{}, reply *StartCPUProfilerReply) error { + service.log.Info("Admin: StartCPUProfiler called") reply.Success = true - return service.performance.StartCPUProfiler(args.Filename) + return service.performance.StartCPUProfiler() } // StopCPUProfilerReply are the results from calling StopCPUProfiler @@ -68,26 +63,16 @@ func (service *Admin) StopCPUProfiler(_ *http.Request, _ *struct{}, reply *StopC return service.performance.StopCPUProfiler() } -// MemoryProfileArgs are the arguments for calling MemoryProfile -type MemoryProfileArgs struct { - Filename string `json:"filename"` -} - // MemoryProfileReply are the results from calling MemoryProfile type MemoryProfileReply struct { Success bool `json:"success"` } // MemoryProfile runs a memory profile writing to the specified file -func (service *Admin) MemoryProfile(_ *http.Request, args *MemoryProfileArgs, reply *MemoryProfileReply) error { - service.log.Info("Admin: MemoryProfile called with %s", args.Filename) +func (service *Admin) MemoryProfile(_ *http.Request, args *struct{}, reply *MemoryProfileReply) error { + service.log.Info("Admin: MemoryProfile called") reply.Success = true - return service.performance.MemoryProfile(args.Filename) -} - -// LockProfileArgs are the arguments for calling LockProfile -type LockProfileArgs struct { - Filename string `json:"filename"` + return service.performance.MemoryProfile() } // LockProfileReply are the results from calling LockProfile @@ -96,10 +81,10 @@ type LockProfileReply struct { } // LockProfile runs a mutex profile writing to the specified file -func (service *Admin) LockProfile(_ *http.Request, args *LockProfileArgs, reply *LockProfileReply) error { - service.log.Info("Admin: LockProfile called with %s", args.Filename) +func (service *Admin) LockProfile(_ *http.Request, args *struct{}, reply *LockProfileReply) error { + service.log.Info("Admin: LockProfile called") reply.Success = true - return service.performance.LockProfile(args.Filename) + return service.performance.LockProfile() } // AliasArgs are the arguments for calling Alias