Процент с использованной памятью в боцманах

У меня проблема с созданием определенного графика в Bosun. Этот график должен содержать хосты с наибольшим использованием памяти в процентах, но я не могу найти подходящую метрику для этого. Конечно, у меня есть os.mem.used, как и os.mem.percent_free, но для меня это не совсем полезно. Я подумал о том, чтобы получить две серии из запроса, как и для оповещения: общее количество памяти и использованное, разделить использованное на общее и умножить на 100.

Проблема, похоже, в том, что я не могу разделить серии, поэтому последний шанс — написать свою собственную метрику с помощью greping и awking free команда в Linux.


person autobus    schedule 10.09.2015    source источник
comment
Не уверен, что полностью понимаю, что вам нужно... Я думаю, что язык выражений, вероятно, может делать то, что вам нужно, но я не совсем понимаю ваш вопрос.   -  person Kyle Brandt    schedule 10.09.2015
comment
Может помочь, если вы добавите, почему os.mem.percent_free не является той метрикой, которую вы хотите.   -  person Kyle Brandt    schedule 10.09.2015


Ответы (2)


Если вам действительно нужен график с процентным_использованием вместо процентного_свободного, вам следует использовать 100-q("sum:os.mem.percent_free{host=$hosts}", "1h", ""). Затем, если вы хотите отфильтровать ряд на графике, вы должны использовать функцию фильтра. Пример, который вы можете использовать на странице выражения:

$hosts=ny-redis*|ny-devredis*
$limit=5
$avgfree=avg(q("sum:os.mem.percent_free{host=$hosts}", "1h", ""))
$lowest_free=limit(sort($avgfree,"asc"),$limit)
$percent_used=100-q("sum:os.mem.percent_free{host=$hosts}", "1h", "")
filter($percent_used,$lowest_free)

У нас есть два инстанса dev и два инстанса prod, поэтому с ограничением в 5 я вижу их все на графике:

боцман процент_использованный

Но вы можете изменить выражение, чтобы использовать $limit=2, и оно покажет только два верхних:

боцман процент_используемый топ 2

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

person Greg Bray    schedule 11.09.2015

Если вы открыты для альтернативной серверной части, Axibase База данных временных рядов поддерживает scollector в качестве источника данных.

Раскрытие информации: я работаю в Axibase. В настоящее время у нас нет драйвера хранилища для самого Bosun, но Bosun выглядит очень многообещающе, поэтому мы его рассматриваем.

В ATSD вы вычисляете производные метрики коллектора следующим образом:

value = 100*value('os.mem.used')/value('os.mem.total')

Пример производного ряда

Использование памяти %

Иногда вам просто нужно пересчитать тот же ряд, например, чтобы преобразовать некоторую метрику в отрицательные значения. В этом случае replace-value работает очень хорошо:

replace-value = -value

Пример замены значения

Пример отрицательного значения

person Sergei Rodionov    schedule 10.09.2015
comment
Я не знал, что Axibase поддерживает scollector. Это замечательно! - person Greg Bray; 11.09.2015
comment
@GregBray Спасибо! На самом деле мы обнаружили scollector случайно, когда несколько месяцев назад Bosun попал на главную страницу HN. Комбинация выглядит очень многообещающе, мы установили scollector на все серверы Windows и рекомендовали scollector существующим клиентам. - person Sergei Rodionov; 12.09.2015
comment
Прохладный! Я написал кучу сборщиков Windows, так что пингуйте меня в твиттере (gbrayut) или на bosun.slack.com, если у вас возникнут проблемы :-) - person Greg Bray; 12.09.2015