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

网站页面类型智慧餐厅管理系统

网站页面类型,智慧餐厅管理系统,wordpress默认邮件文件夹,上海小红书seoprometheus与grafana的安装 grom接入Prometheus,grafana-CSDN博客 Prometheus 动态加载 我们想给Prometheus新增监听任务新增ginapp项目只需要在原来的配置文件下面新增ginapp相关metric 在docker compose文件下面新增 执行 docker-compose up -d curl -X POST http://lo…

prometheus与grafana的安装

grom接入Prometheus,grafana-CSDN博客

Prometheus 动态加载

我们想给Prometheus新增监听任务新增ginapp项目只需要在原来的配置文件下面新增ginapp相关metric

在docker compose文件下面新增

执行

docker-compose up -d 
curl -X POST http://localhost:9090/-/reload

granfa配置新的job

配置golang dashboard模版

配置之后我们看以在dashboard看到

Gin框架中间件配置

package initializationimport ("awesomeProject3/middware""awesomeProject3/router""github.com/Depado/ginprom""github.com/gin-gonic/gin"_ "net/http/pprof"
)func Routers() *gin.Engine {r := gin.New()r.Use(middware.GinRecovery(true), middware.GinZapLogger())r.Use(middware.Cors())router.InitOrderRouter(r)p := ginprom.New(ginprom.Engine(r),ginprom.Subsystem("gin"),)r.Use(p.Instrument())return r
}

pprof配置

package routerimport ("awesomeProject3/api""github.com/gin-gonic/gin""net/http""net/http/pprof"
)func InitOrderRouter(Router *gin.Engine) {Router.GET("/health", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"code":    http.StatusOK,"success": true,})})// 定义一个简单的GET路由Router.GET("/v1/ping", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"message": "pong",})})Router.GET("/test", api.TestHandler) //pprofGroup := Router.Group("/debug/pprof"){pprofGroup.GET("/", gin.WrapF(pprof.Index))pprofGroup.GET("/cmdline", gin.WrapF(pprof.Cmdline))pprofGroup.GET("/profile", gin.WrapF(pprof.Profile))pprofGroup.GET("/symbol", gin.WrapF(pprof.Symbol))pprofGroup.GET("/trace", gin.WrapF(pprof.Trace))pprofGroup.GET("/allocs", gin.WrapH(pprof.Handler("allocs")))pprofGroup.GET("/block", gin.WrapH(pprof.Handler("block")))pprofGroup.GET("/goroutine", gin.WrapH(pprof.Handler("goroutine")))pprofGroup.GET("/heap", gin.WrapH(pprof.Handler("heap")))pprofGroup.GET("/mutex", gin.WrapH(pprof.Handler("mutex")))pprofGroup.GET("/threadcreate", gin.WrapH(pprof.Handler("threadcreate")))}
}

模拟内存泄露

之前我们生产项目中出现过一次严重的内存泄露,例子如下图所示,该接口qps非常高

对当前接口压测

pprof监控

Grafana监控

我们看到goroutine数量已经爆表了,我的mac风扇开始转了

这个时候可以点击pprof groutine很好定位哪一块出现了内存泄露

结论

我们在使用golang 高并行处理下游任务的时候,一定要对下游基础设施要有敬畏之心,调用时限制goroutine的运行数量并且设置上context超时控制,做好超时熔断措施,做好监控警告,下游基础设施如果达到瓶颈,我们可对下游基础进行主从 水平扩容等。

http://www.yayakq.cn/news/402265/

相关文章:

  • 网站开发 资质静态html怎么部署到服务器
  • 郑州好的网站建设公司排名大型网站建设需要
  • 深圳专业网站网站关键词优化排名软件系统
  • 工信网备案网站中山外贸网站建设报价
  • 做图的ppt模板下载网站wordpress友情链接函数
  • 木樨园网站建设网站开发招标参数
  • 邢台专业做网站公司淘宝关键词指数
  • 织梦网站建设莱芜东风街吧百度贴吧
  • 自己给自己网站做seoseo需要什么技术
  • 漳州网站建设哪家最权威网站开发实践实验报告
  • 建设互联网站是什么app制作免费官网
  • 网站建设 淘宝详情网站开发职责与要求
  • 深圳公司做年报网站网站建设所用的工具
  • 网上发布信息的网站怎么做网站建设类文章
  • 网站seo诊断书网站建设知识论文
  • 苏州网站建设公司鹅鹅鹅营销型的物流网站模板
  • 寻找手机网站建设群晖wordpress端口映射
  • 有投标功能的网站怎么做wordpress主题出错
  • 购物网站用户管理宁波专业网站公司
  • 专业设计网站排名阿里国际网站做免费有用吗
  • php网站跟随导航网站建设公司营销方案
  • 淘宝网站建设代码asp.net网站开发教程下载
  • php自己写框架做网站南江红鱼洞水库建设管理局网站
  • 钓鱼网站查询系统中国建设银行贵州分行网站
  • 网站营销合同网页报价
  • 从网站下载壁纸做海报涉及vi企业形象设计案例
  • 中英版网站怎么做餐饮品牌设计网站
  • 虹口上海网站建设智鼎互联网站建设
  • 有哪些做文创产品的网站学院网站建设建议
  • 开发区网站建设工作管理办法全球最顶尖的设计公司