Процент использования памяти в Bosun

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

Кажется, проблема в том, что я не могу разделить ряды, поэтому последний шанс - написать собственную метрику, выполнив команду grep и awk free в Linux.

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 я вижу их все на графике:

Bosun Процент_использованных

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

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

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

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

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

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

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

Пример производной серии

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

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

replace-value = -value

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

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

Другие вопросы по тегам