Go微服务: Prometheus性能监控与Grafana平台的搭建

Prometheus 概述

  • promethues 是一套开源的监控&报警&时间序列数据库的组合
  • 基本原理是通过http协议周期性抓取被监控组件的状态
  • 适合Docker、Kubernetes环境的监控系统

Promethues 整体架构

一、抓取数据的两种方式

  • 1 )Short-lived jobs 短暂的任务
    • 不会提供长时间的http去为promethues抓取数据
    • 这个服务很短暂, 运行后就会关闭
    • 短暂的服务怎么去监控
    • 它是通过主动推送数据到网关,进而由 promethues server 端 去抓取 PushGateway 上推上来的数据
  • 2 )另一种方式是 ClientLib/Exporters
    • 可以通过不同的 exporters 提供http的方式
    • 来给 promethues server 来抓取数据

二、Promethues Server 端

  • 主要分为三个环节:抓取,存储,查询
  • 在抓取网关的时候,promethues server 端如何知道抓取哪些链接
    • 获取目标的时候,是通过配置文件,文本文件,consul等方式
    • 来存储我们的抓取目标
    • 比较常用的是通过配置文件来记录下抓取的目标
    • Promethues 根据抓取目标,定期采集数据
  • 当 Promethues 抓取完成后,进行存储阶段
  • Promethues 会根据报警规则计算是否满足报警规则
  • 在报警规则中,会提供报警消息,主动推送给报警模块
  • 报警模块在收到消息后进行一系列的处理来进行报警
  • 另外数据存储进来,提供给客户访问的时候
  • Promethues 还有一个简单的web ui, 通过界面的方式查询存储的数据
  • 以上就是 Promethues 整体架构图

三、Promethues 重要组件

  • 基于架构图,可知里面有很多重要组件
  • Prometheus Server
    • 用于收集和存储时间序列数据
    • 客户端存储用的是 时序 数据库
  • Client Library
    • 客户端库生成相应的 metrics 并暴露给 Prometheus Server 去采集
    • 课程里就是 客户端提供http的端口暴露给 Prometheus Server 让它定期采用数据,达到监控能力
  • Push Gateway
    • 主要用于短期的jobs
    • 短期任务,可能5s采集一次,短期任务可能5s内会完成
    • 这样server端可能采集不到
    • 所以,短期任务,可以主动上报到 Push Gateway 上
    • Server 定期采集 Push Gateway 上的数据
  • Exporters
    • 用于暴露已有的第三方服务的metrics 给 Prometheus
    • 第三方服务,比如 mysql, redis, mongodb, 等等已经写好的一些 exporters 拿来用
    • 主动把需要采集的功能暴露出来,server主动来采集
  • Alertmanager
    • 报警模块,从 Prometheus server 端接收到 alerts 后
    • 会进行一些列去除重复,分组,并路由到接受方式,发出报警
    • 通过微信,email, QQ等等,都是可以进行发送的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值