mirror of
https://github.com/BobbyWibowo/lolisafe.git
synced 2025-02-22 05:09:03 +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) {
|
if (!data.cache && data.generating) {
|
||||||
stats[data.title] = false
|
stats[data.title] = false
|
||||||
} else if (((Date.now() - data.generatedAt) <= 500) || data.generating) {
|
} else if (((Date.now() - data.generatedAt) <= 1000) || data.generating) {
|
||||||
// Use cache for 500 ms (0.5 seconds)
|
// Use cache for 1000 ms (1 second)
|
||||||
stats[data.title] = data.cache
|
stats[data.title] = data.cache
|
||||||
} else {
|
} else {
|
||||||
data.generating = true
|
data.generating = true
|
||||||
data.generatedAt = Date.now()
|
data.generatedAt = Date.now()
|
||||||
|
|
||||||
const cpu = await si.cpu()
|
const cpu = await si.cpu()
|
||||||
|
const cpuTemperature = await si.cpuTemperature()
|
||||||
const currentLoad = await si.currentLoad()
|
const currentLoad = await si.currentLoad()
|
||||||
const mem = await si.mem()
|
const mem = await si.mem()
|
||||||
const time = si.time()
|
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: `${cpu.cores} \u00d7 ${cpu.manufacturer} ${cpu.brand} @ ${cpu.speed.toFixed(2)}GHz`,
|
||||||
'CPU Load': `${currentLoad.currentLoad.toFixed(1)}%`,
|
'CPU Load': `${currentLoad.currentLoad.toFixed(1)}%`,
|
||||||
'CPUs Load': currentLoad.cpus.map(cpu => `${cpu.load.toFixed(1)}%`).join(', '),
|
'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: {
|
Memory: {
|
||||||
value: {
|
value: {
|
||||||
used: mem.active,
|
used: mem.active,
|
||||||
@ -841,6 +846,15 @@ const generateStats = async (req, res) => {
|
|||||||
},
|
},
|
||||||
type: 'byteUsage'
|
type: 'byteUsage'
|
||||||
},
|
},
|
||||||
|
Swap: {
|
||||||
|
value: typeof mem.swapused === 'number' && typeof mem.swaptotal === 'number'
|
||||||
|
? {
|
||||||
|
used: mem.swapused,
|
||||||
|
total: mem.swaptotal
|
||||||
|
}
|
||||||
|
: null,
|
||||||
|
type: 'byteUsage'
|
||||||
|
},
|
||||||
Uptime: {
|
Uptime: {
|
||||||
value: Math.floor(time.uptime),
|
value: Math.floor(time.uptime),
|
||||||
type: 'uptime'
|
type: 'uptime'
|
||||||
|
@ -3045,13 +3045,23 @@ page.getStatistics = (params = {}) => {
|
|||||||
parsed = page.getPrettyBytes(value)
|
parsed = page.getPrettyBytes(value)
|
||||||
break
|
break
|
||||||
case 'byteUsage': {
|
case 'byteUsage': {
|
||||||
// Reasoning: https://github.com/sebhildebrandt/systeminformation/issues/464#issuecomment-756406053
|
if (typeof value === 'object') {
|
||||||
const totalForPercentage = typeof value.available !== 'undefined'
|
// Reasoning: https://github.com/sebhildebrandt/systeminformation/issues/464#issuecomment-756406053
|
||||||
? (value.used + value.available)
|
const totalForPercentage = value.available !== undefined
|
||||||
: value.total
|
? (value.used + value.available)
|
||||||
parsed = `${page.getPrettyBytes(value.used)} / ${page.getPrettyBytes(value.total)} (${(value.used / totalForPercentage * 100).toFixed(2)}%)`
|
: value.total
|
||||||
|
parsed = `${page.getPrettyBytes(value.used)} / ${page.getPrettyBytes(value.total)} (${(value.used / totalForPercentage * 100).toFixed(2)}%)`
|
||||||
|
} else {
|
||||||
|
parsed = value
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
case 'tempC':
|
||||||
|
// TODO: Unit conversion when required?
|
||||||
|
parsed = typeof value === 'number'
|
||||||
|
? `${value} C`
|
||||||
|
: value
|
||||||
|
break
|
||||||
case 'uptime':
|
case 'uptime':
|
||||||
parsed = page.getPrettyUptime(value)
|
parsed = page.getPrettyUptime(value)
|
||||||
break
|
break
|
||||||
|
Loading…
Reference in New Issue
Block a user