专栏首页java程序员思维java应用监控之prometheus核心组件

java应用监控之prometheus核心组件

目录

1、prometheus总体结构

2、Prometheus Server

3、Exporters

4、AlertManager

5、PushGateway

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

1、prometheus总体结构

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

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

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中获取到监控数据。

END

本文分享自微信公众号 - java程序员思维(java_python_go),作者:曾建路

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java应用监控之利用cat接口性能优化

    1.用户体验差:接口访问速度慢、如果一个页面打开需要好几秒,用户可能在页面没有完全打开时,就关掉页面离开了,造成用户流失,通过性能优化,减少服务器响应时长,可提...

    用户4361942
  • 享知行·思考:不要再拜服务器啦,墨菲定律有空了解一下

    虔诚的膜拜机房真的有用吗?贴上一张“永不宕机”的神符,服务器真的就不会宕机吗?该宕机还是会宕机,只是概率大小的问题罢了。“得道高僧”就能永保平安?与其如此,不如...

    用户4361942
  • 享知行·技术:Linux环境Mysql安装和踩过的那些坑

    用户4361942
  • 性能监控之初识 Prometheus

    Prometheus 是一套开源的监控、报警、时间序列数据库的组合,起始是由 SoundCloud 公司开发的,源于谷歌 borgmon。从 2016 年加入C...

    高楼Zee
  • Kubernetes上的“火眼金睛”——Prometheus的安装实录

    Kubernetes是目前最为流行、成为事实标准的容器集群管理平台,为容器化应用提供了集群化部署运行、自动资源调度,和动态水平伸缩等一系列完整功能。虽然Kube...

    JFrog杰蛙科技
  • 如何扩展单个Prometheus实现近万Kubernetes集群监控?

    作者黄雷,腾讯云工程师,曾负责构建腾讯云云监控新一代多维业务监控系统,擅长大规模分布式监控系统设计,对golang后台项目架构设计有较深理解,后加入TKE团队...

    腾讯云原生
  • Cortex:多租户、可横向扩展的Prometheus即服务

    Prometheus是用于监控和可观察性的标准开源解决方案之一。 Prometheus于2012年起源于SoundCloud,迅速获得广泛采用,后来成为首批CN...

    CNCF
  • Prometheus在京东开源项目ChubaoFS中的使用

    在我的印象中,普罗米希修斯是古希腊神话中的最具智慧之神,不仅创造了人类,还给人类带来了火。同样Prometheus项目也是非常优秀的项目,很早就引起了我们的兴趣...

    CNCF
  • Prometheus vs Zabbix

    公司要上监控,Prometheus 是最热门的监控解决方案,作为喜新厌旧的程序员,我当然是选择跟风了,但上级更倾向于 Zabbix,那没办法,只能好好对比一番,...

    用户2443625
  • 一文搞懂Prometheus、Grafana(含腾讯云上实战)

    通常来说,对于一个运行时的复杂系统,如果系统出了问题是很难排查的。因为你是不太可能在运行时一边检查代码一边调试的。因此,你需要在各种关键点加上监控,通过监控获取...

    yuann

扫码关注云+社区

领取腾讯云代金券