活学活用Prometheus(三):Prometheus数据模型

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

metric名称和标签

每一条时间序列由metric名称以及一组标签(可选的键值对)唯一标识。metric名称表示被监控系统的某项指标(例如http_requests_total表示系统接收到的HTTP请求量),metric名称只能由 ASCII 字符、数字、下划线以及冒号组成,即必须匹配正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]*。

注意:冒号专门用来表示用户自定义的记录规则,不能在exporter或监控对象直接暴露的指标中使用冒号来表示指标名称。

标签使Prometheus具备了多维数据模型:对于相同的metric名称,通过使用不同的标签,就会形成特定度量维度实例(例如请求路由为/api/tracks、请求方式为POST的所有请求)。该查询语言在指标名称和标签这些维度上进行过滤和聚合。改变任何metric上的任何标签值(包括增加或减少一个标签),都会创建新的时间序列。

标签的名称只能由 ASCII 字符、数字以及下划线组成,即必须匹配正则表达式 [a-zA-Z_][a-zA-Z0-9_]*。其中以 __ 作为前缀的标签,是系统的保留关键字,只能在系统内部使用。

标签的值则可以包含 Unicode 编码的任意字符。

更多详细内容请参考

https://prometheus.io/docs/practices/naming/

样本

样本构成了实际的时间序列数据。每个样本包括:

精确到毫秒时间戳timestamp

folat64类型的值

表示方式

通过如下表达方式表示指定metric名称和指定标签集合的时间序列:

<metricname>{<labelname>=<labelvalue>, ...}

例如,metric名称为api_http_requests_total,标签为 method="POST" 和 handler="/messages" 的时间序列数据可以表示为:

api_http_requests_total{method="POST", handler="/messages"}

这与 OpenTSDB 中使用的标记法相同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路多辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值