一 Prometheus监控介绍

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

  • 是一套开源的监控&报警&时间序列数据库的组合

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

  • 适合Docker、 Kubernetes环境的监控系统

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

  • Prometheus server定期从配置好的jobs/exporters/Pushgateway中拉数据

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

  • Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。

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

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

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

  1. Prometheus Server:用于收集和存储时间序列数据。

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

  3. Push Gateway:主要用于短期的jobs

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

  5. Alertmanager: 从Prometheus server端接收到alerts后,会进行

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

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

  2. 格式上由metric的名字和一系列的标签(键值对)唯一标识组成

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

  4. Counter 类型: - -种累加的指标,如:请求的个数,出现的错误数等

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

  6. Histogram 类型:可以对观察结果采样,分组及统计,如:柱状图

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

  8. instance : -个单独监控的目标,一般对应于一 个进程。

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

三 微服务监控系统grafana看板

  • 拥有 丰富dashboard和图表编辑的指标分析平台

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

  • 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

八 最后

  • 至此,go-micro微服务Prometheus监控工作就正式完成。

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

欢迎大家加入 夏沫の梦的学习交流群 进行学习交流经验,点击

(17)go-micro微服务Prometheus监控的更多相关文章

  1. 基于 prometheus 的微服务指标监控

    基于prometheus的微服务指标监控 服务上线后我们往往需要对服务进行监控,以便能及早发现问题并做针对性的优化,监控又可分为多种形式,比如日志监控,调用链监控,指标监控等等.而通过指标监控能清晰的 ...

  2. Spring Boot (九): 微服务应用监控 Spring Boot Actuator 详解

    1. 引言 在当前的微服务架构方式下,我们会有很多的服务部署在不同的机器上,相互是通过服务调用的方式进行交互,一个完整的业务流程中间会经过很多个微服务的处理和传递,那么,如何能知道每个服务的健康状况就 ...

  3. 微服务日志监控与查询logstash + kafka + elasticsearch

    使用 logstash + kafka + elasticsearch 实现日志监控 https://blog.csdn.net/github_39939645/article/details/788 ...

  4. go micro 微服务框架温习

    go mod edit -require="github.com/chromedp/chromedp@v0.1.0" @后面加上你需要的版本号.就可以 已经修改go.mod 里的依 ...

  5. 使用 Skywalking 对 Kubernetes(K8s)中的微服务进行监控

    1. 概述 老话说的好:任何成功都不是轻易得来的,是不断地坚持与面对的结果. 言归正传,之前我们聊了 SpringCloud 开发的微服务是如何部署在  Kubernetes(K8s)集群中的,今天我 ...

  6. 物联网架构成长之路(30)-Spring Boot Admin微服务WebUI监控

    0. 前言 一个完整的微服务解决方案包含了许多微服务,基于我们需要观察各个微服务的运行状态,因此Spring Boot 生态提供了Spring Boot Admin 这个组件来实现微服务管理WEB U ...

  7. SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控

      无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator.提到Actuator,又不得不提Micrometer ...

  8. 近期业务大量突增微服务性能优化总结-4.增加对于同步微服务的 HTTP 请求等待队列的监控

    最近,业务增长的很迅猛,对于我们后台这块也是一个不小的挑战,这次遇到的核心业务接口的性能瓶颈,并不是单独的一个问题导致的,而是几个问题揉在一起:我们解决一个之后,发上线,之后发现还有另一个的性能瓶颈问 ...

  9. Java微服务监控及与普罗米集成

    一.    背景说明 Java服务级监控用于对每个应用占用的内存.线程池的线程数量.restful调用数量和响应时间.JVM状态.GC信息等进行监控,并可将指标信息同步至普罗米修斯中集中展示和报警.网 ...

  10. SpringCloud微服务(04):Turbine组件,实现微服务集群监控

    本文源码:GitHub·点这里 || GitEE·点这里 写在前面,阅读本文前,你需要了解熔断器相关内容 SpringCloud微服务:Hystrix组件,实现服务熔断 一.聚合监控简介 1.Dash ...

随机推荐

  1. MySQL 主从复制一主两从环境配置实战

    MySQL 初始化 MySQL 主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式;从节点可以复制主数据库中的所有数据库或者特定的数据库 ...

  2. 知识图谱-生物信息学-医学顶刊论文(Briefings in Bioinformatics-2021):MPG:一种有效的自我监督框架,用于学习药物分子的全局表示以进行药物发现

    6.(2021.9.14)Briefings-MPG:一种有效的自我监督框架,用于学习药物分子的全局表示以进行药物发现 论文标题:An effective self-supervised framew ...

  3. 5.github操作

      Github设置远程仓库 将我们github的https或者ssh远程仓库地址复制 git remote add https://xxxxxxxTest.git # 指定github仓库设置为远程 ...

  4. Java多线程-线程生命周期(一)

    如果要问我Java当中最难的部分是什么?最有意思的部分是什么?最多人讨论的部分是什么?那我会毫不犹豫地说:多线程. Java多线程说它难,也不难,就是有点绕:说它简单,也不简单,需要理解的概念很多,尤 ...

  5. 夯实Java基础,一篇文章全解析线程问题

    1. 线程是什么 操作系统支持多个应用程序并发执行,每个应用程序至少对应一个进程 ,彼此之间的操作和数据不受干扰,彼此通信一般采用管道通信.消息队列.共享内存等方式.当一个进程需要磁盘IO的时候,CP ...

  6. JS 可编辑表格的实现(进阶)

    1.前言 在普通的可编辑表格的基础上,改进可编辑表格.数据来自外部的json(模拟服务端),通过json数据生成可编辑表格.根据实际情况,表格没有新增数据功能.表格的可编辑列,计算的列,每列的数据大小 ...

  7. docker支持ipv6

    方法 方法一.Pv6地址 不为容器中的服务特别分配IPv6地址. 只要Docker把外部的IPv6地址端口映射到容器的IPv4端口上,随后访问主机的IPv6相应端口即可. 方法二.为Docker网络分 ...

  8. ubuntu上升级cmake到3.16版本

    本来cmake的旧版本是2.8.12.2,现在更新到3.16.0版本. 需要文件:cmake 3.16.0压缩包,在附件. 1.  查看cmake版本:cmake --version 2.  解压cm ...

  9. Dive into TensorFlow系列(2)- 解析TF核心抽象op算子

    本文作者:李杰 TF计算图从逻辑层来讲,由op与tensor构成.op是项点代表计算单元,tensor是边代表op之间流动的数据内容,两者配合以数据流图的形式来表达计算图.那么op对应的物理层实现是什 ...

  10. Linux 交叉编译使用代码覆盖GCOV及LCOV

    1. GCOV GCOV是GCC自带的代码覆盖工具,GCOV. 在 GCC 编译的时加入特殊的编译选项,生成可执行文件,和 *.gcno: 运行(测试)生成的可执行文件,生成了 *.gcda 数据文件 ...