Bosun 中已用内存的百分比

Percentage with used memory in Bosun

我在 Bosun 中绘制特定图表时遇到问题。该图应包含内存使用百分比最高的主机,但我找不到任何可用的指标来做到这一点。当然我有 os.mem.used 就像 os.mem.percent_free,但对我来说不是很有帮助。我想从查询中抓取两个系列,就像警报一样:moemry 总数和已使用的一个,除以总数再乘以 100。

问题似乎是我无法划分系列,所以最后一次机会是通过 greping 和 awk[= 编写我自己的指标19=]ing free 命令 Linux.

如果您愿意使用替代后端,Axibase Time-Series Database 支持将 scollector 作为数据源。

披露:我为 Axibase 工作。我们目前没有 Bosun 本身的存储驱动程序,但 Bosun 看起来很有前途,所以我们正在研究它。

在 ATSD 中,您可以按如下方式计算派生的 scollector 指标:

value = 100*value('os.mem.used')/value('os.mem.total')

Derived series example

有时您只需要重新计算同一系列,例如将某些指标转换为负值。在这种情况下,replace-value 效果很好:

replace-value = -value

Replace-value example

如果您真的想要 percent_used 而不是 percent_free 的图表,您应该使用 100-q("sum:os.mem.percent_free{host=$hosts}", "1h", "")。然后,如果你想过滤图表上的系列,你应该使用过滤功能。您可以在表达式页面上使用的示例:

$hosts=ny-redis*|ny-devredis*
$limit=5
$avgfree=avg(q("sum:os.mem.percent_free{host=$hosts}", "1h", ""))
$lowest_free=limit(sort($avgfree,"asc"),$limit)
$percent_used=100-q("sum:os.mem.percent_free{host=$hosts}", "1h", "")
filter($percent_used,$lowest_free)

我们有两个 dev 实例和两个 prod 实例,所以在限制为 5 的情况下,我在图表中看到了所有实例:

但您可以将表达式更改为使用 $limit=2,它只会显示前两个:

但请注意比例已被截断。现在我认为没有任何方法可以指定在表达式页面或警报模板中使用的比例,但您可以获取原始数据并使用不同的图形库对其进行绘图。