mempools; function print_mempool_percent_bar($mempool) { } if ($mempools->isNotEmpty()) { $mempools_url = url('device') . '/device=' . DeviceCache::getPrimary()->device_id . '/tab=health/metric=mempool/'; echo '
'; echo ''; echo ' Memory'; echo '
'; echo ''; // percentage line items foreach ($mempools as $mempool) { $available_used_all = null; $percent_text = $mempool->mempool_perc; if ($mempool->mempool_class == 'system' && $mempools->count() > 1) { // calculate available RAM instead of Free $buffers = $mempools->firstWhere('mempool_class', '=', 'buffers')->mempool_used ?? 0; $cached = $mempools->firstWhere('mempool_class', '=', 'cached')->mempool_used ?? 0; $available_used_all = Number::calculatePercent($mempool->mempool_used + $buffers + $cached, $mempool->mempool_total, 0); } $total = Number::formatBi($mempool->mempool_total); $used = Number::formatBi($mempool->mempool_used); $free = Number::formatBi($mempool->mempool_free); $percent_colors = Color::percentage($mempool->mempool_perc, $mempool->mempool_perc_warn ?: null); $graph_array = [ 'type' => 'mempool_usage', 'id' => $mempool->mempool_id, 'height' => 100, 'width' => 210, 'from' => \LibreNMS\Config::get('time.day'), 'to' => \LibreNMS\Config::get('time.now'), 'legend' => 'no', ]; $link = Url::generate(['page' => 'graphs'], Arr::only($graph_array, ['id', 'type', 'from'])); $overlib_content = generate_overlib_content($graph_array, DeviceCache::getPrimary()->hostname . ' - ' . $mempool->mempool_descr); $graph_array['width'] = 80; $graph_array['height'] = 20; $graph_array['bg'] = 'ffffff00'; // the 00 at the end makes the area transparent. $minigraph = \LibreNMS\Util\Url::lazyGraphTag($graph_array); $percentageBar = $available_used_all ? Html::percentageBar(200, 20, $mempool->mempool_perc, "$mempool->mempool_perc%", "$available_used_all%", $mempool->mempool_perc_warn, $available_used_all) : Html::percentageBar(200, 20, $mempool->mempool_perc, "$mempool->mempool_perc%", '', $mempool->mempool_perc_warn); echo ''; }//end foreach echo '
'; $graph = \App\Http\Controllers\Device\Tabs\OverviewController::setGraphWidth([ 'device' => DeviceCache::getPrimary()->device_id, 'type' => 'device_mempool', 'from' => \LibreNMS\Config::get('time.day'), 'legend' => 'no', 'popup_title' => DeviceCache::getPrimary()->hostname . ' - Memory Usage', ]); echo \LibreNMS\Util\Url::graphPopup($graph, \LibreNMS\Util\Url::lazyGraphTag($graph), $mempools_url); echo '
' . \LibreNMS\Util\Url::overlibLink($link, $mempool->mempool_descr, $overlib_content) . ' ' . \LibreNMS\Util\Url::overlibLink($link, $minigraph, $overlib_content) . ' ' . \LibreNMS\Util\Url::overlibLink($link, $percentageBar, $overlib_content) . '
'; }//end if