You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
### 运维方案之Go
> 1.我们已经介绍完毕了 `Linux` 、`Mysql` 、`Redis` 、 `Nginx` 运维,接下来终于轮到介绍 `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 ](supervisor.md ) ,虽然界面简陋,但是依然提供了可视化的进程运行状态。