http_request_total{} # 瞬时向量表达式,选择当前最新的
数据
http_request_total{}[5m] # 区间向量表达式,选择以当前
时间
为基准,5分钟内的
数据
而如果我们想查询,5 分钟前的瞬时样本
数据
,或昨天一天的区间内的样本
数据
呢?这个时候
Prometheus
(普罗米修斯)是一套开源的监控&报警&
时间
序列
数据
库的组合,由 SoundCloud 公司开发。
Prometheus
基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,
不
需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。
Prometheus
应该是为数
不
多的适合 Docker、Mesos、Kubernetes 环境的监控系统之一。
1. 概念
1.1
时间
序列
时间
序列指在连续等间隔的
时间
点上获取的
数据
值,存储
时间
序列
数据
的
数据
库称为
时间
序列
数据
库Time Series Database (TSDB),
时间
序列
数据
库特点是写远大于读,并且写入平稳,基本
不
会涉及更新操作。
Prometheus
从本质上来说,就是将所有监控指标存储为
时间
序列,默认存在宿主机上。
Prometheus
的每个
时间
序列通过metirc name和label来标识的。
Prometheus
中常见的几个名词:
时间
序列(time-series):
时间
序列,也成为向量(