使用 Prometheus 监控 Golang 服务-基于 YoyoGo 框架
时间: 2020-08-21来源:V2EX
前景提要
Prometheus
Prometheus 是一个非常棒的工具,结合 grafana 能够让我在不写代码,或者少写代码的情况下搭建一套有效的监控体系。这里介绍一下 Prometheus 监控 golang 程序的方式。
Golang 服务程序
Golang 的 Web 程序,我使用了 YoyoGo 框架, 《 YoyoGo 基于 ASP.NET Core 设计的 Golang 实现 》 可以查看这篇文章进行了解。 最新也发布了最新的 v1.5.0 版本,下面 Prometheus 接口就是这个版本的新功能。 想要程序能够被监控,就必须要将程序运行中的各项目指标暴露出来,提供给 Promtheus 进行信息采集,当然 Prometheus 也提供 push 的方式,本例中将使用拉的方式。我们可以使用 Prometheus 提供的 golang 客户端暴露自身的运行时信息。代码例子如下: import ( "github.com/yoyofx/yoyogo/WebFramework" "github.com/yoyofx/yoyogo/WebFramework/Context" "github.com/yoyofx/yoyogo/WebFramework/Endpoints" ) func main(){ YoyoGo.CreateDefaultBuilder(func(router Router.IRouterBuilder) { Endpoints.UsePrometheus(router) router.GET("/info", func (ctx *Context.HttpContext) { ctx.JSON(200, Context.M{"info": "ok"}) }) }).Build().Run() }

访问本地的 8080 端口就能看到监控的指标,这里监控的都是默认指标,当然你可以可以自定义你需要的量化的指标,然后暴露出来,这里就不多介绍了。

配置 Prometheus
在 Prometheus 官网 下载后,我们来配置下 Prometheus ,让它为我们采集的 Golang 服务程序的监控指标:
prometheus.yml : - job_name: 'golang' scrape_interval: 10s metrics_path: /actuator/metrics static_configs: - targets: ['localhost:8080']
启动 Prometheus : .\prometheus.exe
启动 Promethues 等待 10s,Golang 指标就会被采集到 Promethues 的时序数据库中了,访问 http://localhost:9090/ 得到如下效果

Grafana
在 Grafana 官网 下载后,接下来就是把这些指标在 grafana 图形化展示出来:
启动 Grafana : ./grafana-server
进入 http://localhost:3000/ 后,配置数据源 DataSource ,Dashboard 直接使用了官方插件 10826 导入这个 ID 后,最后展示出来的效果如下:
最后
最近在写基于 Golang 的工具和框架,还请多多 Star. YoyoGo 是一个用 Go 编写的简单,轻便,快速的 微服务框架,目前已实现了 Web 框架的能力,但是底层设计已支持多种服务架构。
Github
https://github.com/yoyofx/yoyogo
https://github.com/yoyofxteam

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行