返回所有指标名为 http_requests_total
的时间序列
http_requests_total
返回所有指标名为 http_requests_total
并带有指定 job
和 handler
标签的时间序列
http_requests_total{job="apiserver", handler="/api/comments"}
为同一向量返回一个完整的时间范围(在本例中是从查询时间回溯 5 分钟),使其成为一个范围向量
http_requests_total{job="apiserver", handler="/api/comments"}[5m]
请注意,生成范围向量的表达式不能直接绘制图形,但可以在表达式浏览器的表格("Console")视图中查看。
使用正则表达式,您可以只选择名称匹配特定模式的作业的时间序列,在本例中,是所有以 server
结尾的作业
http_requests_total{job=~".*server"}
要选择除 4xx 状态码之外的所有 HTTP 状态码,您可以运行
http_requests_total{status!~"4.."}
返回过去 30 分钟内指标 http_requests_total
的 5 分钟速率,分辨率为 1 分钟。
rate(http_requests_total[5m])[30m:1m]
这是一个嵌套子查询的示例。用于 deriv
函数的子查询使用了默认分辨率。请注意,不必要地使用子查询是不明智的。
max_over_time(deriv(rate(distance_covered_total[5s])[30s:5s])[10m:])
返回所有指标名为 http_requests_total
的时间序列的每秒速率,测量时间范围为最近 5 分钟
rate(http_requests_total[5m])
假设 http_requests_total
时间序列都带有 job
(按作业名称扇出)和 instance
(按作业实例扇出)标签,我们可能希望对所有实例的速率求和,这样我们得到的输出时间序列会更少,但仍然保留 job
维度
sum by (job) (
rate(http_requests_total[5m])
)
如果我们有两个具有相同维度标签的不同指标,我们可以对它们应用二元运算符,具有相同标签集的两侧元素将进行匹配并传播到输出。例如,这个表达式返回每个实例的未使用内存(以 MiB 为单位)(在一个虚构的集群调度程序中,该调度程序暴露了其运行实例的这些指标)
(instance_memory_limit_bytes - instance_memory_usage_bytes) / 1024 / 1024
相同的表达式,但按应用求和,可以这样写
sum by (app, proc) (
instance_memory_limit_bytes - instance_memory_usage_bytes
) / 1024 / 1024
如果同一个虚构的集群调度程序暴露了每个实例的 CPU 使用率指标,例如以下指标
instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"}
instance_cpu_time_ns{app="elephant", proc="worker", rev="34d0f99", env="prod", job="cluster-manager"}
instance_cpu_time_ns{app="turtle", proc="api", rev="4d3a513", env="prod", job="cluster-manager"}
instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="cluster-manager"}
...
...我们可以这样按应用 (app
) 和进程类型 (proc
) 分组获取前 3 个 CPU 用户
topk(3, sum by (app, proc) (rate(instance_cpu_time_ns[5m])))
假设此指标包含每个正在运行的实例的一个时间序列,您可以这样计算每个应用的正在运行的实例数
count by (app) (instance_cpu_time_ns)
如果我们正在探索一些指标的标签,例如为了能够对其中一些标签进行聚合,我们可以使用以下表达式
limitk(10, app_foo_metric_bar)
或者,如果希望返回的时间序列采样更均匀,可以使用以下表达式来获取大约 10% 的时间序列
limit_ratio(0.1, app_foo_metric_bar)
本文档是开源的。请通过提交问题或拉取请求来帮助改进它。