节点导出器的磁盘使用指标位于以node_filesystem为前缀的指标列表中
node_filesystem_size_bytes
度量显示正在被监控的每个文件系统挂载的大小。
磁盘空间百分比
(node_filesystem_size_bytes {mountpoint ="/"} - node_filesystem_free_bytes {mountpoint ="/"}) /
node_filesystem_size_bytes {mountpoint ="/"} * 100
不过,与内存度量不同的是,我们在每个主机上的每个挂载点都有文件系统度量。因此我们添加了挂载点标签,特
别是 / 。 这将在被监视的每个主机上返回该文件系统的磁盘使用度量。
如果我们想要或者需要,我们现在可以为配置的特定挂载点添加额外的查询。要监视一个称为/data 的挂载点,我们将使用
(node_filesystem_size_bytes{mountpoint="/data"} - node_filesystem_free_bytes{mountpoint="/data"}) / node_filesystem_size_bytes{mountpoint="/data"} * 100
或者我们可以使用正则表达式来匹配多个挂载点
(node_filesystem_size_bytes{mountpoint=~"/|/run "} - node_filesystem_free_bytes{mountpoint=~"/|/run"}) / node_filesystem_size_bytes{mountpoint=~"/|/run"} * 100
可以看到,我们已经更新了挂载点标签,将操作符从改为 ==,这告诉 Prometheus 右手 边的值将是一个正则表达式。
然后我们匹配了 /run 和 / 文件系统 。
注意:
- 不能使用匹配空字符串的正则表达式。
- 对于不匹配的正则表达式,还有一个 运算符。
预计多长时间磁盘爆满
predict_linear(node_filesystem_free_bytes {mountpoint ="/"}[1h], 4*3600) < 0
predict_linear(node_filesystem_free_bytes {job="node"}[1h], 4*3600) < 0
//一旦小于就会返回一个负数,然后触发报警
predict_linear()