写点什么

Prometheus 数据模型

用户头像
耳东@Erdong
关注
发布于: 刚刚

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 name>{<label nameA>=<label valueA>, <label nameB>=<label valueB>,...}
复制代码


例如,一个 Metric 名为 api_http_requests_total 的时间序列和标签 method="POST"和 handler="/messages" 可以这样写:


api_http_requests_total{method="POST", handler="/messages"}
复制代码


用户头像

耳东@Erdong

关注

还未添加个人签名 2020.05.24 加入

主要研究分享运维技术,专注于监控、CICD、操作系统、云原生领域,公众号【耳东学堂】,知识星球同名,坚持原创,希望能和大家在运维路上结伴而行 邮箱:erdong@mail.erdong.site

评论

发布
暂无评论
Prometheus 数据模型