1 Star 0 Fork 613

ihaiyan / GinSkeleton

forked from 张奇峰 / GinSkeleton 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
deploy_go.md 1.65 KB
一键复制 编辑 原始数据 按行查看 历史

运维方案之Go

1.我们已经介绍完毕了 LinuxMysqlRedisNginx 运维,接下来终于轮到介绍 Go程序 了,但是编写本篇文档却是一件令人沮丧的事情.....

前言

1.Go 应用程序属于业务应用,每个应用的侧重点差异很大,例如:有人关心某个go应用进程cpu、内存占用情况,有人希望获取该进程内部启动的协程总数量、以及GC状态.
2.如果是长连接应用,更多人关注的是同时在线数量等...,如果是Rpc服务,则更多关注的是Prc提供服务的成功率数据...
3.因此应用程序的监控指标没有统一的标准,这也导致了我们很难编写出一份完美的解决方案,监控某个具体的应用程序.
4.想要监控go应用程序你最关心的指标,则需要自己学会编写类似 node_export ,在/metrics 地址提供数据,供prometheus 获取,在 grafana 展示。

这里我们介绍一些世面上已有的监控方案,但是依然不是标准的。

1.监控 go 应用程序的原理:需要在go程序启动以后,自行收集关键指标,例如:本进程占用内存、cpu、启动的最大goroutine数量、GC等,对外提供/metrics服务地址,等待被获取。
2.从目前网上搜索到的资料看,相关的库已经有4年没有更新了,而且是基于go1.7版本...
3.参考地址:https://github.com/bmhatfield/go-runtime-metrics

最后

1.Go 应用进程的监控,目前推荐先暂时使用 Supervisor ,虽然界面简陋,但是依然提供了可视化的进程运行状态。

Go
1
https://gitee.com/hainakeji/GinSkeleton.git
git@gitee.com:hainakeji/GinSkeleton.git
hainakeji
GinSkeleton
GinSkeleton
master

搜索帮助