prometheus数据模型和类型
数据模型
promtheus从根本上将所有数据存储为 时间序列 ,属于同一指标和同一组标记维度的带时间戳的值流
指标名称和标签
指标名称
定义
- 指定所测量系统的一般特征,例如
http_requests_total表示收到的http请求总数
命名规则
- 指标名称可 以包含 ASCII字母、数字、下划线和冒号。它必须匹配正则表达式
[a-zA-Z_:][a-zA-Z0-9_:]*
指标标签
- Prometheus 的维度数据模型可以通过标签组合来唯一标识同一指标名称的不同维度实例。例如,通过指定标签,可以标识某个具体的指标实例,比如:所有使用
POST方法访问/api/tracks路径的 HTTP 请求。Prometheus 的查询语言(PromQL)支持基于这些标签维度进行过滤和聚合操作,从而灵活地分析和处理监控数据 - 任何标签值的更改(包括添加或删除标签)都会创建新的时间序列,在 Prometheus 中,每个时间序列是通过指标名称和标签组合唯一标识的。如果某个标签的值发生变化,或者增加/删除了某个标签,Prometheus 会将其视为一个新的时间序列,从而独立存储和处理该数据
- 标签可以包含 ASCII 字母、数字和下划线。它们必须匹配正则表达式
[a-zA-Z_][a-zA-Z0-9_]* - 以
__(两个_)开头的标签名称保留供内部使用 - 标签值可以包含任何 Unicode 字符
- 标签的值如果为空,相当于该标签不存在,在 Prometheus 中,如果某个标签的值是空字符串 (
""),它会被视为与没有这个标签的情况等价。也就是说,label=""和完全没有label是一样的,不会创建新的时间序列