基本概念
1. 数据模型
prometheus存储的是时序数据
,即按照相同时序(相同名字和标签),以时间维度存储的连续数据集合
时序
是由名字以及key/value标签定义,具有相同的名字以及标签属于相同时序。如http_requests_total{method=”POST”},表示所有http的POST请求
标签名称由ASCII字符、数字以及下划线组成,其中_开头属于prometheus保留
,标签值可以是任何Unicode字符,支持中文
时序样本
:按照某个时序以时间维度采集的数据,称之为样本
,其值包括一个float64值和一个毫秒级的unix时间戳
时序格式:
<metric name>{<label name>=<label value>,...}
2. 四种Metric Type
prometheus时序数据分为:
- Counter
- Gauge
- Histogram
- Summary
2.1 Counter
Counter表示收集的数据是按照某个趋势(增加/减少)一直变化的,一般用来记录服务请求总量、错误总数
如http_requests_total
2.2 Gauge
Gauge表示搜集的数据是一个瞬时的、与时间无关、可以任意变化 ,一般用来记录内存使用率、磁盘使用率等
2.3 Histogram
Histogram主要用于表示一段时间范围内对数据进行采样,如请求持续时间或者响应时间,能够对指定区间以及总数进行统计,通常我们用来计算分位数的直方图
。
2.4 Summary
Summary主要用于表示一段时间的采样结果,它直接存储quantile数据,而不是根据统计区间计算出来的
3. 作业与实例
prometheus将任意一个独立的数据源称之为实例
包含相同类型的实例的集合称之为作业
如:
- job: apiserver
- instance 1:192.168.1.2:8080
- instance 2:192.168.1.2:8080