一 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. 齐博x1模块安装文件讲解

    频道模块存放的目录是/application/频道目录/ 插件存放的目录是/plugins/插件目录/ 他的安装目录都是/install/ 推荐参考默认的/application/cms/instal ...

  2. 齐博x1万能数据统计接口

    为何叫万能数据统计接口呢?因为可以调用全站任何数据表的数据总条数,并且可以设置查询条件http://qb.net/index.php/index/wxapp.count.html?table=memb ...

  3. 齐博x1APP要实现直播的关键两步

    大家务必要注意,缺少这两步,你的APP将不能实现直播, 也即点击直播按钮无法启动直播推流 https://www.maxdo.tech/

  4. golang开发一个简单的grpc

    0.1.索引 https://waterflow.link/articles/1665674508275 1.什么是grpc 在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的 ...

  5. 基于BP神经网络的手MNIST写数字识别

    import numpy import math import scipy.special#特殊函数模块 import matplotlib.pyplot as plt #创建神经网络类,以便于实例化 ...

  6. Helm干货!速度围观!

    最近个人学习Helm,感觉Helm的功能很强大!分享一些干货给大家吧,希望有所帮助! 基本概念 Chart 一个Helm包,包含在K8S集群内,运行一个应用,工具或者服务所需要的所有的资源定义,类似于 ...

  7. Seata Server 1.5.2 源码学习

    Seata 包括 Server端和Client端.Seata中有三种角色:TC.TM.RM,其中,Server端就是TC,TM和RM属Client端.Client端的源码学习上一篇已讲过,详见 < ...

  8. Codeforces Round #786 (Div. 3) 补题记录

    小结: A,B,F 切,C 没写 1ll 对照样例才发现,E,G 对照样例过,D 对照样例+看了其他人代码(主要急于看后面的题,能调出来的但偷懒了. CF1674A Number Transforma ...

  9. .NET应用开发之SQLServer常见问题分析

    日常我们开发.NET应用时会使用SQLServer数据库,对于SQLServer数据库的日常开发有一些技能和工具,准备给大家分享一下. 一.场景1:SQLServer死锁分析  执行以下SQL,启用S ...

  10. C#之GCHandle

    转载 略谈GCHandle C# - Marshal.StructureToPtr方法简介 Marshal类 两个方法StructureToPtr和PtrToStructure实现序列化 字节 数组 ...