java组件_java应用监控之prometheus核心组件

上一篇我们对prometheus做了一个简单的介绍,介绍了prometheus的优势以及和其他监控系统的对比,今天分享一下prometheus的核心组件。

1、prometheus总体结构

a7ded8951a0392c128af2a68118e28d0.png

prometheus主要包含以下组件:prometheus server负责收集任务的管理、日志的存储、以及PromQL的支持。Alertmanager负责告警,可以灵活的设置告警规则。pushgateway,因为prometheus只支持pull模式,通过pushgateway方式,处理那些不允许外部访问的监控,起到中间桥梁的作用。Web UI,prometheus自带UI功能,如下图:

9b71987ec676c4858b188b7b9b5eafd7.png

自带UI功能比较简单,不过grafana完美支持prometheus,如下图:

190910edb9413568800dee6f0f5858c0.png

e668a180f8ebba6fb4e49fb62e5edb4f.png

2、Prometheus Server

Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。 Prometheus Server可以通过静态配置管理监控目标,也可以配合使用

Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。其次Prometheus Server需要对采集到的监控数据进行存储,Prometheus Server本身就是一个时序数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。最后Prometheus Server对外提供了自定义的PromQL语言,实现对数据的查询以及分析。

Prometheus Server内置的Express Browser UI,通过这个UI可以直接通过PromQL实现数据的查询以及可视化。

Prometheus Server的联邦集群能力可以使其从其他的Prometheus Server实例中获取数据,因此在大规模监控的情况下,可以通过联邦集群以及功能分区的方式对Prometheus Server进行扩展。

3、Exporters

Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可获取到需要采集的监控数据。

一般来说可以将Exporter分为2类:

  • 直接采集:这一类Exporter直接内置了对Prometheus监控的支持,比如cAdvisor,Kubernetes,Etcd,Gokit等,都直接内置了用于向Prometheus暴露监控数据的端点。
  • 间接采集:间接采集,原有监控目标并不直接支持Prometheus,因此我们需要通过Prometheus提供的Client Library编写该监控目标的监控采集程序。例如: Mysql Exporter,JMX Exporter,Consul Exporter等。

4、AlertManager

在Prometheus Server中支持基于PromQL创建告警规则,如果满足PromQL定义的规则,则会产生一条告警,而告警的后续处理流程则由AlertManager进行管理。在AlertManager中我们可以与邮件,Slack等等内置的通知方式进行集成,也可以通过Webhook自定义告警处理方式。AlertManager即Prometheus体系中的告警处理中心。

5、PushGateway

由于Prometheus数据采集基于Pull模型进行设计,因此在网络环境的配置上必须要让Prometheus Server能够直接与Exporter进行通信。 当这种网络需求无法直接满足时,就可以利用PushGateway来进行中转。可以通过PushGateway将内部网络的监控数据主动Push到Gateway当中。而Prometheus Server则可以采用同样Pull的方式从PushGateway中获取到监控数据。

41075d15f1795f0bf89eb80831011583.png

推荐阅读

  • java设计模式之组合模式
  • java设计模式之备忘录模式,世上真的有“后悔药”,带你穿越回过去
  • java设计模式之中介者模式,一箭双”雕“式二道贩子
  • java设计模式之访问者模式,“见人说人话,见鬼说鬼话”
  • java设计模式之原型模式,本故事纯属虚构,如有雷同,纯属巧合
  • java设计模式之桥接模式,策略模式旗舰版,世界没有免费的午餐
  • java设计模式之代理模式,看我72变
  • java设计模式之构建模式,私人订制自己的创意
  • java设计模式之状态模式,策略模式的孪生兄弟
  • java设计模式之迭代器模式,顾客永远的上帝
  • java设计模式之模板模式,站在巨人的肩膀上成功
  • java设计模式之适配器模式,大丈夫能屈能伸
  • Head First 设计模式之命令模式,各司其职提高效率
  • Head First 设计模式之装饰器模式,因为参与,所以认同
  • Head First 设计模式之单例模式,每个人都是唯一
  • Head First 设计模式之观察者模式,你我都是发布者和订阅者
  • Head first 设计模式之策略模式,来源于生活,用之于生活更多文章:
  • 15年经验的老兵推荐书单,高手是这样炼成的,你读了几本?
  • 应用监控系列之谁开发谁运行谁监控
  • java应用监控之调用链跟踪选型之Zipkin、Pinpoint、SkyWalking、CAT
  • java思维导图学习笔记,好东西就应该和大家一起分享

41075d15f1795f0bf89eb80831011583.png

75878b4c5cd5868b8fec76c3046c318f.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值