mirror of
https://github.com/henrygd/beszel.git
synced 2025-10-30 10:07:02 +00:00
fix intel engine delta tracking across cache keys
- plus a couple tiny lil refactors
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"maps"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -308,6 +309,9 @@ func (gm *GPUManager) calculateGPUAverage(id string, gpu *system.GPUData, cacheK
|
|||||||
gpuAvg.Power = twoDecimals(deltaPower / float64(deltaCount))
|
gpuAvg.Power = twoDecimals(deltaPower / float64(deltaCount))
|
||||||
|
|
||||||
if gpu.Engines != nil {
|
if gpu.Engines != nil {
|
||||||
|
// make fresh map for averaged engine metrics to avoid mutating
|
||||||
|
// the accumulator map stored in gm.GpuDataMap
|
||||||
|
gpuAvg.Engines = make(map[string]float64, len(gpu.Engines))
|
||||||
gpuAvg.Usage = gm.calculateIntelGPUUsage(&gpuAvg, gpu, lastSnapshot, deltaCount)
|
gpuAvg.Usage = gm.calculateIntelGPUUsage(&gpuAvg, gpu, lastSnapshot, deltaCount)
|
||||||
gpuAvg.PowerPkg = twoDecimals(deltaPowerPkg / float64(deltaCount))
|
gpuAvg.PowerPkg = twoDecimals(deltaPowerPkg / float64(deltaCount))
|
||||||
} else {
|
} else {
|
||||||
@@ -369,9 +373,7 @@ func (gm *GPUManager) storeSnapshot(id string, gpu *system.GPUData, cacheKey uin
|
|||||||
}
|
}
|
||||||
if gpu.Engines != nil {
|
if gpu.Engines != nil {
|
||||||
snapshot.engines = make(map[string]float64, len(gpu.Engines))
|
snapshot.engines = make(map[string]float64, len(gpu.Engines))
|
||||||
for name, value := range gpu.Engines {
|
maps.Copy(snapshot.engines, gpu.Engines)
|
||||||
snapshot.engines[name] = value
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
gm.lastSnapshots[cacheKey][id] = snapshot
|
gm.lastSnapshots[cacheKey][id] = snapshot
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -218,10 +218,12 @@ export default memo(function SystemDetail({ name }: { name: string }) {
|
|||||||
`rt_metrics`,
|
`rt_metrics`,
|
||||||
(data: { container: ContainerStatsRecord[]; info: SystemInfo; stats: SystemStats }) => {
|
(data: { container: ContainerStatsRecord[]; info: SystemInfo; stats: SystemStats }) => {
|
||||||
// console.log("received realtime metrics", data)
|
// console.log("received realtime metrics", data)
|
||||||
const newContainerData = makeContainerData([
|
if (data.container.length > 0) {
|
||||||
{ created: Date.now(), stats: data.container } as unknown as ContainerStatsRecord,
|
const newContainerData = makeContainerData([
|
||||||
])
|
{ created: Date.now(), stats: data.container } as unknown as ContainerStatsRecord,
|
||||||
setContainerData((prevData) => addEmptyValues(prevData, prevData.slice(-59).concat(newContainerData), 1000))
|
])
|
||||||
|
setContainerData((prevData) => addEmptyValues(prevData, prevData.slice(-59).concat(newContainerData), 1000))
|
||||||
|
}
|
||||||
setSystemStats((prevStats) =>
|
setSystemStats((prevStats) =>
|
||||||
addEmptyValues(
|
addEmptyValues(
|
||||||
prevStats,
|
prevStats,
|
||||||
|
|||||||
Reference in New Issue
Block a user