Graphite + Collectd - 如何为每个主机绘制内存使用百分比?

时间:2014-05-29 13:11:39

标签: graphite collectd

我有石墨+收集设置来收集与系统相关的指标。这个问题与collectd的内存插件有关。

我的infra使用collectd:

收集内存使用数据的格式
<cluster>.<host>.memory.memory-{buffered,cached,free,used}

我想绘制每个主机使用的内存百分比。

所以基本上,我必须做这样的事情:

divideSeries(sumSeriesWithWildCards(*.*.memory.memory-{buffered,cached,free},1),sumSeriesWithWildCards(*.*.memory.memory-{buffered,cached,free,used}),1)

但我无法做到这一点,因为divideSeries希望除数指标只返回一个指标。

我基本上想要一个目标来监控集群中的所有主机。

我该怎么做?

2 个答案:

答案 0 :(得分:5)

试试这个:

asPercent(host.memory.memory-used, sumSeries(host.memory.memory-{used,free,cached,buffered}))

您将获得一个主机的百分比内存使用情况图表。不幸的是,我无法使用通配符(多个主机)。

答案 1 :(得分:0)

尝试使用regex的多个节点。

alias(asPercent(sumSeries(collectd.nodexx*_internal_cloudapp_net.memory.memory.used), sumSeries(collectd.nodexx*_internal_cloudapp_net.memory.memory.{used,free,cached,buffered})),"Memory Used")

alias(asPercent(sumSeries(collectd.nodexx*_internal_cloudapp_net.memory.memory.{cached,buffered}), sumSeries(collectd.nodexx*_internal_cloudapp_net.memory.memory.{used,free,cached,buffered})),"Memory Cached")

alias(asPercent(sumSeries(collectd.nodexx*_internal_cloudapp_net.memory.memory.free), sumSeries(collectd.nodexx*_internal_cloudapp_net.memory.memory.{used,free,cached,buffered})),"Memory Free")