使用 Prometheus 获取总磁盘空间和可用磁盘空间
Posted
技术标签:
【中文标题】使用 Prometheus 获取总磁盘空间和可用磁盘空间【英文标题】:Get total and free disk space using Prometheus 【发布时间】:2019-12-12 21:57:01 【问题描述】:我尝试获取 Kubernetes VM 上的 Total 和 Free 磁盘空间,以便显示占用空间的百分比。我尝试了各种指标,包括名称中的“文件系统”,但这些指标都没有显示正确的总磁盘大小。应该使用哪一个?
这是我尝试过的指标列表
node_filesystem_size_bytes
node_filesystem_avail_bytes
node:node_filesystem_usage:
node:node_filesystem_avail:
node_filesystem_files
node_filesystem_files_free
node_filesystem_free_bytes
node_filesystem_readonly
【问题讨论】:
【参考方案1】:根据kubernetes-mixin,您可以使用node:node_filesystem_usage,但如果此指标无法显示您的正确值,请确保device
设置正确。
我强烈建议使用 Prometheus Graph
或 Graphana Explore
选项卡来检查所有可用指标。
【讨论】:
如何确保设备设置正确?使用面板“图表”并调用node:node_filesystem_usage
我只收到一条带有微小值的行。我看到了设备,但我不知道如何验证它是否正确,或者如果错误如何更改它
正如您在node:node_filesystem_usage 定义中看到的那样,它需要node_filesystem_avail_bytes
和node_filesystem_size_bytes
,所以首先检查这些指标。【参考方案2】:
根据我的 Grafana 仪表板,以下指标可以很好地提醒可用空间,
100 - ((node_filesystem_avail_bytesmountpoint="/",fstype!="rootfs" * 100) / node_filesystem_size_bytesmountpoint="/",fstype!="rootfs")
该公式给出了指定磁盘上可用空间的百分比。确保在指标中包含挂载点和 fstype。
【讨论】:
使用你的方法我得到不正确的总磁盘大小 - 我知道我总共有 40Gb,但显示的是 42Gb。你能解释一下为什么会这样吗?我只是复制粘贴node_filesystem_size_bytesmountpoint="/",fstype!="rootfs"
你是用 10 的幂转换的吗?例如,从字节到 kb,除以 1024 是预期的,这在从字节到 Gb 时会有所不同。
我指定node_filesystem_size_bytesmountpoint="/",fstype!="rootfs"
以字节为单位查询
那么,例如输出是什么?
好的,让我们将 42 万亿数字除以 1024 得到 KB,然后再除以 1024 得到 Mb。此时我计算出 40058 mb。现在除以 1024 约为 39 GB。您可以信任此指标的输出,并将其转换为百分比通常很有用。【参考方案3】:
FS 利用率可以计算为
100 - (100 * ((node_filesystem_avail_bytesmountpoint="/",fstype!="rootfs" ) / (node_filesystem_size_bytesmountpoint="/",fstype!="rootfs") ))
【讨论】:
以上是关于使用 Prometheus 获取总磁盘空间和可用磁盘空间的主要内容,如果未能解决你的问题,请参考以下文章