feat: add GPU monitoring support via Glances integration (#5255)
* feat: add GPU monitoring support via Glances integration - Add GPU fields to SystemHealthMonitoring interface (gpuId, name, memoryUtilization, processorUtilization, temperature, fanSpeed) - Extend Glances integration to parse GPU data from /api/4/all endpoint (supports NVIDIA, AMD, and Intel GPUs via Glances) - Add GPU utilization ring to Health Monitoring widget with tooltip showing VRAM usage, temperature, and fan speed - Add GPU time-series chart to System Resources widget (grape color) - Add GPU toggle option to both widgets - Add English translations for GPU labels - Add gpu: [] to all other integrations (dashdot, truenas, unraid, openmediavault) for backward compatibility - Add GPU mock data for development/testing Closes community request from PR #5102 for GPU monitoring support. * fix: implement GPU monitoring for dashdot integration and clarify OMV comment - Add GPU load fetching via dashdot /load/gpu endpoint - Add GPU info parsing from dashdot /info endpoint - Add gpuLoadApi and gpu field to internalServerInfoApi schemas - Add getCurrentGpuLoadAsync method to DashDotIntegration - Map GPU load data to SystemHealthMonitoring gpu array - Add explanatory comment for OMV's empty gpu array Addresses review comments from manuel-rw on PR #5255 * Delete manifest.json
This commit is contained in:
1 parent
d7f0596db8
commit
003dac4744
15 files changed
+231
-2
No files matched your search
@@ -59,6 +59,14 @@ export class GlancesIntegration extends Integration implements ISystemHealthMoni
|
||||
loadAverage: null,
|
||||
smart: [],
|
||||
cpuTemp: undefined,
|
||||
gpu: stats.gpu.map((gpu) => ({
|
||||
gpuId: gpu.gpu_id,
|
||||
name: gpu.name,
|
||||
memoryUtilization: gpu.mem ?? 0,
|
||||
processorUtilization: gpu.proc ?? 0,
|
||||
temperature: gpu.temperature ?? null,
|
||||
fanSpeed: gpu.fan_speed ?? null,
|
||||
})),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -150,4 +158,16 @@ const allSchema = z.object({
|
||||
quicklook: z.object({
|
||||
cpu_name: z.string(),
|
||||
}),
|
||||
gpu: z
|
||||
.array(
|
||||
z.object({
|
||||
gpu_id: z.string(),
|
||||
name: z.string(),
|
||||
mem: z.number().nullable().optional(),
|
||||
proc: z.number().nullable().optional(),
|
||||
temperature: z.number().nullable().optional(),
|
||||
fan_speed: z.number().nullable().optional(),
|
||||
}),
|
||||
)
|
||||
.default([]),
|
||||
});
|
||||
Reference in new issue
Block a user