mirror of
https://github.com/tailscale/tailscale.git
synced 2025-03-29 04:22:24 +00:00
tsweb: don't hook up pprof handlers in javascript builds
Updates #15160 Signed-off-by: David Anderson <dave@tailscale.com>
This commit is contained in:
parent
14db99241f
commit
c7c9298b72
@ -9,7 +9,6 @@ import (
|
||||
"html"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/pprof"
|
||||
"net/url"
|
||||
"os"
|
||||
"runtime"
|
||||
@ -64,16 +63,7 @@ func Debugger(mux *http.ServeMux) *DebugHandler {
|
||||
ret.Handle("varz", "Metrics (Prometheus)", http.HandlerFunc(varz.Handler))
|
||||
}
|
||||
|
||||
// pprof.Index serves everything that runtime/pprof.Lookup finds:
|
||||
// goroutine, threadcreate, heap, allocs, block, mutex
|
||||
ret.Handle("pprof/", "pprof (index)", http.HandlerFunc(pprof.Index))
|
||||
// But register the other ones from net/http/pprof directly:
|
||||
ret.HandleSilent("pprof/cmdline", http.HandlerFunc(pprof.Cmdline))
|
||||
ret.HandleSilent("pprof/profile", http.HandlerFunc(pprof.Profile))
|
||||
ret.HandleSilent("pprof/symbol", http.HandlerFunc(pprof.Symbol))
|
||||
ret.HandleSilent("pprof/trace", http.HandlerFunc(pprof.Trace))
|
||||
ret.URL("/debug/pprof/goroutine?debug=1", "Goroutines (collapsed)")
|
||||
ret.URL("/debug/pprof/goroutine?debug=2", "Goroutines (full)")
|
||||
addProfilingHandlers(ret)
|
||||
ret.Handle("gc", "force GC", http.HandlerFunc(gcHandler))
|
||||
hostname, err := os.Hostname()
|
||||
if err == nil {
|
||||
|
24
tsweb/pprof_default.go
Normal file
24
tsweb/pprof_default.go
Normal file
@ -0,0 +1,24 @@
|
||||
// Copyright (c) Tailscale Inc & AUTHORS
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
//go:build !js
|
||||
|
||||
package tsweb
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/pprof"
|
||||
)
|
||||
|
||||
func addProfilingHandlers(d *DebugHandler) {
|
||||
// pprof.Index serves everything that runtime/pprof.Lookup finds:
|
||||
// goroutine, threadcreate, heap, allocs, block, mutex
|
||||
d.Handle("pprof/", "pprof (index)", http.HandlerFunc(pprof.Index))
|
||||
// But register the other ones from net/http/pprof directly:
|
||||
d.HandleSilent("pprof/cmdline", http.HandlerFunc(pprof.Cmdline))
|
||||
d.HandleSilent("pprof/profile", http.HandlerFunc(pprof.Profile))
|
||||
d.HandleSilent("pprof/symbol", http.HandlerFunc(pprof.Symbol))
|
||||
d.HandleSilent("pprof/trace", http.HandlerFunc(pprof.Trace))
|
||||
d.URL("/debug/pprof/goroutine?debug=1", "Goroutines (collapsed)")
|
||||
d.URL("/debug/pprof/goroutine?debug=2", "Goroutines (full)")
|
||||
}
|
8
tsweb/pprof_js.go
Normal file
8
tsweb/pprof_js.go
Normal file
@ -0,0 +1,8 @@
|
||||
// Copyright (c) Tailscale Inc & AUTHORS
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
package tsweb
|
||||
|
||||
func addProfilingHandlers(d *DebugHandler) {
|
||||
// No pprof in js builds, pprof doesn't work and bloats the build.
|
||||
}
|
@ -15,7 +15,6 @@ import (
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
_ "net/http/pprof"
|
||||
"net/netip"
|
||||
"net/url"
|
||||
"os"
|
||||
|
Loading…
x
Reference in New Issue
Block a user