【golang-技巧】- pprof 添加开关

1.背景

由于直接引入 pprof 依赖 那么会导致 默认开启,且绑定默认listen端口

这样做 不安全,同时有一些 代码扫描 通过不了

2.代码

通过实现自定以 server 实现绑定 端口,不通过默认引入的方法 写到默认的 http server中

func AsyncOpenPprof(globalConfig *config.GlobalConfig, logger *component.TelemetryManager) {
	if globalConfig.Pprof != nil && globalConfig.Pprof.Enable {
		mux := http.NewServeMux()
		mux.HandleFunc("/debug/pprof/", pprof.Index)
		mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
		mux.HandleFunc("/debug/pprof/profile", pprof.Profile)
		mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
		mux.HandleFunc("/debug/pprof/trace", pprof.Trace)
		err := http.ListenAndServe(":"+globalConfig.Pprof.Port, mux)
		logger.Logger.Info("pprof  enable port :" + globalConfig.Pprof.Port)
		if err != nil {
			return
		}
	} else {
		logger.Logger.Info("pprof  disable")
	}
}

3.结论

通过这样实现 可以通过开关开启 pprof

实现规避性能影响 问题 ,代码安全扫描问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值