{"record":{"id":"6a6ce8fa0a43dd95","repo":"henrygd/beszel","slug":"no-configured-gpu-collectors-are-available","errorCode":null,"errorMessage":"no configured GPU collectors are available","messagePattern":"no configured GPU collectors are available","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agent/gpu.go","lineNumber":772,"sourceCode":"func NewGPUManager() (*GPUManager, error) {\n\tif skipGPU, _ := utils.GetEnv(\"SKIP_GPU\"); skipGPU == \"true\" {\n\t\treturn nil, nil\n\t}\n\tvar gm GPUManager\n\tcaps := gm.discoverGpuCapabilities()\n\tgm.GpuDataMap = make(map[string]*system.GPUData)\n\n\t// Jetson devices should always use tegrastats (ignore GPU_COLLECTOR).\n\tif caps.hasTegrastats {\n\t\tgm.startTegraStatsCollector(\"3700\")\n\t\treturn &gm, nil\n\t}\n\n\t// Respect explicit collector selection before capability auto-detection.\n\tif collectorConfig, ok := utils.GetEnv(\"GPU_COLLECTOR\"); ok && strings.TrimSpace(collectorConfig) != \"\" {\n\t\tpriorities := parseCollectorPriority(collectorConfig)\n\t\tif gm.startCollectorsByPriority(priorities, caps) == 0 {\n\t\t\treturn nil, fmt.Errorf(\"no configured GPU collectors are available\")\n\t\t}\n\t\treturn &gm, nil\n\t}\n\n\tif !hasAnyGpuCollector(caps) {\n\t\treturn nil, fmt.Errorf(noGPUFoundMsg)\n\t}\n\n\t// auto-detect and start collectors when GPU_COLLECTOR is unset.\n\tif gm.startCollectorsByPriority(gm.resolveLegacyCollectorPriority(caps), caps) == 0 {\n\t\treturn nil, fmt.Errorf(noGPUFoundMsg)\n\t}\n\n\treturn &gm, nil\n}\n","sourceCodeStart":754,"sourceCodeEnd":788,"githubUrl":"https://github.com/henrygd/beszel/blob/b38fb7dafa60812cc22e6a84ce313e94f1ce0a32/agent/gpu.go#L754-L788","documentation":"During GPUManager initialization, if GPU_COLLECTOR is explicitly set, the manager only starts collectors from that priority list. This error is returned when zero of the explicitly configured collectors could be started, i.e. the operator forced collectors that are unavailable on this host. It aborts GPU monitoring startup.","triggerScenarios":"GPU_COLLECTOR env var is set (e.g. 'nvtop,intel') but startCollectorsByPriority returns 0 — none of the named binaries exist, none have the required capabilities, or all fail their initial collection check.","commonSituations":"GPU_COLLECTOR copied from another machine's config where different GPUs/tools exist; typo in collector name (e.g. 'nvidia' instead of the expected identifier); tools not installed in a containerized agent image; missing capabilities in restricted environments.","solutions":["Check GPU_COLLECTOR spelling against the supported collector identifiers (nvtop, nvidia-smi, rocm, intel, macmon, powermetrics, tegrastats)","Install the binaries for the configured collectors or remove GPU_COLLECTOR to enable auto-detection","Verify the host actually has GPUs matching the configured collectors","Inside containers, ensure the GPU device + tool are present in the image and device is passed through"],"exampleFix":"// before: forces collectors absent on this host\nGPU_COLLECTOR=intel_gpu_top\n// after: either install the tool or let auto-detection choose\nunset GPU_COLLECTOR  # or install intel-gpu-tools","handlingStrategy":"validation","validationCode":"// validate GPU_COLLECTOR against available tools before starting the agent\nfor _, c := range strings.Split(os.Getenv(\"GPU_COLLECTOR\"), \",\") {\n    if _, err := exec.LookPath(strings.TrimSpace(c)); err != nil {\n        log.Warn(\"configured GPU collector missing\", \"collector\", c)\n    }\n}","typeGuard":null,"tryCatchPattern":"gm, err := newGPUManager()\nif err != nil && strings.Contains(err.Error(), \"no configured GPU collectors\") {\n    log.Warn(\"GPU monitoring disabled: configured collectors unavailable\")\n    return\n}","preventionTips":["Verify collector names against the supported list before setting GPU_COLLECTOR","Unset GPU_COLLECTOR to fall back to auto-detection","Ensure GPU tools and devices are present in containerized agent images","Test the configured collector binary manually on the target host"],"tags":["gpu","configuration","env-var"],"backgroundTag":"misconfigured-env-var","analyzedSha":"b38fb7dafa60812cc22e6a84ce313e94f1ce0a32","analyzedAt":"2026-08-31T15:10:10.149Z","schemaVersion":2},"datasetVersion":"2026-08-31T19:17:28.585Z"}