码迷,mamicode.com
首页 > 其他好文 > 详细

prometheus 监控用例

时间:2019-04-06 09:38:51      阅读:1211      评论:0      收藏:0      [点我收藏+]

标签:指标   方法   9.png   soft   eth   运行   ref   数据   count   

prometheus 函数介绍  https://prometheus.io/docs/prometheus/latest/querying/functions/

CPU利用率

prometheus 的原始数据

技术图片

我们从计算每个CPU模式的每秒速率开始。PromQL有一个名为irate的函数,用于计算距离向量中时间序列的每秒瞬时增长率。让我们在node_cpu_seconds_total度量上使用irate函数。

在查询框中输入:irate(node_cpu_seconds_total{job="node_exporter"}[5m]) 查询近5分钟的

备注:这里的 irate() 为 promethues 的查询函数.与之对应的是rate(),

  • rate(): 计算的是给定时间窗口内的每秒的平均值

irate适合快速变化的计数器(counter),而rate适合缓慢变化的计数器(counter)。

它们的计算方法有所不同:irate取的是在指定时间范围内的最近两个数据点来算速率,而rate会取指定时间范围内所有数据点,算出一组速率,然后取平均值作为结果。

 

技术图片

 

avg(irate(node_cpu_seconds_total{job="node_exporter"}[5m])) by (instance)

现在,我们将irate函数封装在avg聚合中,并添加了一个by子句,该子句通过实例标签聚合。这将产生新的指标,使用来自所有CPU和所有模式的值来平均主机的CPU使用情况。

技术图片

 

avg (irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100

在这里,我们查询中添加了一个值为idle的mode标签。这只查询空闲数据。我们通过实例求出结果的平均值,并将其乘以100。现在我们在每台主机上都有5分钟内空闲使用的平均百分比。

技术图片

100 - avg (irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100

可以把这个变成百分数用这个值减去100

技术图片

 

CPU Saturation(饱和度)
获取主机上CPU饱和的一种方法是跟踪负载平均,即考虑主机上的CPU数量,在一段时间内平均运行队列长度。平均少于cpu的数量通常是正常的。

要查看主机的平均负载,我们可以使用node_load*指标来实现这些功能。它们显示平均负荷超过1分钟,5分钟和15分钟。我们将使用一分钟的平均负载:node_load1。

我们还需要计算主机上的cpu数量。我们可以这样使用count聚合:
count by (instance)(node_cpu_seconds_total{mode="idle"})

node_load1 > on (instance)count by (instance)(node_cpu_seconds_total{mode="idle"})

 

prometheus 监控用例

标签:指标   方法   9.png   soft   eth   运行   ref   数据   count   

原文地址:https://www.cnblogs.com/shhnwangjian/p/10660797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!