update hyper-v part
This commit is contained in:
@@ -57,19 +57,22 @@
|
||||
echo "</div><div class='row'>";
|
||||
}
|
||||
$data = Invoke_Infra("select * from cmdb_HyperV_Hosts where cluster = '" . $cluster['cluster'] . "'");
|
||||
$clumem = (invoke_infra("select min(node_ram) as nmem from cmdb_HyperV_Hosts where cluster ='".$cluster['cluster']."'"))[0]['nmem'];
|
||||
$nb = (invoke_infra("select count(node) as nb from cmdb_HyperV_Hosts where cluster ='".$cluster['cluster']."'"))[0]['nb'];
|
||||
$clmem = $clumem-32; if($nb == 4){$clmem = $clmem*2;}
|
||||
$nodes = count($data);
|
||||
$vms = 0;
|
||||
$vm_mem = 0;
|
||||
$disk = 0;
|
||||
$io = 0;
|
||||
$capacity = 0;
|
||||
$capacity = 0; $free = 0;
|
||||
foreach ($data as $d) {
|
||||
$vms += $d['vm_count'];
|
||||
$vm_mem += $d['vm_memory'];
|
||||
$node_mem = 0 + (int) $d['node_ram'];
|
||||
foreach (explode("|", $d['csvs']) as $csv) {
|
||||
if (instr($csv, ';')) {
|
||||
$free = explode(";", $csv)[1] - explode(";", $csv)[2];
|
||||
$free += explode(";", $csv)[1] - explode(";", $csv)[2];
|
||||
$disk = max($disk, $free);
|
||||
$capacity += (int) explode(";", $csv)[1];
|
||||
}
|
||||
@@ -77,7 +80,8 @@
|
||||
$io += $d['io_disk'];
|
||||
}
|
||||
$node_mem = $node_mem * count($data) / 2;
|
||||
$io = number_format($io / count($data), 2);
|
||||
$io= round($io / count($data) * 1024);
|
||||
if($io == 0){$io = "?";}
|
||||
$vmleft = floor(($node_mem - 24 - $vm_mem) / 16);
|
||||
$storageleft = floor($disk / 110);
|
||||
$vmleft = min($vmleft, $storageleft);
|
||||
@@ -100,55 +104,110 @@
|
||||
<center><?php echo $cluster['cluster']; ?></center>
|
||||
</h4>
|
||||
<h6>
|
||||
<center><b><?php echo $nodes; ?></b> Nodes / <b><?php echo $vms; ?></b> VMs <?php echo $vleft; ?>
|
||||
</center>
|
||||
<center><b><?php echo $nodes; ?></b> Nodes / <b><?php echo $vms; ?></b> VMs <?php echo $vleft; ?></center>
|
||||
</h6>
|
||||
<?php
|
||||
if((int)$nodes == 2 && $vms > 0){
|
||||
$Repart = Invoke_Infra("select Owner, count(owner) as nbvm from cmdb_vms where Cluster ='".$cluster['cluster']."' and decomtime is null group by Owner order by Owner");
|
||||
$vmCountNode1 = $vmCountNode2 = 0;
|
||||
$node1_name = $node2_name = "";
|
||||
if(count($Repart) == 1 ){
|
||||
$node1_name = $Repart[0]['Owner']; $vmCountNode1 = $Repart[0]['nbvm'];
|
||||
}else{
|
||||
$node1_name = 'DUN'; $vmCountNode1 = $Repart[0]['nbvm'];
|
||||
$node2_name = 'MDK'; $vmCountNode2 = $Repart[1]['nbvm'];
|
||||
}
|
||||
$totalVMs = $vmCountNode1 + $vmCountNode2;
|
||||
$percentageNode1 = ($totalVMs > 0) ? ($vmCountNode1 / $totalVMs) * 100 : 0;
|
||||
$percentageNode2 = ($totalVMs > 0) ? ($vmCountNode2 / $totalVMs) * 100 : 0;
|
||||
echo "<div class='progress' style='border: 2px solid grey; height: 20px;'>
|
||||
<div class='progress-bar text-white' role='progressbar' style='width:$percentageNode1%' aria-valuenow='$percentageNode1' aria-valuemin='0' aria-valuemax='100'>
|
||||
<b>$node1_name : $vmCountNode1 VMs</b>
|
||||
</div>
|
||||
<div class='progress-bar bg-info text-dark' role='progressbar' style='width:$percentageNode2%' aria-valuenow='$percentageNode2' aria-valuemin='0' aria-valuemax='100'>
|
||||
<b>$node2_name : $vmCountNode2 VMs</b>
|
||||
</div>
|
||||
</div>";
|
||||
}elseif((int)$nodes == 4){
|
||||
$RepartD = Invoke_Infra("select count(owner) as nbvm from cmdb_vms where Cluster ='".$cluster['cluster']."' and Owner like 'DUN%' and decomtime is null");
|
||||
$RepartM = Invoke_Infra("select count(owner) as nbvm from cmdb_vms where Cluster ='".$cluster['cluster']."' and Owner like 'MDK%' and decomtime is null");
|
||||
$vmCountNode1 = $vmCountNode2 = 0;
|
||||
$node1_name = 'DUN'; $vmCountNode1 = $RepartD[0]['nbvm'];
|
||||
$node2_name = 'MDK'; $vmCountNode2 = $RepartM[0]['nbvm'];
|
||||
$totalVMs = $vmCountNode1 + $vmCountNode2;
|
||||
$percentageNode1 = ($totalVMs > 0) ? ($vmCountNode1 / $totalVMs) * 100 : 0;
|
||||
$percentageNode2 = ($totalVMs > 0) ? ($vmCountNode2 / $totalVMs) * 100 : 0;
|
||||
echo "<div class='progress' style='border: 2px solid grey; height: 20px;'>
|
||||
<div class='progress-bar text-white' role='progressbar' style='width:$percentageNode1%' aria-valuenow='$percentageNode1' aria-valuemin='0' aria-valuemax='100'>
|
||||
<b>$node1_name : $vmCountNode1 VMs</b>
|
||||
</div>
|
||||
<div class='progress-bar bg-info text-dark' role='progressbar' style='width:$percentageNode2%' aria-valuenow='$percentageNode2' aria-valuemin='0' aria-valuemax='100'>
|
||||
<b>$node2_name : $vmCountNode2 VMs</b>
|
||||
</div>
|
||||
</div>";
|
||||
|
||||
}else{
|
||||
echo "<div class='progress' style='border: 2px solid grey; height: 20px; background-Color: transparent;'>
|
||||
<div class='progress-bar' style='width: 0%; background-color: transparent;'></div>
|
||||
</div>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class='card-body text-white bg-dark'>
|
||||
<div class='row'>
|
||||
<?php
|
||||
//Memory
|
||||
echo "<div class='row'>";
|
||||
echo "<div class='col-7'>";
|
||||
echo "<b>Free Mem : </b>".($clmem - $vm_mem). " / " .$clmem. " GB";
|
||||
echo "</div><div class='col-5'>";
|
||||
$pcent = round(($clmem - $vm_mem)/$clmem*100);
|
||||
$pcent_restant = 100 - $pcent;
|
||||
if($pcent <= 5){
|
||||
$color = "bg-danger"; $border = "red";
|
||||
}else{
|
||||
if($pcent <= 10){
|
||||
$color = "bg-warning"; $border = "yellow";
|
||||
}else{
|
||||
$color = "bg-success"; $border = "green";
|
||||
}
|
||||
}
|
||||
echo "
|
||||
<div class='progress flex-grow-1' style='border: 2px solid $border; height: 20px;'>
|
||||
<div class='progress-bar bg-dark progress-bar-striped' role='progressbar' style='width: $pcent_restant%;' aria-valuenow='$pcent_restant' aria-valuemin='0' aria-valuemax='100'></div>
|
||||
<div class='progress-bar $color' role='progressbar' style='width: $pcent%;' aria-valuenow='$pcent' aria-valuemin='0' aria-valuemax='100'></div>
|
||||
</div>";
|
||||
echo "</div></div>";
|
||||
//DISK
|
||||
echo "<div class='row'>";
|
||||
echo "<div class='col-7'>";
|
||||
$unit="GB";
|
||||
if($capacity > 10000){
|
||||
$capacity = round($capacity / 1024,1); $unit="TB";
|
||||
$free = round($free / 1024,1);
|
||||
}
|
||||
$used = $capacity - $free;
|
||||
echo "<b>Free CSV : </b>".$free. " / " .$capacity. " $unit";
|
||||
echo "</div><div class='col-5'>";
|
||||
$pcent = round(($free)/$capacity*100);
|
||||
$pcent_restant = 100 - $pcent;
|
||||
if($pcent <= 5){
|
||||
$color = "bg-danger"; $border = "red";
|
||||
}else{
|
||||
if($pcent <= 10){
|
||||
$color = "bg-warning"; $border = "yellow";
|
||||
}else{
|
||||
$color = "bg-success"; $border = "green";
|
||||
}
|
||||
}
|
||||
echo "
|
||||
<div class='progress flex-grow-1' style='border: 2px solid $border; height: 20px;'>
|
||||
<div class='progress-bar bg-dark progress-bar-striped' role='progressbar' style='width: $pcent_restant%;' aria-valuenow='$pcent_restant' aria-valuemin='0' aria-valuemax='100'></div>
|
||||
<div class='progress-bar $color' role='progressbar' style='width: $pcent%;' aria-valuenow='$pcent' aria-valuemin='0' aria-valuemax='100'></div>
|
||||
</div>";
|
||||
echo "</div></div>";
|
||||
echo "<div class='row'><div class='col-7'><b>CSV I/O</b> R/W (24h) :</div><div class='col-5'><b> $io KB/s</b></div></div>";
|
||||
|
||||
<div class='col'><!-- STORAGE -->
|
||||
<?php if($storageleft>2){$color='green';}elseif($storageleft==2){$color='orange';}else{$color='red';}?>
|
||||
<h5><span class="badge text-bg-secondary font-weight-bold" style="width:100%;">Max Storage</span></h5>
|
||||
<center>
|
||||
<div class='GaugeMeter'
|
||||
data-total='<?php echo (int) $capacity; ?>'
|
||||
data-used='<?php echo (int) ($capacity - $free); ?>'
|
||||
data-text='<?php echo $disk; ?>'
|
||||
data-size=100 data-width=5 data-back=RGBa(200,200,200,0.05)
|
||||
data-color='<?php echo $color; ?>' data-style='full' data-animationstep=5
|
||||
>
|
||||
</center>
|
||||
</div>
|
||||
|
||||
<div class='col'><!-- Memory -->
|
||||
<?php if(floor(($node_mem-24-$vm_mem)/16)>2){$color='green';}elseif(floor(($node_mem-24-$vm_mem)/16)==2){$color='orange';}else{$color='red';}?>
|
||||
<h5><span class="badge text-bg-secondary font-weight-bold" style="width:100%;">Max Memory</span></h5>
|
||||
<center>
|
||||
<div class='GaugeMeter'
|
||||
data-total='<?php echo (int) ($node_mem - 24); ?>'
|
||||
data-used='<?php echo (int) ($vm_mem); ?>'
|
||||
data-text='<?php echo ($node_mem - 24 - $vm_mem); ?>'
|
||||
data-size=100 data-width=5 data-back=RGBa(200,200,200,0.05)
|
||||
data-color='<?php echo $color; ?>' data-style='full' data-animationstep=5
|
||||
>
|
||||
</center>
|
||||
</div>
|
||||
|
||||
<div class='col'><!-- I/O Disk -->
|
||||
<?php if($io<15){$color='green';}elseif($io<20){$color='orange';}else{$color='red';}?>
|
||||
<h5><span class="badge text-bg-secondary font-weight-bold" style="width:100%;">I/O Disk</span></h5>
|
||||
<center>
|
||||
<div class='GaugeMeter'
|
||||
data-total=25
|
||||
data-used='<?php echo min((int) $io, 25); ?>'
|
||||
data-text='<?php echo $io; ?>'
|
||||
data-size=100 data-width=5 data-back=RGBa(200,200,200,0.05)
|
||||
data-color='<?php echo $color; ?>' data-style='full' data-animationstep=5
|
||||
>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user