使用度量标准http_requests_total
返回全部时间序列:git
http_requests_totalgithub
使用度量标准http_requests_total
以及给定的job
和handler
标签返回全部时间系列:web
http_requests_total{job="apiserver", handler="/api/comments"}正则表达式
返回相同向量的整个时间范围(在本例中为5分钟),使其成为范围向量:api
http_requests_total{job="apiserver", handler="/api/comments"}[5m]浏览器
请注意,致使范围向量的表达式不能直接绘制,而是在表达式浏览器的表格("Console")视图中查看。app
使用正则表达式,您只能为名称与特定模式匹配的做业选择时间序列,在本例中为全部以server
结尾的做业。 请注意,这会进行子字符串匹配,而不是完整的字符串匹配:函数
http_requests_total{job=~"server$"}google
Prometheus中的全部正则表达式都使用RE2语法。code
要选择除4xx以外的全部HTTP状态代码,您能够运行:
http_requests_total{status!~"^4..$"}
此查询返回过去30分钟的5分钟http_requests_total
指标率,分辨率为1分钟。
rate(http_requests_total[5m])[30m:1m]
这是嵌套子查询的示例。 deri
函数的子查询使用默认分辨率。 请注意,没必要要地使用子查询是不明智的。
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(rate(http_requests_total)[5m]) by (job)
若是咱们有两个具备相同维度标签的不一样指标,咱们能够对它们应用二元运算符,而且两侧具备相同标签集的元素将匹配并传播到输出。 例如,此表达式为每一个实例返回MiB中未使用的内存(在虚构的群集调度程序上公开它运行的实例的这些度量标准):
(instance_memory_limit_byte - instant_memory_usage_bytes) / 1024 / 1024
相同的表达式,但由应用程序总结,能够这样写:
sum( instance_memory_limit_bytes - instance_memory_usage_bytes) by (app, proc) / 1024 / 1024
若是相同的虚构集群调度程序为每一个实例公开了以下所示的CPU使用率指标:
instance_cpu_time_ns{app="lion", pro="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"} ...
...咱们能够按应用程序(app
)和进程类型(proc
)分组排名前3位的CPU用户:
topk(3, sum(rate(instance_cpu_time_ns[5m])) by(app, proc))
假设此度量标准包含每一个运行实例的一个时间系列,您能够计算每一个应用程序运行实例的数量,以下所示:
count(instance_cpu_time_ns) by (app)
Prometheus官网地址:prometheus.io/ 个人Github:github.com/Alrights/pr…