###    运维方案之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)  ，虽然界面简陋，但是依然提供了可视化的进程运行状态。 