http://modulesgarden.com * CONTACT -> contact@modulesgarden.com * * * This software is furnished under a license and may be used and copied * only in accordance with the terms of such license and with the * inclusion of the above copyright notice. This software or any other * copies thereof may not be provided or otherwise made available to any * other person. No title to and ownership of the software is hereby * transferred. * * * ******************************************************************** */ namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\ServiceGraph\Pages; use ModulesGarden\ProxmoxAddon\App\Models\RrdData; use ModulesGarden\ProxmoxAddon\App\Services\Cloud\ProductService; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\AdminArea; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Graphs\Line; use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Graphs\Models\DataSet; use function ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\sl; class ServiceDiskGraph extends BaseGraph { use ProductService; protected $id = 'serviceDiskGraph'; protected $name = 'serviceDiskGraph'; public function initContent() { $this->updateChartScale('yAxes', [ [ 'scaleLabel' => [ 'display' => true, 'labelString' => sl('lang')->tr('Disk') ], 'ticks' => [ 'callback' => 'mgBytesToSize', 'beginAtZero' => true, 'fontSize' => 10 ], ]]); //xAxes $this->updateChartScale('xAxes', [ [ 'display' => false, ]]); $this->updateChartOption('tooltips', [ 'callbacks' => [ 'label' => 'mgTooltipCallbackForDisk' ] ]); } public function prepareAjaxData() { session_write_close(); $labels = []; $dataSets = [ 'diskread' => [], 'diskwrite' => [], ]; foreach ($this->rrdDataQuery() as $rrd) { $labels[] = $rrd->date; $dataSets['diskread'][] = isset($rrd->diskread) ? $rrd->diskread : 0; $dataSets['diskwrite'][] = isset($rrd->diskwrite) ? $rrd->diskwrite : 0; } //Labels $this->setLabels($labels); //Memory $lang = sl('lang'); $dataSet = new DataSet(); $dataSet->setTitle($lang->tr('Disk Read')) ->setData($dataSets['diskread']) ->setConfigurationDataSet([ "backgroundColor" => 'rgba(174, 198, 57, 0.79)', "borderColor" => 'rgba(174, 198, 57, 1)', ]); $this->addDataSet($dataSet); //Total $dataSet = new DataSet(); $dataSet->setTitle($lang->tr('Disk Write')) ->setData($dataSets['diskwrite']) ->setConfigurationDataSet([ "backgroundColor" => 'rgba(39, 133, 134, 0.91)', "borderColor" => 'rgba(39, 133, 134, 1)', ]); $this->addDataSet($dataSet); } }