简单的时间序列选择
返回所有带有http_requests_total
元素的时间序列:
返回所有带有http_requests_total
元素和给定job
和handler
标签的时间序列:
返回从查询时间前5分钟到当前查询时间的整个时间范围内的同一向量,使其成为范围向量选择器:
请注意,产生范围向量的表达式不能直接绘图,需要在表达式浏览器的表格(“Console”)视图中进行查看。
使用正则表达式,可以选择只匹配特定模式名称的所有工作负载的时间序列,在这种情况下,所有以server
结尾的工作负载:
在 Prometheus 中使用的所有正则表达式都遵循 RE2语法。
为了选择除了4xx状态码之外的所有 HTTP 状态码,可以运行以下命令:
返回过去30分钟内http_requests_total
指标的5分钟滚动率(rate),解析度设置为1分钟。
这是一个嵌套子查询的示例。deriv
函数的子查询使用了默认解析度。请注意,无谓地使用子查询是不明智的。
计算所有名为http_requests_total
的时间序列在过去5分钟内的每秒变化率:
假设http_requests_total
时间序列都带有job
(按服务名分组)和instance
(按服务实例)标签,我们可能希望对所有实例的每秒率求和,以减少输出的时间序列数量,但同时保持job
维度:
如果有两个具有相同维度标签的不同指标,我们可以对它们应用二元运算符,并在两边具有相同标签集的元素之间进行匹配和传递。例如,这个表达式返回每个实例的未使用内存(单位:MB):
同样的表达式,但按应用进行求和,可以这样写:
如果同一个虚构集群调度器以每个实例的形式暴露了 CPU 使用量指标,如下所示:
我们可以得到按应用(app
)和进程类型(proc
)分组的前三个 CPU 使用者:
假设此指标包含每个运行实例的一个时间序列,可以按应用计数运行实例的数量如下:
如果我们正在探索某些指标的标签,以便能够对其中的一些进行聚合,可以使用以下方式:
或者,如果我们想要返回的时间序列样本更均匀,可以使用以下方式获取大约 10% 的数据:
该文档基于 Prometheus 官方文档翻译而成。