Data model
Prometheus存储所有数据作为一个带有时间戳的属于同一个指标名称和标签集的一批值的数据流,简称时间序列。除了原始时间序列以外,可以将查询的结果衍生出新的时间序列。
metric names and labels
每一个时间序列由指标名称和标签集唯一标识,指标名指定系统的一个可度量的状态,比如http_requests_total表示接收到的http请求的总的数量。指标名称由字母、数字、下划线、冒号组成,需要匹配正则表达式[a-zA-Z_:][a-zA-Z0-9_:],冒号预留给用户定义的recording rules使用。
标签实现了多维度的数据模型,针对一个指标给定的任意组合的标签,唯一确定一个具体维度的指标实例化。例如,http_requests_total{method="post"}表示post类型的http请求总数,http_requests_total{method="post",errcode="500"}表示500错误的post类型的http请求总数,改变任意标签值,将产生新的时间序列。标签名称由字幕、数字、下划线组成,需要匹配正则表达式[a-zA-Z_][a-zA-Z0-9_],下划线开头的预留给内部使用。
Samples
Samples是真正的时间序列数据,每一个采样由float64的值和毫秒精度的时间戳组成。
Notation
序列通常是这样定义<metric name>{<label name>=<label value>, ...},例如:api_http_requests_total{method="POST", handler="/messages"}
网友评论