mirror of
https://github.com/newnius/YAO-portal.git
synced 2025-12-13 00:56:44 +00:00
update UI, add pool status
This commit is contained in:
4
ajax.php
4
ajax.php
@@ -99,6 +99,10 @@ switch ($action) {
|
|||||||
$res = summary_get();
|
$res = summary_get();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'summary_get_pool_history':
|
||||||
|
$res = summary_get_pool_history();
|
||||||
|
break;
|
||||||
|
|
||||||
case 'task_logs':
|
case 'task_logs':
|
||||||
$task = new CRObject();
|
$task = new CRObject();
|
||||||
$task->set('job', cr_get_GET('job'));
|
$task->set('job', cr_get_GET('job'));
|
||||||
|
|||||||
@@ -171,6 +171,28 @@ function summary_get()
|
|||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function summary_get_pool_history()
|
||||||
|
{
|
||||||
|
if (!AccessController::hasAccess(Session::get('role', 'visitor'), 'system.summary')) {
|
||||||
|
$res['errno'] = Code::NO_PRIVILEGE;
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
$spider = new Spider();
|
||||||
|
$spider->doGet(YAO_SCHEDULER_ADDR . '?action=pool_status_history');
|
||||||
|
$msg = json_decode($spider->getBody(), true);
|
||||||
|
|
||||||
|
if ($msg['code'] !== 0) {
|
||||||
|
$res['errno'] = $msg['code'] !== null ? $msg['code'] : Code::UNKNOWN_ERROR;
|
||||||
|
$res['msg'] = $msg['error'];
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
$res['data'] = $msg['data'];
|
||||||
|
$res['errno'] = Code::SUCCESS;
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
function task_logs(CRObject $job)
|
function task_logs(CRObject $job)
|
||||||
{
|
{
|
||||||
if (!AccessController::hasAccess(Session::get('role', 'visitor'), 'job.list')) {
|
if (!AccessController::hasAccess(Session::get('role', 'visitor'), 'job.list')) {
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ function resourceResponseHandler(res) {
|
|||||||
$.each(res["resources"], function (i, node) {
|
$.each(res["resources"], function (i, node) {
|
||||||
var item = {
|
var item = {
|
||||||
'host': node.host,
|
'host': node.host,
|
||||||
'CPU': '-',
|
'CPU': node.cpu_num,
|
||||||
'MEM': '-',
|
'MEM': node.mem_available + ' / ' + node.mem_total + ' (GB)',
|
||||||
'GPU': node.status.length,
|
'GPU': node.status.length,
|
||||||
'status': node.status
|
'status': node.status
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,32 +21,6 @@ function summary_render() {
|
|||||||
$("#modal-msg").modal('show');
|
$("#modal-msg").modal('show');
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CPU Load */
|
|
||||||
ctx_cpu.canvas.height = 200;
|
|
||||||
new Chart(ctx_cpu, {
|
|
||||||
"type": "line",
|
|
||||||
"data": {
|
|
||||||
"labels": ["January", "February", "March", "April", "May", "June", "July"],
|
|
||||||
"datasets": [{
|
|
||||||
"label": "My First Data set",
|
|
||||||
"data": [2, 0.5, 1.5, 0.81, 1.56, 1.55, 1.40],
|
|
||||||
"fill": true,
|
|
||||||
"borderColor": "rgb(75, 192, 192)",
|
|
||||||
"lineTension": 0.1
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
title: {
|
|
||||||
display: true,
|
|
||||||
text: 'GPU Load'
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
display: false
|
|
||||||
},
|
|
||||||
maintainAspectRatio: false
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/* Jobs */
|
/* Jobs */
|
||||||
var data = {
|
var data = {
|
||||||
@@ -72,58 +46,6 @@ function summary_render() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/* Mem Using */
|
|
||||||
ctx_mem.canvas.height = 200;
|
|
||||||
new Chart(ctx_mem, {
|
|
||||||
"type": "line",
|
|
||||||
"data": {
|
|
||||||
"labels": ["January", "February", "March", "April", "May", "June", "July"],
|
|
||||||
"datasets": [{
|
|
||||||
"label": "My First Data set",
|
|
||||||
"data": [2, 0.5, 1.5, 0.81, 1.56, 1.55, 1.40],
|
|
||||||
"fill": true,
|
|
||||||
"borderColor": "rgb(75, 192, 192)",
|
|
||||||
"lineTension": 0.1
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
title: {
|
|
||||||
display: true,
|
|
||||||
text: 'MEM Using'
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
display: false
|
|
||||||
},
|
|
||||||
maintainAspectRatio: false
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/* GPU Util */
|
|
||||||
ctx_gpu_util.canvas.height = 200;
|
|
||||||
new Chart(ctx_gpu_util, {
|
|
||||||
"type": "line",
|
|
||||||
"data": {
|
|
||||||
"labels": ["January", "February", "March", "April", "May", "June", "July"],
|
|
||||||
"datasets": [{
|
|
||||||
"label": "My First Data set",
|
|
||||||
"data": [2, 0.5, 1.5, 0.81, 1.56, 1.55, 1.40],
|
|
||||||
"fill": true,
|
|
||||||
"borderColor": "rgb(75, 192, 192)",
|
|
||||||
"lineTension": 0.1
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
title: {
|
|
||||||
display: true,
|
|
||||||
text: 'GPU Utilization'
|
|
||||||
},
|
|
||||||
legend: {
|
|
||||||
display: false
|
|
||||||
},
|
|
||||||
maintainAspectRatio: false
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/* GPUs */
|
/* GPUs */
|
||||||
var data2 = {
|
var data2 = {
|
||||||
datasets: [{
|
datasets: [{
|
||||||
@@ -148,16 +70,138 @@ function summary_render() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
ajax.fail(function (jqXHR, textStatus) {
|
||||||
|
$("#modal-msg-content").html("Request failed : " + jqXHR.statusText);
|
||||||
|
$("#modal-msg").modal('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var ajax_pool = $.ajax({
|
||||||
|
url: window.config.BASE_URL + "/service?action=summary_get_pool_history",
|
||||||
|
type: 'GET',
|
||||||
|
data: {}
|
||||||
|
});
|
||||||
|
ajax_pool.done(function (res) {
|
||||||
|
if (res["errno"] !== 0) {
|
||||||
|
$("#modal-msg-content").html(res["msg"]);
|
||||||
|
$("#modal-msg").modal('show');
|
||||||
|
}
|
||||||
|
|
||||||
|
var cpu_util = [];
|
||||||
|
var cpu_total = [];
|
||||||
|
var mem_available = [];
|
||||||
|
var mem_total = [];
|
||||||
|
var mem_using = [];
|
||||||
|
var gpu_util = [];
|
||||||
|
var gpu_total = [];
|
||||||
|
var gpu_mem_available = [];
|
||||||
|
var gpu_mem_total = [];
|
||||||
|
var gpu_mem_using = [];
|
||||||
|
var timestamps = [];
|
||||||
|
$.each(res["data"], function (i, item) {
|
||||||
|
cpu_util.push(item['cpu_util'].toFixed(2));
|
||||||
|
cpu_total.push(item['cpu_total']);
|
||||||
|
mem_available.push(item['mem_available']);
|
||||||
|
mem_total.push(item['mem_total']);
|
||||||
|
mem_using.push(item['mem_total'] - item['mem_available']);
|
||||||
|
gpu_util.push(item['gpu_util']);
|
||||||
|
gpu_total.push(item['gpu_total']);
|
||||||
|
gpu_mem_available.push(item['gpu_mem_available']);
|
||||||
|
gpu_mem_total.push(item['gpu_mem_total']);
|
||||||
|
gpu_mem_using.push(item['gpu_mem_total'] - item['gpu_mem_available']);
|
||||||
|
timestamps.push(item['ts']);
|
||||||
|
});
|
||||||
|
|
||||||
|
/* CPU Load */
|
||||||
|
ctx_cpu.canvas.height = 200;
|
||||||
|
new Chart(ctx_cpu, {
|
||||||
|
"type": "line",
|
||||||
|
"data": {
|
||||||
|
"labels": timestamps,
|
||||||
|
"datasets": [{
|
||||||
|
"label": "My First Data set",
|
||||||
|
"data": cpu_util,
|
||||||
|
"fill": true,
|
||||||
|
"borderColor": "rgb(75, 192, 192)",
|
||||||
|
"lineTension": 0.1
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: 'CPU Load'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
},
|
||||||
|
maintainAspectRatio: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/* Mem Using */
|
||||||
|
ctx_mem.canvas.height = 200;
|
||||||
|
new Chart(ctx_mem, {
|
||||||
|
"type": "line",
|
||||||
|
"data": {
|
||||||
|
"labels": timestamps,
|
||||||
|
"datasets": [{
|
||||||
|
"label": "My First Data set",
|
||||||
|
"data": mem_using,
|
||||||
|
"fill": true,
|
||||||
|
"borderColor": "rgb(75, 192, 192)",
|
||||||
|
"lineTension": 0.1
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: 'MEM Using'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
},
|
||||||
|
maintainAspectRatio: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/* GPU Util */
|
||||||
|
ctx_gpu_util.canvas.height = 200;
|
||||||
|
new Chart(ctx_gpu_util, {
|
||||||
|
"type": "line",
|
||||||
|
"data": {
|
||||||
|
"labels": timestamps,
|
||||||
|
"datasets": [{
|
||||||
|
"label": "My First Data set",
|
||||||
|
"data": gpu_util,
|
||||||
|
"fill": true,
|
||||||
|
"borderColor": "rgb(75, 192, 192)",
|
||||||
|
"lineTension": 0.1
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: 'GPU Utilization'
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
},
|
||||||
|
maintainAspectRatio: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/* GPU Mem Using */
|
/* GPU Mem Using */
|
||||||
ctx_gpu_mem.canvas.height = 200;
|
ctx_gpu_mem.canvas.height = 200;
|
||||||
new Chart(ctx_gpu_mem, {
|
new Chart(ctx_gpu_mem, {
|
||||||
"type": "line",
|
"type": "line",
|
||||||
"data": {
|
"data": {
|
||||||
"labels": ["January", "February", "March", "April", "May", "June", "July"],
|
"labels": timestamps,
|
||||||
"datasets": [{
|
"datasets": [{
|
||||||
"label": "My First Data set",
|
"label": "My First Data set",
|
||||||
"data": [2, 0.5, 1.5, 0.81, 1.56, 1.55, 1.40],
|
"data": gpu_mem_using,
|
||||||
"fill": true,
|
"fill": true,
|
||||||
"borderColor": "rgb(75, 192, 192)",
|
"borderColor": "rgb(75, 192, 192)",
|
||||||
"lineTension": 0.1
|
"lineTension": 0.1
|
||||||
@@ -175,7 +219,7 @@ function summary_render() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
ajax.fail(function (jqXHR, textStatus) {
|
ajax_pool.fail(function (jqXHR, textStatus) {
|
||||||
$("#modal-msg-content").html("Request failed : " + jqXHR.statusText);
|
$("#modal-msg-content").html("Request failed : " + jqXHR.statusText);
|
||||||
$("#modal-msg").modal('show');
|
$("#modal-msg").modal('show');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user