{"record":{"id":"3721052213533225","repo":"prometheus/node_exporter","slug":"couldn-t-get-softirqs-w","errorCode":null,"errorMessage":"couldn't get softirqs: %w","messagePattern":"couldn't get softirqs: %w","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"collector/softirqs_linux.go","lineNumber":32,"sourceCode":"//go:build !nosoftirqs\n\npackage collector\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/prometheus/client_golang/prometheus\"\n)\n\nvar (\n\tsoftirqLabelNames = []string{\"cpu\", \"type\"}\n)\n\nfunc (c *softirqsCollector) Update(ch chan<- prometheus.Metric) (err error) {\n\tsoftirqs, err := c.fs.Softirqs()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"couldn't get softirqs: %w\", err)\n\t}\n\n\tfor cpuNo, value := range softirqs.Hi {\n\t\tch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), \"HI\")\n\t}\n\tfor cpuNo, value := range softirqs.Timer {\n\t\tch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), \"TIMER\")\n\t}\n\tfor cpuNo, value := range softirqs.NetTx {\n\t\tch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), \"NET_TX\")\n\t}\n\tfor cpuNo, value := range softirqs.NetRx {\n\t\tch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), \"NET_RX\")\n\t}\n\tfor cpuNo, value := range softirqs.Block {\n\t\tch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), \"BLOCK\")\n\t}\n\tfor cpuNo, value := range softirqs.IRQPoll {","sourceCodeStart":14,"sourceCodeEnd":50,"githubUrl":"https://github.com/prometheus/node_exporter/blob/17ddd77c59ba27e1508e9f7894b1e55b44d6aed3/collector/softirqs_linux.go#L14-L50","documentation":"Update failed because procfs could not read or parse the softirqs data (from /proc/softirqs via fs.Softirqs()). A missing or malformed /proc/softirqs makes the whole softirqs scrape fail for the cycle.","triggerScenarios":"Thrown at collector/softirqs_linux.go:32 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify /proc/softirqs exists and is readable: `cat /proc/softirqs`.","Ensure the kernel exposes the expected format; very old kernels may lack fields procfs expects — upgrade kernel or procfs.","Retry the scrape; transient failures resolve on the next cycle."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"17ddd77c59ba27e1508e9f7894b1e55b44d6aed3","analyzedAt":"2026-09-07T17:54:06.211Z","contentChangedAt":"2026-09-07T17:54:06.211Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}