Prometheus 数据模型

翻译 原文链接

Prometheus从根本上把所有的数据存储为时间序列:属于同一metric名字,同一标签集合的、有时间戳标记的数据流。除了存储的时间序列,Prometheus可以根据查询请求产生临时的、衍生的时间序列。

Metric名称和标签

每一个时间序列被metric名称和标签键值对集合唯一标识。metric name用于指定被测量系统的一般特性(比如:http_requests_total表示接收到的HTTP请求总数)。metric name只能包含ASCII字符、数字、下划线和冒号,必须满足如下正则表达[a-zA-Z_:][a-zA-Z0-9_:]*

标签开启、丰富了Prometheus的多维度数据模型:同一metric name结合不同的标签,代表这个metric的不同维度实例(比如:所有通过post请求/api/tracks的HTTP请求)。查询语言允许基于这些维度进行过滤、聚合操作。改变一个标签值或者增减一个标签都会产生一个新的时间序列。
标签名称只能包含ASCII字符、数字和下划线,必须满足如下正则[a-zA-Z_][a-zA-Z0-9_]*。以双下划线__开头的标签名称被保留为Prometheus内部使用。
标签值允许包含任意Unicode字符。

See also the best practices for naming metrics and labels.

采样

采样是值一个时间序列某个时间点的值。由两个部分组成:

  • float64类型的值
  • 精度为毫秒的时间戳

记号

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

<metric name>{<label name>=<label value>, ...}

比如:metric name是api_http_requests_total,标签是method="POST", handler="/messages"的时间序列:

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

这种标记法和OpenTSDB一样。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • Prometheus 是什么? Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由Soun...
    上弦月Tt阅读 13,701评论 1 6
  • 【背景】 一直想试试单机多实例,玩下MySQL的主从复制;之前偶尔也研究过,由于各种原因,种种失败;今天偶得闲暇,...
    dayeshisir阅读 4,143评论 0 0
  • 斑驳的桌上放着一杯好茶,茶汤呈琥珀色,水面上的热气向四周蔓延。 周围,一股茶香沁人心脾。由不得你不深深的吸上一口气...
    围炉野话阅读 1,688评论 0 0
  • 五号那天,当我知道周老师还没醒来,因为刚经历过生死,我知道面对灾难时的那份无助感。我想尽我绵薄之力为周老师祈祷,就...
    秋水Q阅读 3,793评论 0 2

友情链接更多精彩内容