Я получаю данные из вывода CLI, это число процессоров. Когда я использую это как переменную, диаграмма не показывает данные. Когда я устанавливаю переменную = 3 ;, это работает. В чем проблема?
Задача функции данных - около $ cpuCount. Когда я устанавливаю его вручную на число, это работает.
public function getStats()
{
$machine = $this->vmName;
$cmdCpuStat = "echo $this->sudoPasswd | sudo -S virsh domstats $machine --cpu-total | grep 'cpu.time' | cut -f2- -d=";
$cmdCpuCount = "echo $this->sudoPasswd | sudo -S virsh cpu-stats $machine | grep 'CPU*' | sed -e 's/://' | wc -l";
$provedPrikaz = $this->volani("$cmdCpuStat");
$fstStat = stream_get_contents($provedPrikaz);
sleep(1);
$provedPrikaz = $this->volani("$cmdCpuStat");
$scdStat = stream_get_contents($provedPrikaz);
$provedPrikaz = $this->volani("$cmdCpuCount");
$cpuCount = (int)stream_get_contents($provedPrikaz);
//$cpuCount = 3;
$usage = round(($scdStat - $fstStat)/10000000/$cpuCount, 2);
echo $usage;
}
Вызов функции -calls cli команда
public function volani($vstup)
{
$connection = ssh2_connect($this->ipServeru, $this->portServeru);
ssh2_auth_password($connection, $this->userName,$this->userPasswd);
$vystup = ssh2_exec($connection, $vstup);
stream_set_blocking($vystup, true);
return $vystup;
}
Код диаграммы -Такой скрипт показывает диаграмму
<script>
$(document).ready(function () {
google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(drawBasic);
var prvni = 0;
var druha = 0;
var min;
var max;
function drawBasic() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'X');
data.addColumn('number', 'Y');
var options;
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
//chart.draw(data, options);
function refreshData() {
if ((prvni/5) <=30){min = 0;} else {min = prvni/5-30;}
if ((prvni/5) <=30){max = 30;} else {max = prvni/5;}
options = {
legend: 'none',
vAxis: {
title: 'Vytíženost (%)',
viewWindow: {
min: 0,
max: 120
}
},
hAxis: {
viewWindow: {
min: min,
max: max
}
}
}
data.addRows([ [prvni/5, druha] ]);
chart.draw(data, options);
prvni = prvni + 5;
}
function load_data(query) {
$.ajax({
url: "<?php echo base_url(); ?>server/getStats",
method: "POST",
data: {query: query},
success: function (select) {
druha = Number(select);
refreshData();
},
error: function () {
alert("BAD");
}
})
}
setInterval(function () {
load_data();
//refreshData();
console.log(window);
}, 2000);
}
});
Извините за англи sh.