(17)go-micro微服务Prometheus监控

科技资讯 投稿 8600 0 评论

(17)go-micro微服务Prometheus监控

一 Prometheus监控介绍

1.微服务监控系统promethues介绍

  • 基本原理是通过HTTP协议周期性抓取被监控组件的状态

2.微服务监控系统promethues工作流程

  • Prometheus server记录数据并且根据报警规则推送alert数据

  • 在图形界面中,可视化采集数据

二 Prometheus监控重要组件和重要概念

1.微服务监控系统promethues重要组件

  1. Client Library:客户端库成相应的metrics并暴露给Prometheus server

  2. Exporters: 用于暴露已有的第三方服务的metrics给Prometheus

2.微服务监控系统promethues重要概念

    Prometheus 中存储的数据为时间序列

  1. 不同的标签则代表不同的时间序列

  2. Gauge 类型:可以任意加减,如:温度,运行的goroutines的个数

  3. Summary 类型:提供观测值的count和sum功能,如:请求持续时间

  4. jobs:一组同种类型的instances (主要用于保证可扩展性和可靠性

三 微服务监控系统grafana看板

  • 拥有自己的权限管理和用户管理系统

四 Prometheus监控+Grafana看板安装

1.安装Prometheus监控

    拉取镜像:
docker pull bitnami/prometheus
    运行:
docker run -d -p 9090:9090 bitnami/prometheus
    查看是否运行:
docker ps

2.安装Grafana看板

    拉取镜像:
docker pull grafana/grafana
    运行:
docker run -d -p 3000:3000 grafana/grafana
    查看是否运行:
docker ps

五 Prometheus监控使用

    在micro目录下新建prometheus.go文件
go get github.com/prometheus/client_golang/prometheus/promhttp
    编写以下代码:
package micro

import (
   "github.com/prometheus/client_golang/prometheus/promhttp"
   "log"
   "net/http"
   "strconv"


func PrometheusBoot(host string,port int{
   http.Handle("/metrics",promhttp.Handler(
   //启动web服务
   go func( {
      err := http.ListenAndServe(host+":"+strconv.Itoa(port,nil
      if err!= nil{
         log.Fatal(("监控启动失败"
      }
      log.Fatal("监控启动,端口为: "+strconv.Itoa(port
   }(
}

六 Prometheus监控注册服务

    导包:
go get github.com/micro/go-plugins/wrapper/monitoring/prometheus/v2
    在main.go文件中写入以下代码
// 7.暴露监控地址
micro2.PrometheusBoot(micro2.ConsulInfo.Prometheus.Host, int(micro2.ConsulInfo.Prometheus.Port

    注:传的参数是使用consul导入的,可以换成自定义的

//添加监控
micro.WrapHandler(prometheus.NewHandlerWrapper(,

七 Prometheus监控图形化界面

    运行项目

Prometheus原生看板

Grafana看板

    首次登录,账号:admin;密码:admin

八 最后

  • 接下来就开始微服务ELK介绍的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。

夏沫の梦的学习交流群 进行学习交流经验,点击

编程笔记 » (17)go-micro微服务Prometheus监控

赞同 (44) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽