prometheus/node_exporter · error

couldn't get softirqs

Error message

couldn't get softirqs: %w

What it means

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.

Solutions

  1. Verify /proc/softirqs exists and is readable: `cat /proc/softirqs`.
  2. Ensure the kernel exposes the expected format; very old kernels may lack fields procfs expects — upgrade kernel or procfs.
  3. Retry the scrape; transient failures resolve on the next cycle.
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at collector/softirqs_linux.go:32 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prometheus/node_exporter@17ddd77c59 (2026-09-07). Data as JSON: /api/errors/3721052213533225. Report an issue: GitHub.

Appendix: source

Thrown at collector/softirqs_linux.go:32

//go:build !nosoftirqs

package collector

import (
	"fmt"
	"strconv"

	"github.com/prometheus/client_golang/prometheus"
)

var (
	softirqLabelNames = []string{"cpu", "type"}
)

func (c *softirqsCollector) Update(ch chan<- prometheus.Metric) (err error) {
	softirqs, err := c.fs.Softirqs()
	if err != nil {
		return fmt.Errorf("couldn't get softirqs: %w", err)
	}

	for cpuNo, value := range softirqs.Hi {
		ch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), "HI")
	}
	for cpuNo, value := range softirqs.Timer {
		ch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), "TIMER")
	}
	for cpuNo, value := range softirqs.NetTx {
		ch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), "NET_TX")
	}
	for cpuNo, value := range softirqs.NetRx {
		ch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), "NET_RX")
	}
	for cpuNo, value := range softirqs.Block {
		ch <- c.desc.mustNewConstMetric(float64(value), strconv.Itoa(cpuNo), "BLOCK")
	}
	for cpuNo, value := range softirqs.IRQPoll {

View on GitHub (pinned to 17ddd77c59)