Prometheus -- 02 -- Prometheus数据模型

原文链接:Prometheus – 02 – Prometheus数据模型


相关文章:


Prometheus 所有采集的监控数据均以指标 (metric) 的形式保存在内置的时间序列数据库中:属于同一指标名称、同一标签集合、有时间戳标记的数据流。除了存储的时间序列,Prometheus 还可以根据查询请求产生临时的、衍生的时间序列作为结果


一、指标名称和标签

  • 每一条时间序列由指标名称 (Metric Name) 以及一组标签 (键值对) 唯一标识

    • 指标名称 (Metric Name)

      • 用于反映被监控样本的含义 (列如:http_requests_total 表示当前系统接收到的 HTTP 请求总量)

      • 只能由 ASCII 字符、数字、下划线以及冒号组成,同时必须匹配正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*

        • : (冒号) 用于表示用户自定义的记录规则,不能在 exporter 中或监控对象直接暴露的指标中使用冒号来定义指标名称
    • 标签 (键值对)

      • 只能由 ASCII 字符、数字、下划线以及冒号组成,同时必须匹配正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*

        • __ 作为前缀的标签,是系统保留的关键字,只能在系统内部使用

        • 标签值可以是包含任何 Unicode 编码的字符

  • 通过使用标签,Prometheus 启用了强大的多维数据模型:具有相同指标名称的标签的任何给定组合,都会标识一个特定的度量维度实例 (例如:所有包含度量名称为 /api/tracks 的 HTTP 请求,标记上 method=POST 的标签,就会形成具体的 HTTP 请求)

    • 查询语言允许基于这些维度进行过滤和聚合

    • 改变任何度量指标上的标签值 (包括添加或删除指标),都会创建新的时间序列


二、样本

  • 样本源自真实的时间序列数据,每个样本包括如下几点

    • 一个 float64 的浮点型数据

    • 一个精确到毫秒的时间戳


三、表示方法

  • 通常使用给定的指标名称和标签集合来标识时间序列

    • <metric name>{<label name>=<label value>, …}
  • 例如,指标名称为 api_http_requests_total,标签为 method="POSThandler="/messages" 的时间序列可以表示为

    • api_http_requests_total{method=“POST”, handler="/messages"}

四、参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值