var MILVUS_URI = "http://127.0.0.1:9091/api/v1"
function renderNodesMetrics(data) {
let tableHTML = '' +
'| Node Name | ' +
'CPU Usage | ' +
'Usage/Memory(GB) | ' +
'Usage/Disk(GB) | '+
'IO Wait | ' +
'RPC Ops/s | ' +
'Network Throughput(MB/s) | ' +
'Disk Throughput(MB/s) | ' +
'
';
tableHTML += '
';
data.nodes_info.forEach(node => {
tableHTML += '';
tableHTML += `| ${node.infos['name']} | `;
let hardwareInfo = node.infos['hardware_infos']
let cpuUsage = parseFloat(`${hardwareInfo['cpu_core_usage']}`).toFixed(2)
tableHTML += `${cpuUsage}% | `;
let memoryUsage = (parseInt(`${hardwareInfo['memory_usage']}`) / 1024 / 1024 / 1024).toFixed(2)
let memory = (parseInt(`${hardwareInfo['memory']}`) / 1024 / 1024 / 1024).toFixed(2)
tableHTML += `${memoryUsage}/${memory} | `;
let diskUsage = (parseInt(`${hardwareInfo['disk_usage']}`) / 1024 / 1024 / 1024).toFixed(2)
let disk = (parseInt(`${hardwareInfo['disk']}`) / 1024 / 1024 / 1024).toFixed(2)
tableHTML += `${diskUsage}/${disk} | `;
tableHTML += `0.00 | `;
tableHTML += `100 | `;
tableHTML += `5 | `;
tableHTML += `20 | `;
tableHTML += '
';
});
tableHTML += '';
document.getElementById('nodeMetrics').innerHTML = tableHTML;
}
function renderComponentInfo(data) {
let tableHTML = `
| Node Name |
Node IP |
Start Time |
Node Status |
`;
// Process each node's information
data.nodes_info.forEach(node => {
const hardwareInfo = node.infos['hardware_infos'];
const tr = `
| ${node.infos['name']} |
${hardwareInfo['ip']} |
${node.infos['created_time']} |
${node.infos['has_error']? node.infos['error_reason'] : 'Healthy'} |
`;
tableHTML += tr
});
tableHTML += ''
document.getElementById("components").innerHTML = tableHTML;
}
function renderSysInfo(data) {
let tableHTML = '' +
' | Attribute | ' +
' Value | ' +
' Description | ' +
'
';
tableHTML += readSysInfo(data.nodes_info[0].infos['system_info'])
tableHTML += '';
tableHTML += `| Started Time | `;
tableHTML += `${data.nodes_info[0].infos['created_time']} | `;
tableHTML += `The time when the system was started |
`;
tableHTML += '';
// Display table in the div
document.getElementById('sysInfo').innerHTML = tableHTML;
}
function renderClientsInfo(data) {
if (data.length === 0 ) {
document.getElementById("clients").innerHTML = "No clients connected"
return
}
let tableHTML = '' +
' | Host | ' +
' User | ' +
' SdkType | ' +
' SdkVersion | ' +
' LocalTime | ' +
' LastActiveTime | ' +
'
';
data.forEach(client => {
const tr = `
| ${client['host']} |
${client['user'] || "default"} |
${client['sdk_type']} |
${client['sdk_version']} |
${client['local_time']} |
${client['reserved']['last_active_time']} |
`;
tableHTML += tr
});
tableHTML += ''
document.getElementById("clients").innerHTML = tableHTML;
}
function readSysInfo(systemInfo) {
let row = ''
row += '';
row += `| GitCommit | `;
row += `${systemInfo.system_version} | `;
row += `Git commit SHA that the current build of the system is based on | `;
row += '
';
row += '';
row += `| Deploy Mode | `;
row += `${systemInfo.deploy_mode} | `;
row += `the mode in which the system is deployed | `;
row += '
';
row += '';
row += `| Build Version | `;
row += `${systemInfo.build_version} | `;
row += `the version of the system that was built | `;
row += '
';
row += '';
row += `| Build Time | `;
row += `${systemInfo.build_time} | `;
row += `the exact time when the system was built | `;
row += '
';
row += '';
row += `| Go Version | `;
row += `${systemInfo.used_go_version} | `;
row += `the version of the Golang that was used to build the system | `;
row += '
';
return row
}
function renderConfigs(obj) {
let tableHTML = '' +
' | Attribute | ' +
' Value | ' +
'
';
Object.keys(obj).forEach(function(prop) {
tableHTML += '';
tableHTML += `| ${prop} | `;
tableHTML += `${obj[prop]} | `;
tableHTML += `
`;
tableHTML += '';
});
document.getElementById('mConfig').innerHTML = tableHTML;
}
function renderDependencies(data) {
let tableHTML = '' +
' | Sys Name | ' +
' Cluster Status | ' +
' Members Status | ' +
'
';
Object.keys(data).forEach(key => {
row = data[key]
const tr = `
| ${key === 'metastore'? 'metastore [' + row['meta_type'] + ']' : 'mq [' + row['mq_type'] + ']'} |
${row['health_status']? 'Healthy' : 'Unhealthy:' + row['unhealthy_reason']} |
${row['members_health']? row['members_health'].map(member => `
- Endpoint: ${member.endpoint}, Health: ${member.health ? "Healthy" : "Unhealthy"}
`).join('') :
``}
|
`;
tableHTML += tr
});
tableHTML += ''
document.getElementById("3rdDependency").innerHTML = tableHTML;
}