Prometheus 数据模型
Prometheus 存储的是时序数据, 即按照相同时序(相同的名字和标签),以时间维度存储连续的数据的集合。除了存储时间序列外,Prometheus 还可以根据查询结果生成临时的时间序列。
Metric 名字和标签
时序(time series) 是由名字(Metric),以及一组 key/value 标签定义的,具有相同的名字以及标签属于相同时序。
时序的 Metric 由 ASCII 字符,数字,下划线,以及冒号组成,它必须满足正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*
, 其名字应该具有语义化,一般表示一个可以度量的指标,例如 http_requests_total
, 可以表示 http 请求的总数。
时序的标签可以使 Prometheus 的数据更加丰富,能够区分具体不同的实例,例如 所有的 HTTP 请求都可以使用 POST 发送到 /api/tracks
。
标签名称由 ASCII 字符,数字,以及下划线组成, 必须符合语法 [a-zA-Z_][a-zA-Z0-9_]*
,其中 __
开头属于 Prometheus 内部保留,标签的值可以是任何 Unicode 字符,支持中文。
示例
每个实际的时间序列数据包括:
一个 float64 类型的值
一个毫秒精度的时间戳
给定一个度量名称和一组标签,时间序列通常使用以下符号标识:
复制代码
例如,一个 Metric 名为 api_http_requests_total 的时间序列和标签 method="POST"和 handler="/messages" 可以这样写:
复制代码
评论