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 => ` `).join('') : ``} `; tableHTML += tr }); tableHTML += '' document.getElementById("3rdDependency").innerHTML = tableHTML; }