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)

Но я не могу этого сделать, так как разделитель серии хочет, чтобы метрика делителя возвращала только одну метрику.

Я в основном хочу, чтобы одна цель контролировала все хосты в кластере.

Как я могу это сделать?


person Sabya    schedule 29.05.2014    source источник


Ответы (2)


Попробуй это:

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

вы получите график использования памяти в процентах для одного хоста. К сожалению, мне не удалось заставить его работать с подстановочными знаками (несколько хостов).

person Tombart    schedule 18.07.2014

Попробуйте это для нескольких узлов с регулярным выражением.

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")
person Chucks    schedule 21.05.2015