前言
入门篇:从零开始:Prometheus
本文记录了一些我对Prometheus的一些理解,以后还会随着使用的深入不定期更新,需要的小伙伴可以订阅收藏,希望可以让正在摸索的你们少走一些弯路。
对于刚开始使用Prometheus的用户可以从入门篇获取到一些基本的概念。
理解
1.时序数据库
Prometheus采用时序数据库存储数据,所有的存储都是按时间序列去实现的,相同的 metrics(指标名称) 和 label(一个或多个标签) 组成一条时间序列,不同的label表示不同的时间序列。为了支持一些查询,有时还会临时产生一些时间序列存储。
每条时间序列是由唯一的 指标名称 和 一组 标签 (key=value)的形式组成。指标名称 一般是给监测对像起一名字,例如 http_requests_total 这样,它有一些命名规则,可以包字母数字_之类的的。通常是以应用名称开头_监测对像_数值类型_单位这样。
如果以传统数据库的理解来看这条语句,则可以考虑 http_requests_total是表名,标签是字段,而timestamp是主键,还有一个float64字段是值了(Prometheus里面所有值都是按float64存储)。
可以配合技巧篇中数据处理相关的例子一起理解Prometheus的数据模型。
2.数据获取方式
Prometheus获取数据的方式不是通过客户端主动推送,而是客户端先指定一个http服务的接口暴露出来(默认是"/metrics"),然后Prometheus读取metrics_path配置项获取接口地址,Prometheus daemon负责定时去目标上抓取数据并自动生成时间序列存入数据库。
参考
http://www.cnblogs.com/vovlie/p/Prometheus_CONCEPTS.html
文章内容是根据参考+实践理解所得,如果有错误的地方欢迎指正!