Graphite + Collectd - Как построить процент использования памяти для каждого хоста?
У меня есть настройки graphite+collectd для сбора метрик, связанных с системой. Этот вопрос касается плагина памяти для collectd.
У моего ниже есть этот формат для сбора данных об использовании памяти с использованием 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)
Но я не могу этого сделать, так как divSeries хочет, чтобы метрика делителя возвращала только одну метрику.
Я в основном хочу, чтобы одна цель контролировала все узлы в кластере.
Как я могу это сделать?
2 ответа
Попробуй это:
asPercent(host.memory.memory-used, sumSeries(host.memory.memory-{used,free,cached,buffered}))
Вы получите график использования памяти в процентах для одного хоста. К сожалению, я не смог заставить его работать с подстановочными знаками (несколько хостов).
Попробуйте это для нескольких узлов с регулярным выражением.
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")