(17)go-micro微服务Prometheus监控
一 Prometheus监控介绍
1.微服务监控系统promethues介绍
是一套开源的监控&报警&时间序列数据库的组合
基本原理是通过HTTP协议周期性抓取被监控组件的状态
适合Docker、 Kubernetes环境的监控系统
2.微服务监控系统promethues工作流程
Prometheus server定期从配置好的jobs/exporters/Pushgateway中拉数据
Prometheus server记录数据并且根据报警规则推送alert数据
Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。
在图形界面中,可视化采集数据
二 Prometheus监控重要组件和重要概念
1.微服务监控系统promethues重要组件
Prometheus Server:用于收集和存储时间序列数据。
Client Library:客户端库成相应的metrics并暴露给Prometheus server
Push Gateway:主要用于短期的jobs
Exporters: 用于暴露已有的第三方服务的metrics给Prometheus
Alertmanager: 从Prometheus server端接收到alerts后,会进行
2.微服务监控系统promethues重要概念
Prometheus 中存储的数据为时间序列
格式上由metric的名字和一系列的标签(键值对)唯一标识组成
不同的标签则代表不同的时间序列
Counter 类型: - -种累加的指标,如:请求的个数,出现的错误数等
Gauge 类型:可以任意加减,如:温度,运行的goroutines的个数
Histogram 类型:可以对观察结果采样,分组及统计,如:柱状图
Summary 类型:提供观测值的count和sum功能,如:请求持续时间
instance : -个单独监控的目标,一般对应于一 个进程。
jobs:一组同种类型的instances (主要用于保证可扩展性和可靠性)
三 微服务监控系统grafana看板
拥有 丰富dashboard和图表编辑的指标分析平台
拥有自己的权限管理和用户管理系统
Grafana 更适合用于数据可视化展示
四 Prometheus监控+Grafana看板安装
1.安装Prometheus监控
- 拉取镜像:
docker pull bitnami/prometheus
- 运行:
docker run -d -p 9090:9090 bitnami/prometheus
- 查看是否运行:
docker ps
- 图形化界面:
- 浏览器访问 http://127.0.0.1:9090/
2.安装Grafana看板
- 拉取镜像:
docker pull grafana/grafana
- 运行:
docker run -d -p 3000:3000 grafana/grafana
- 查看是否运行:
docker ps
- 图形化界面:
- 浏览器访问 http://127.0.0.1:3000/
五 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监控的更多相关文章
- 基于 prometheus 的微服务指标监控
基于prometheus的微服务指标监控 服务上线后我们往往需要对服务进行监控,以便能及早发现问题并做针对性的优化,监控又可分为多种形式,比如日志监控,调用链监控,指标监控等等.而通过指标监控能清晰的 ...
- Spring Boot (九): 微服务应用监控 Spring Boot Actuator 详解
1. 引言 在当前的微服务架构方式下,我们会有很多的服务部署在不同的机器上,相互是通过服务调用的方式进行交互,一个完整的业务流程中间会经过很多个微服务的处理和传递,那么,如何能知道每个服务的健康状况就 ...
- 微服务日志监控与查询logstash + kafka + elasticsearch
使用 logstash + kafka + elasticsearch 实现日志监控 https://blog.csdn.net/github_39939645/article/details/788 ...
- go micro 微服务框架温习
go mod edit -require="github.com/chromedp/chromedp@v0.1.0" @后面加上你需要的版本号.就可以 已经修改go.mod 里的依 ...
- 使用 Skywalking 对 Kubernetes(K8s)中的微服务进行监控
1. 概述 老话说的好:任何成功都不是轻易得来的,是不断地坚持与面对的结果. 言归正传,之前我们聊了 SpringCloud 开发的微服务是如何部署在 Kubernetes(K8s)集群中的,今天我 ...
- 物联网架构成长之路(30)-Spring Boot Admin微服务WebUI监控
0. 前言 一个完整的微服务解决方案包含了许多微服务,基于我们需要观察各个微服务的运行状态,因此Spring Boot 生态提供了Spring Boot Admin 这个组件来实现微服务管理WEB U ...
- SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控
无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator.提到Actuator,又不得不提Micrometer ...
- 近期业务大量突增微服务性能优化总结-4.增加对于同步微服务的 HTTP 请求等待队列的监控
最近,业务增长的很迅猛,对于我们后台这块也是一个不小的挑战,这次遇到的核心业务接口的性能瓶颈,并不是单独的一个问题导致的,而是几个问题揉在一起:我们解决一个之后,发上线,之后发现还有另一个的性能瓶颈问 ...
- Java微服务监控及与普罗米集成
一. 背景说明 Java服务级监控用于对每个应用占用的内存.线程池的线程数量.restful调用数量和响应时间.JVM状态.GC信息等进行监控,并可将指标信息同步至普罗米修斯中集中展示和报警.网 ...
- SpringCloud微服务(04):Turbine组件,实现微服务集群监控
本文源码:GitHub·点这里 || GitEE·点这里 写在前面,阅读本文前,你需要了解熔断器相关内容 SpringCloud微服务:Hystrix组件,实现服务熔断 一.聚合监控简介 1.Dash ...
随机推荐
- Go | 基本数据类型详解
前言 基本数据类型,变量存的就是值,也叫值类型.每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间. Printf 和 Println 的区别 printf 输出后不换行, print ...
- 即兴小探华为开源行业领先大数据虚拟化引擎openLooKeng
@ 目录 概述 定义 背景 特点 架构 关键技术 应用场景 安装 单台部署 集群部署 命令行接口 连接器 MySQL连接器 ClickHouse连接器 概述 定义 openLooKeng 官网地址 h ...
- 创建外部表步骤及解决ORA-29913:执行ODCIETTABLEOPEN调出时出错
创建外部表步骤 建立目录对象(用sys用户创建.授权) 外部表所在路径一定要写对!!! create directory ext_data as 'D:\ORACLE'; grant read,wri ...
- ML-决策树
信息增益 香农熵: 指混乱程度,越混乱,值越大 信息增益(information gain): 在划分数据集前后信息发生的变化称为信息增益(香农熵的差) 基尼不纯度也可度量集合的无序程度 香农熵的计算 ...
- 安装nvm 和 yarn
安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash 执行上面的命令 如果出现问题 ...
- 记一次 .NET 某自动化集采软件 崩溃分析
一:背景 1.讲故事 前段时间有位朋友找到我,说他的程序在客户的机器上跑着跑着会出现偶发卡死,然后就崩掉了,但在本地怎么也没复现,dump也抓到了,让我帮忙看下到底怎么回事,其实崩溃类的dump也有简 ...
- 第1章-Spring的模块与应用场景
目录 一.Spring模块 1. 核心模块 2. AOP模块 3. 消息模块 4. 数据访问模块 5. Web模块 6. 测试模块 二.集成功能 1. 目标原则 2. 支持组件 三.应用场景 1. 典 ...
- 小米路由器局域网设备ping不通
问题 手机和电脑在同一个局域网内,都连接上小米路由器,我发现电脑部署的服务局域网设备都访问不到,甚至ping不到,排除了防火墙问题,最终发现是路由器一个设置导致的. 解决 将原来的混合加密,更换为强加 ...
- flutter系列之:在flutter中使用流式布局
目录 简介 Flow和FlowDelegate Flow的应用 总结 简介 我们在开发web应用的时候,有时候为了适应浏览器大小的调整,需要动态对页面的组件进行位置的调整.这时候就会用到flow la ...
- 数电第六周周结_by_yc
时序逻辑电路的设计要点: ①只有时钟信号和复位信号可以放在敏感列表里: ②使用非阻塞赋值,即使用"<="; ③无需对所有分支进行描述,对于未描述的分支,变量将保持 ...