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")
Другие вопросы по тегам