diff --git a/plugins/sentinel/dashboard.html b/plugins/sentinel/dashboard.html index 123a07a..84f59a0 100644 --- a/plugins/sentinel/dashboard.html +++ b/plugins/sentinel/dashboard.html @@ -293,7 +293,7 @@ var trafEl = card.querySelector('.traf-val'); var procEl = card.querySelector('.proc-val'); var sysData = n.system || {}; - if (loadEl && sysData.cpu) loadEl.textContent = (sysData.cpu.load_avg||[0,0,0]).map(function(v){return v.toFixed(1);}).join(' / '); + if (loadEl && sysData.cpu) loadEl.textContent = var la = sysData.cpu.load_avg||[0,0,0]; loadEl.textContent = (la[0]+la[1]+la[2])===0 ? "N/A" : la.map(function(v){return v.toFixed(1);}).join(" / "); } if (swapEl && sysData.swap) { var st = sysData.swap.total_gb||0; swapEl.textContent = st > 0 ? (sysData.swap.percent||0).toFixed(1)+'% ('+(sysData.swap.used_gb||0).toFixed(1)+'G)' : '—'; } // 磁盘分区列表 var diskList = card.querySelector('.disk-list'); diff --git a/services/web_panel/utils/system_info.py b/services/web_panel/utils/system_info.py index ae16f87..f48799c 100644 --- a/services/web_panel/utils/system_info.py +++ b/services/web_panel/utils/system_info.py @@ -75,10 +75,16 @@ class SystemInfoCollector: def _get_cpu(self) -> Dict[str, Any]: if self.psutil: + load = [0, 0, 0] + if hasattr(os, 'getloadavg'): + load = os.getloadavg() + elif hasattr(self.psutil, 'getloadavg'): + try: load = list(self.psutil.getloadavg()) + except: pass return { "percent": self.psutil.cpu_percent(interval=0.1), "cores": self.psutil.cpu_count(), - "load_avg": os.getloadavg() if hasattr(os, 'getloadavg') else [0, 0, 0] + "load_avg": load } try: load = os.getloadavg() if hasattr(os, "getloadavg") else [0.0, 0.0, 0.0]