Prometheus

Prometheus 数据模型

2018-05-17  本文已影响286人  xufeibuaa

翻译 原文链接

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.

采样

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

记号

通过如下表达方式表示指定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一样。

上一篇下一篇

猜你喜欢

热点阅读