prometheus - 简介

转载自Rainbowhhy并感谢

1. Prometheus简介

Prometheus又称之为普罗米修斯,是一个最初在SoundCloud上构建的开源系统监视和警报工具包。 自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有一个非常活跃的开发人员和用户社区 。 它现在是一个独立的开源项目,可以独立于任何公司进行维护。 Prometheus于2016年加入CNCF(云原生计算基金会),作为继kubernetes之后的第二个托管项目。

Prometheus具有如下特点:

  • 1 具有由metric和key/value标识的时间序列数据的多维数据模型;

  • 2 使用PromQL,在多维度上灵活的查询语言;

  • 3 不依赖分布式存储,单主节点工作;

  • 4 通过基于HTTP的pull方式采集时序数据;

  • 5 可以通过push gateway进行时序列数据推送(pushing);

  • 6 通过服务发现或者静态配置去获取要采集的目标服务器;

  • 7 支持多种可视化图表及仪表盘

Prometheus具有如下优点

  • 1 易于管理,核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等);

  • 2 强大的数据模型,所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB);

  • 3 高效,对于监控系统而言大量的监控任务必然有大量的数据产生,而Prometheus可以高效地处理这些数据,单一Prometheus Server实例可以处理数以百万的监控指标,每秒处理数十万的数据点;

  • 4 丰富的client库,基于Prometheus丰富的Client库,用户可以轻松的在应用程序中添加对Prometheus的支持,从而让用户可以获取服务和应用内部真正的运行状态;

  • 5 可扩展,每个数据中心、每个团队可以运行独立Prometheus Sevrer,同时Prometheus支持联邦集群,可以让多个Prometheus实例产生一个逻辑集群,当单实例Prometheus Server处理的任务量过大时,通过使用功能分区(sharding)+联邦集群(federation)可以对其进行扩展;

  • 6 易于集成,使用Prometheus可以快速搭建监控服务,并且可以非常方便地在应用程序中进行集成,目前支持: Java, JMX, Python, Go,Ruby, .Net, Node.js等等语言的客户SDK,基于这些SDK可以快速让应用程序纳入到Prometheus的监控当中,或者开发自己的监控数据收集程序,同时这些客户端收集的监控数据,不仅仅支持Prometheus,还能支持Graphite这些其他的监控工具

2. Prometheus架构

以下是来自官方的一幅架构图
在这里插入图片描述

  • 1 Prometheus Server:Prometheus的核心,根据配置完成数据采集,服务发现以及数据存储

  • 2 Service discovery:支持根据配置file_sd监控本地配置文件的方式实现服务发现(需配合其他工具修改本地配置文件),同时支持配置监听kubernetes的API来动态发现服务

  • 3 Prometheus targets:探针(exporter)提供采集接口,或应用本身提供的支持prometheus数据模型的采集接口

  • 4 Pushgateway:为应对部分push场景提供的插件,监控数据先推送到pushgateway上,然后再由server端采集pull(若server采集间隔期间,pushgateway上的数据没有变化,server将采集2次相同数据,仅时间戳不同)

  • 5 Alertmanager:告警插件,支持发送告警到邮件,Pagerduty,HipChat,Wechat等

  • 6 Prometheus web UI:可视化的图形界面,图形展示采集的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值