AIX: Add context switches to cpu collector

Signed-off-by: Johannes Ziemke <github@5pi.de>
This commit is contained in:
Johannes Ziemke 2025-05-23 15:10:17 +02:00 committed by Johannes 'fish' Ziemke
parent 0cb7b61fd6
commit 940e73b895

View file

@ -45,6 +45,11 @@ var (
"CPU flags.", "CPU flags.",
[]string{"cpu", "flag"}, nil, []string{"cpu", "flag"}, nil,
) )
nodeCPUContextSwitchDesc = prometheus.NewDesc(
prometheus.BuildFQName(namespace, cpuCollectorSubsystem, "context_switches_total"),
"Number of context switches.",
[]string{"cpu"}, nil,
)
) )
type cpuCollector struct { type cpuCollector struct {
@ -52,6 +57,7 @@ type cpuCollector struct {
cpuPhysical typedDesc cpuPhysical typedDesc
cpuRunQueue typedDesc cpuRunQueue typedDesc
cpuFlags typedDesc cpuFlags typedDesc
cpuContextSwitch typedDesc
logger *slog.Logger logger *slog.Logger
tickPerSecond int64 tickPerSecond int64
@ -79,6 +85,7 @@ func NewCpuCollector(logger *slog.Logger) (Collector, error) {
cpuPhysical: typedDesc{nodeCPUPhysicalSecondsDesc, prometheus.CounterValue}, cpuPhysical: typedDesc{nodeCPUPhysicalSecondsDesc, prometheus.CounterValue},
cpuRunQueue: typedDesc{nodeCPUSRunQueueDesc, prometheus.GaugeValue}, cpuRunQueue: typedDesc{nodeCPUSRunQueueDesc, prometheus.GaugeValue},
cpuFlags: typedDesc{nodeCPUFlagsDesc, prometheus.GaugeValue}, cpuFlags: typedDesc{nodeCPUFlagsDesc, prometheus.GaugeValue},
cpuContextSwitch: typedDesc{nodeCPUContextSwitchDesc, prometheus.CounterValue},
logger: logger, logger: logger,
tickPerSecond: ticks, tickPerSecond: ticks,
}, nil }, nil
@ -108,6 +115,9 @@ func (c *cpuCollector) Update(ch chan<- prometheus.Metric) error {
// Flags // Flags
ch <- c.cpuFlags.mustNewConstMetric(float64(stat.SpurrFlag), strconv.Itoa(n), "spurr") ch <- c.cpuFlags.mustNewConstMetric(float64(stat.SpurrFlag), strconv.Itoa(n), "spurr")
// Context switches
ch <- c.cpuContextSwitch.mustNewConstMetric(float64(stat.CSwitches), strconv.Itoa(n))
} }
return nil return nil
} }