• 欢迎来到小爱博客,一个分享互联网IT技术的网站,喜欢就收藏吧!

prometheus监控例子

prometheus 小爱 3个月前 (08-08) 44次浏览 已收录 0个评论 扫描二维码

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监控例子
喜欢 (1)
【你的支持, 我的动力】
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址