mirror of
https://github.com/golang/go
synced 2024-11-18 23:05:06 -07:00
net/http/pprof: accept fractional seconds in trace handler
For heavily loaded servers, even 1 second of trace is too large to process with the trace viewer; using a float64 here allows fetching /debug/pprof/trace?seconds=0.1. Change-Id: I286c07abf04f9c1fe594b0e26799bf37f5c734db Reviewed-on: https://go-review.googlesource.com/21455 Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
720c4c016c
commit
b0eeb8b0aa
@ -120,8 +120,8 @@ func Profile(w http.ResponseWriter, r *http.Request) {
|
|||||||
// Tracing lasts for duration specified in seconds GET parameter, or for 1 second if not specified.
|
// Tracing lasts for duration specified in seconds GET parameter, or for 1 second if not specified.
|
||||||
// The package initialization registers it as /debug/pprof/trace.
|
// The package initialization registers it as /debug/pprof/trace.
|
||||||
func Trace(w http.ResponseWriter, r *http.Request) {
|
func Trace(w http.ResponseWriter, r *http.Request) {
|
||||||
sec, _ := strconv.ParseInt(r.FormValue("seconds"), 10, 64)
|
sec, err := strconv.ParseFloat(r.FormValue("seconds"), 64)
|
||||||
if sec == 0 {
|
if sec <= 0 || err != nil {
|
||||||
sec = 1
|
sec = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ func Trace(w http.ResponseWriter, r *http.Request) {
|
|||||||
fmt.Fprintf(w, "Could not enable tracing: %s\n", err)
|
fmt.Fprintf(w, "Could not enable tracing: %s\n", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sleep(w, time.Duration(sec)*time.Second)
|
sleep(w, time.Duration(sec*float64(time.Second)))
|
||||||
trace.Stop()
|
trace.Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user