Назад | Перейти на главную страницу

Как отобразить графитовый график используемой памяти, когда у вас есть общая и свободная память

Мои серверы отправляют mem_total и mem_free метрики в Graphite, но я бы хотел отобразить mem_used на моей приборной панели. В настоящее время я решаю проблему, выполнив:

offset(scale(servers.foo.*.mem_free,-1),30823052)

где 30823052k - общая память.

Мне интересно, есть ли способ использовать графит для расчета mem_used из mem_total и mem_free для меня, чтобы мне не пришлось жестко указывать объем общей памяти в моем запросе?

В последнее время я проводил некоторое тестирование с Grafana и нашел частичное решение, а именно:

A) servers.foo.server1.mem_total (mark invisible)
B) servers.foo.server1.mem_free (mark invisible)
C) diffSeries(#A, #B)

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

Я смотрел на доступные функции, и groupByNode кажется, что это может быть частью решения, которое я ищу, но я еще не нашел способа делать с ним то, что я хочу.

Вы можете сделать это, используя mapSeries и reduceSeries.

reduceSeries(mapSeries(servers.foo.*.*,2),"diffSeries",3,"mem_total","mem_free")