Мои серверы отправляют mem_total
и mem_free
метрики в Graphite, но я бы хотел отобразить mem_used
на моей приборной панели. В настоящее время я решаю проблему, выполнив:
offset(scale(servers.foo.*.mem_free,-1),30823052)
где 30823052
k - общая память.
Мне интересно, есть ли способ использовать графит для расчета 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")