前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

「Prometheus 系列」 ProQL磁盘预测监控函数

qiguaw 2024-11-25 16:22:20 资源文章 12 ℃ 0 评论

磁盘告警是监控系统中最基础的告警维度,通常做法是磁盘剩余量达到一定阈值就会告警(比如小于20%)。这种方式弊端在于无法真正反映出磁盘剩余量的实质影响,尤其是对于不同规格的磁盘大小,比方说:

磁盘规格

阈值

剩余量

影响级别

100G

80%

20G

500G

80%

100G

1000G

80%

200G

可以看出来除了100G 有实质性影响,其他两种可能根本没啥影响剩余量很充足所以除了使用率之外还应该结合磁盘数据增长率来判定,否则会导致很多没有任何意义的告警。对于使用prometheus 监控的用户来说这个是很容易实现的,prometheus早期就提供了相关函数:predict_linear(),顾名思义就是线性预测这很好的满足了我们上面面临的问题。

pedict_linear() 函数会使用线性表达式基于过去一段时间磁盘使用情况来预测未来,表达式如下:

- alert: 节点磁盘剩余空间
      annotations:
        description: Filesystem on {{ $labels.device }} at 实例 {{ $labels.instance }} 上的 {{ $labels.device }} 可用剩余空间还有{{ printf "%.2f" $value }}%
        summary: 磁盘使用率低于80%并且预计24小时内会满
      expr: |
        (
          node_filesystem_avail_bytes{job="node-exporter",fstype!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!=""} * 100 < 20
        and
          predict_linear(node_filesystem_avail_bytes{job="node-exporter",fstype!=""}[6h], 24*60*60) < 0
        and
          node_filesystem_readonly{job="node-exporter",fstype!=""} == 0
        )
      for: 10m
      labels:
        severity: critical
        team: sre
        env: pro

表达式讲解

- alert: 节点磁盘剩余空间

这个是用于表示告警名。

  annotations:
        description: Filesystem on {{ $labels.device }} at 实例 {{ $labels.instance }} 上的 {{ $labels.device }} 可用剩余空间还有{{ printf "%.2f" $value }}%
        summary: 磁盘使用率低于80%并且预计24小时内会满

这个是注解用于补充额外的详情信息,可以通过引入标签变量来展示具体告警实例、设备等。

      expr: |
        (
          node_filesystem_avail_bytes{job="node-exporter",fstype!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!=""} * 100 < 20
        and
          predict_linear(node_filesystem_avail_bytes{job="node-exporter",fstype!=""}[6h], 24*60*60) < 0
        and
          node_filesystem_readonly{job="node-exporter",fstype!=""} == 0
        )

这个是告警规则的重点,通过上述表达式来决定是否触发告警给alertmanager。只有上面三个条件都达到了才会触发告警:

1、节点剩余量少于20%

2、基于过去6小时的历史数据来预测未来24小时内磁盘是否会被撑满

3、文件系统不是只读的

应用之后,下面就可以在prometheus ui 中看到如下告警规则。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表