1.5 数据模型

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"}

results matching ""

    No results matching ""