mirror of
https://github.com/BobbyWibowo/lolisafe.git
synced 2025-02-21 20:59:04 +00:00
feat: add cpu temp and swap memory to statistics
temp is currently hard-coded to C also increased system info caching to 1s
This commit is contained in:
parent
86d9db3137
commit
991cfe134e
@ -815,14 +815,15 @@ const generateStats = async (req, res) => {
|
||||
|
||||
if (!data.cache && data.generating) {
|
||||
stats[data.title] = false
|
||||
} else if (((Date.now() - data.generatedAt) <= 500) || data.generating) {
|
||||
// Use cache for 500 ms (0.5 seconds)
|
||||
} else if (((Date.now() - data.generatedAt) <= 1000) || data.generating) {
|
||||
// Use cache for 1000 ms (1 second)
|
||||
stats[data.title] = data.cache
|
||||
} else {
|
||||
data.generating = true
|
||||
data.generatedAt = Date.now()
|
||||
|
||||
const cpu = await si.cpu()
|
||||
const cpuTemperature = await si.cpuTemperature()
|
||||
const currentLoad = await si.currentLoad()
|
||||
const mem = await si.mem()
|
||||
const time = si.time()
|
||||
@ -834,6 +835,10 @@ const generateStats = async (req, res) => {
|
||||
CPU: `${cpu.cores} \u00d7 ${cpu.manufacturer} ${cpu.brand} @ ${cpu.speed.toFixed(2)}GHz`,
|
||||
'CPU Load': `${currentLoad.currentLoad.toFixed(1)}%`,
|
||||
'CPUs Load': currentLoad.cpus.map(cpu => `${cpu.load.toFixed(1)}%`).join(', '),
|
||||
'CPU Temperature': {
|
||||
value: cpuTemperature ? cpuTemperature.main : 'Not supported',
|
||||
type: 'tempC' // temp value from this library is hard-coded to C
|
||||
},
|
||||
Memory: {
|
||||
value: {
|
||||
used: mem.active,
|
||||
@ -841,6 +846,15 @@ const generateStats = async (req, res) => {
|
||||
},
|
||||
type: 'byteUsage'
|
||||
},
|
||||
Swap: {
|
||||
value: typeof mem.swapused === 'number' && typeof mem.swaptotal === 'number'
|
||||
? {
|
||||
used: mem.swapused,
|
||||
total: mem.swaptotal
|
||||
}
|
||||
: null,
|
||||
type: 'byteUsage'
|
||||
},
|
||||
Uptime: {
|
||||
value: Math.floor(time.uptime),
|
||||
type: 'uptime'
|
||||
|
@ -3045,13 +3045,23 @@ page.getStatistics = (params = {}) => {
|
||||
parsed = page.getPrettyBytes(value)
|
||||
break
|
||||
case 'byteUsage': {
|
||||
// Reasoning: https://github.com/sebhildebrandt/systeminformation/issues/464#issuecomment-756406053
|
||||
const totalForPercentage = typeof value.available !== 'undefined'
|
||||
? (value.used + value.available)
|
||||
: value.total
|
||||
parsed = `${page.getPrettyBytes(value.used)} / ${page.getPrettyBytes(value.total)} (${(value.used / totalForPercentage * 100).toFixed(2)}%)`
|
||||
if (typeof value === 'object') {
|
||||
// Reasoning: https://github.com/sebhildebrandt/systeminformation/issues/464#issuecomment-756406053
|
||||
const totalForPercentage = value.available !== undefined
|
||||
? (value.used + value.available)
|
||||
: value.total
|
||||
parsed = `${page.getPrettyBytes(value.used)} / ${page.getPrettyBytes(value.total)} (${(value.used / totalForPercentage * 100).toFixed(2)}%)`
|
||||
} else {
|
||||
parsed = value
|
||||
}
|
||||
break
|
||||
}
|
||||
case 'tempC':
|
||||
// TODO: Unit conversion when required?
|
||||
parsed = typeof value === 'number'
|
||||
? `${value} C`
|
||||
: value
|
||||
break
|
||||
case 'uptime':
|
||||
parsed = page.getPrettyUptime(value)
|
||||
break
|
||||
|
Loading…
Reference in New Issue
Block a user