mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-01 22:12:31 +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"
|
"html"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/pprof"
|
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
@ -64,16 +63,7 @@ func Debugger(mux *http.ServeMux) *DebugHandler {
|
|||||||
ret.Handle("varz", "Metrics (Prometheus)", http.HandlerFunc(varz.Handler))
|
ret.Handle("varz", "Metrics (Prometheus)", http.HandlerFunc(varz.Handler))
|
||||||
}
|
}
|
||||||
|
|
||||||
// pprof.Index serves everything that runtime/pprof.Lookup finds:
|
addProfilingHandlers(ret)
|
||||||
// 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)")
|
|
||||||
ret.Handle("gc", "force GC", http.HandlerFunc(gcHandler))
|
ret.Handle("gc", "force GC", http.HandlerFunc(gcHandler))
|
||||||
hostname, err := os.Hostname()
|
hostname, err := os.Hostname()
|
||||||
if err == nil {
|
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"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
_ "net/http/pprof"
|
|
||||||
"net/netip"
|
"net/netip"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user