当前位置: 首页 > article >正文

【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

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


http://www.kler.cn/a/395180.html

相关文章:

  • SpringBoot(十八)SpringBoot集成Minio
  • 火车车厢重排问题,C++详解
  • 机器学习【激活函数】
  • 3D编辑器教程:如何实现3D模型多材质定制效果?
  • Windows C++ TCP/IP 两台电脑上互相传输字符串数据
  • git下载慢下载不了?Git国内国外下载地址镜像,git安装视频教程
  • Leetcode刷题Python之3258.统计满足k约束的子字符串I
  • SSM学习记录(二)之SSM整合配置
  • 【Unity基础】对比OnCollisionEnter与OnTriggerEnter
  • 机器学习:CatBoost模型(高级版)——高效且强大的树形模型
  • 深度学习知识点5-马尔可夫链
  • 等保测评怎么做?具体流程是什么?
  • 鸿蒙UIAbility
  • 基于微信小程序的在线疫苗预约的设计与实现,LW+源码+讲解
  • 搜维尔科技:Haption力触觉交互,虚拟机械装配验证
  • 【K8S问题系列 | 9】如何监控集群CPU使用率并设置告警?
  • C++《继承》
  • SpringBoot -- 自动化装配源码
  • 江协科技之STM32驱动1.3寸/0.96寸/0.91寸OLED显示屏介绍
  • js中import引入一个export值可以被修改。vue,react
  • 【计网】计算机网络概述笔记
  • 使用frp工具实现内网穿透
  • 基于yolov8、yolov5的车型检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • Scala的迭代器
  • javaWeb小白项目--学生宿舍管理系统
  • C语言不创建中间变量交换2个数