Prometheus
导读:参考《
Kubernetes 实战》了解K8s 中Prometheus 的应用。
基于Prometheus 的线上应用监控

上图左侧是各种符合
背景特性
关键功能
-
多维度数据模型:多维度数据模型和强大的查询语言这两个特性,正是时序数据库所要求的,所以
Prometheus 不仅仅是一个监控系统,同时也是一个时序数据库。 -
方便的部署和维护:纵观比较流行的时序数据库,他们要么组件太多,要么外部依赖繁重,比如:
Druid 有Historical 、MiddleManager、Broker、Coordinator、Overlord、Router 一堆的组件,而且还依赖于ZooKeeper 、Deep storage(HDFS 或S3 等) ,Metadata store(PostgreSQL 或MySQL ) ,部署和维护起来成本非常高。而Prometheus 采用去中心化架构,可以独立部署,不依赖于外部的分布式存储,你可以在几分钟的时间里就可以搭建出一套监控系统。 -
灵活的数据采集:要采集目标的监控数据,首先需要在目标处安装数据采集组件,这被称之为
Exporter ,它会在目标处收集监控数据,并暴露出一个HTTP 接口供Prometheus 查询,Prometheus 通过Pull 的方式来采集数据,这和传统的Push 模式不同。不过Prometheus 也提供了一种方式来支持Push 模式,你可以将你的数据推送到Push Gateway ,Prometheus 通过Pull 的方式从Push Gateway 获取数据。目前的Exporter 已经可以采集绝大多数的第三方数据,比如Docker 、HAProxy、StatsD、JMX 等等。 -
强大的查询语言
除了这四大特性,随着
优劣对比
InfluxDB
同
类目 | InfluxDB | Prometheus |
---|---|---|
生态组合 | telegraf+Influxdb+Kapacitor+Chronograf | exporter+prometheus server+AlertManager+Grafana |
采集端 | 采集工具 |
主推拉的模式,同时通过 |
存储 | 基本思想上相通,关键点上有差异包括:时间线的索引,乱序的处理等等 | |
数据模型 | 多值模型 | 单值模型 |
集群模式 | 只保留了基于 |
提供了一种很有特色的 |