二、prometheus概念
- 监控
- 2022-07-20
- 21热度
- 0评论
概念
数据模型
普罗米修斯基本上将所有数据存储为时间序列:具有相同度量和相同标注维度集的带时间戳的值流。除了存储的时间序列外,Prometheus还可以生成临时派生的时间序列作为查询的结果。
指标名称和标签
每个时间序列由其度量名称和称为标签的可选键-值对唯一标识。
度量名称指定被度量的系统的一般特性(例如:http_requeststotal - 接收到的HTTP请求的总数)。它可能包含ASCII字母和数字,以及下划线和冒号。它必须匹配正则表达式[a-zA-Z:][a-zA-Z0-9_:]*。
注意:冒号是为用户定义的记录规则保留的。它们不应该被 exporters 或直接工具使用。
标签支持Prometheus的维度数据模型:相同指标名称的任何给定标签组合都标识该指标的特定维度实例化(例如:所有使用该方法的HTTP请求都 POST
到 /api/tracks
处理程序)。查询语言允许基于这些维度进行过滤和聚合。更改任何标签值,包括添加或删除标签,都将创建一个新的时间序列。
标签名称可以包含ASCII字母、数字以及下划线。它们必须匹配正则表达式[a-zA-Z][a-zA-Z0-9]*。以__开头的标签名称留作内部使用。
标签值可以包含任何Unicode字符。
具有空标签值的标签被认为等同于不存在的标签。
请参见为度量标准和标签命名的最佳实践。
样本
样本构成了实际的时间序列数据。每个样本包括:
- 一个 float64 值
- 一个毫秒精度的时间戳
符号
给定一个度量名称和一组标签,时间序列经常使用这种符号来识别:
{
例如,度量名称为 api_http_requests_total
的时间序列和标签method="POST"
和 handler="/messages"
可以写成这样:
api_http_requests_total{method="POST", handler="/messages"}
这与OpenTSDB使用的符号相同。
指标类型
Prometheus客户机库提供了四种核心度量类型。目前,它们仅在客户机库(以支持针对特定类型的使用而定制的api)和有线协议中有所区别。Prometheus服务器还没有使用类型信息,而是将所有数据扁平化为无类型的时间序列。这种情况将来可能会改变。
计数器
计数器是一种累积度量,它表示一个单调递增的计数器,其值只能在重新启动时增加或重置为零。例如,您可以使用一个计数器来表示服务的请求、完成的任务或错误的数量。
不要使用计数器公开可能减少的值。例如,不要使用计数器来表示当前正在运行的进程的数目;用量规代替。
计数器的客户端库使用文档:
度量器
规范是一种度量,它表示一个可以任意上下移动的单一数值。
仪表通常用于测量值,如温度或当前内存使用量,但也可用于“计数”,如并发请求的数量。
度量器的客户端库使用文档:
直方图
直方图对观察数据(通常是请求持续时间或响应大小)进行采样,并按可配置的桶数进行计数。它还提供了所有观察值的总和。
基线度量名称为
- 观察桶的累计计数器,暴露为
<basename>_bucket{le="<upper inclusive bound>"}
- 所有观察值的总和,公开为
_sum - 观察到的事件的计数,显示为
_count(与上面 _bucket{le="+Inf"}相同)