1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-23 01:20:11 +00:00

separate pprof from debug mode

enabled with -pprof now.
This commit is contained in:
Harvey Tindall 2021-03-23 21:59:04 +00:00
parent 636bc22d52
commit f0dccc58aa
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
2 changed files with 13 additions and 3 deletions

14
main.go
View File

@ -38,6 +38,7 @@ var (
DATA, CONFIG, HOST *string DATA, CONFIG, HOST *string
PORT *int PORT *int
DEBUG *bool DEBUG *bool
PPROF *bool
TEST bool TEST bool
SWAGGER *bool SWAGGER *bool
warning = color.New(color.FgYellow).SprintfFunc() warning = color.New(color.FgYellow).SprintfFunc()
@ -172,7 +173,8 @@ func start(asDaemon, firstCall bool) {
CONFIG = flag.String("config", app.configPath, "alternate path to config file.") CONFIG = flag.String("config", app.configPath, "alternate path to config file.")
HOST = flag.String("host", "", "alternate address to host web ui on.") HOST = flag.String("host", "", "alternate address to host web ui on.")
PORT = flag.Int("port", 0, "alternate port to host web ui on.") PORT = flag.Int("port", 0, "alternate port to host web ui on.")
DEBUG = flag.Bool("debug", false, "Enables debug logging and exposes pprof.") DEBUG = flag.Bool("debug", false, "Enables debug logging.")
PPROF = flag.Bool("pprof", false, "Exposes pprof profiler on /debug/pprof.")
SWAGGER = flag.Bool("swagger", false, "Enable swagger at /swagger/index.html") SWAGGER = flag.Bool("swagger", false, "Enable swagger at /swagger/index.html")
flag.Parse() flag.Parse()
@ -182,6 +184,9 @@ func start(asDaemon, firstCall bool) {
if *DEBUG { if *DEBUG {
os.Setenv("DEBUG", "1") os.Setenv("DEBUG", "1")
} }
if *PPROF {
os.Setenv("PPROF", "1")
}
} }
if os.Getenv("SWAGGER") == "1" { if os.Getenv("SWAGGER") == "1" {
@ -190,6 +195,9 @@ func start(asDaemon, firstCall bool) {
if os.Getenv("DEBUG") == "1" { if os.Getenv("DEBUG") == "1" {
*DEBUG = true *DEBUG = true
} }
if os.Getenv("PPROF") == "1" {
*PPROF = true
}
// attempt to apply command line flags correctly // attempt to apply command line flags correctly
if app.configPath == *CONFIG && app.dataPath != *DATA { if app.configPath == *CONFIG && app.dataPath != *DATA {
app.dataPath = *DATA app.dataPath = *DATA
@ -248,11 +256,13 @@ func start(asDaemon, firstCall bool) {
debugMode = true debugMode = true
} }
if debugMode { if debugMode {
app.info.Print(warning("\n\nWARNING: Don't use debug mode in production, as it exposes pprof on the network.\n\n"))
app.debug = NewLogger(os.Stdout, "[DEBUG] ", log.Ltime|log.Lshortfile, color.FgYellow) app.debug = NewLogger(os.Stdout, "[DEBUG] ", log.Ltime|log.Lshortfile, color.FgYellow)
} else { } else {
app.debug = emptyLogger(false) app.debug = emptyLogger(false)
} }
if *PPROF {
app.info.Print(warning("\n\nWARNING: Don't use pprof in production.\n\n"))
}
// Starts listener to receive commands over a unix socket. Use with 'jfa-go start/stop' // Starts listener to receive commands over a unix socket. Use with 'jfa-go start/stop'
if asDaemon { if asDaemon {

View File

@ -85,7 +85,7 @@ func (app *appContext) loadRouter(address string, debug bool) *gin.Engine {
app.loadHTML(router) app.loadHTML(router)
router.Use(static.Serve("/", app.webFS)) router.Use(static.Serve("/", app.webFS))
router.NoRoute(app.NoRouteHandler) router.NoRoute(app.NoRouteHandler)
if debug { if *PPROF {
app.debug.Println("Loading pprof") app.debug.Println("Loading pprof")
pprof.Register(router) pprof.Register(router)
} }