普罗米修斯和BMC的对比
相同点
采集数据的主要流程如下:
不同点
普罗米修斯分为4个模块
Prometheus Server: 用数据的采集和存储,PromQL查询,报警配置。
Push gateway: 用于批量,短期的监控数据的汇报总节点。
Exporters: 各种汇报数据的exporter,例如汇报机器数据的node_exporter,汇报MondogDB信息的 MongoDB_exporter 等等。
Alertmanager: 用于高级通知管理。
普罗米修斯,要采集目标(主机或服务)的监控数据,首先就要在被采集目标上安装采集组件,这种采集组件被称为Exporter。http://prometheus.io官网上有很多这种exporter,exporter类似BCM的KM,用于收集各大类指标,比如ORACLE 的ASM,weblogic,ORACLE的RAC等等大类KM。
这些exporter能为我们采集目标的监控数据,然后传输给普罗米修斯。这时候,exporter会暴露一个http接口,普罗米修斯通过HTTP协议使用Pull的方式周期性拉取相应的数据。
从架构图里能看到两个 Pull metrics 的原因,一个是采集器直接被Server拉取数据(pull);另一个是采集器主动Push数据到Push Gateway,Server再对Push Gateway主动拉取数据(pull)
普罗米修斯的数据是 键值对数据结构,键表示指标,值表示采集到的数值。
普罗米修斯的监控指标有4种基本类型:
1.Counter(计数器):
计数器是我们最简单的指标类型。比如你想统计某个网站的HTTP错误总数,这时候就用计数器。
计数器的值只能增加或重置为0,因此特别适合计算某个时段上某个时间的发生次数,即指标随时间演变发生的变化。
2.Gauges
Gauges可以用于处理随时间增加或减少的指标,比如内存变化、温度变化。
这可能是最常见的指标类型,不过它也有一定缺点:如果系统每5秒发送一次指标,普罗服务每15秒抓取一次数据,那么这期间可能会丢失一些指标,如果你基于这些数据做汇总分析计算,则结果的准确性会有所下滑。
3.Histogram(直方图)
直方图是一种更复杂的度量标准类型。它为我们的指标提供了额外信息,例如观察值的总和及其数量,常用于跟踪事件发生的规模。
比如,为了监控性能指标,我们希望在有20%的服务器请求响应时间超过300毫秒时发送告警。对于涉及比例的指标就可以考虑使用直方图。
4.Summary(摘要)
摘要更高级一些,是对直方图的扩展。除了提供观察的总和和计数之外,它们还提供滑动窗口上的分位数度量。分位数是将概率密度划分为相等概率范围的方法。
对比直方图: