Do not save current state of infiniband counters, only last state is required

This commit is contained in:
Holger Obermaier
2026-05-06 10:42:06 +02:00
parent 7585ee7289
commit 0f6fee9db4

View File

@@ -32,7 +32,6 @@ type InfinibandCollectorMetric struct {
scale int64 scale int64
addToIBTotal bool addToIBTotal bool
addToIBTotalPkgs bool addToIBTotalPkgs bool
currentState int64
lastState int64 lastState int64
} }
@@ -229,12 +228,9 @@ func (m *InfinibandCollector) Read(interval time.Duration, output chan lp.CCMess
// Scale raw value // Scale raw value
v *= counterDef.scale v *= counterDef.scale
// Save current state
counterDef.currentState = v
// Send absolut values // Send absolut values
if m.config.SendAbsoluteValues { if m.config.SendAbsoluteValues {
if y, err := lp.NewMetric(counterDef.name, info.tagSet, m.meta, counterDef.currentState, now); err == nil { if y, err := lp.NewMetric(counterDef.name, info.tagSet, m.meta, v, now); err == nil {
y.AddMeta("unit", counterDef.unit) y.AddMeta("unit", counterDef.unit)
output <- y output <- y
} }
@@ -243,7 +239,7 @@ func (m *InfinibandCollector) Read(interval time.Duration, output chan lp.CCMess
// Send derived values // Send derived values
if m.config.SendDerivedValues { if m.config.SendDerivedValues {
if counterDef.lastState >= 0 { if counterDef.lastState >= 0 {
rate := float64((counterDef.currentState - counterDef.lastState)) / timeDiff rate := float64((v - counterDef.lastState)) / timeDiff
if y, err := lp.NewMetric(counterDef.name+"_bw", info.tagSet, m.meta, rate, now); err == nil { if y, err := lp.NewMetric(counterDef.name+"_bw", info.tagSet, m.meta, rate, now); err == nil {
y.AddMeta("unit", counterDef.unit+"/sec") y.AddMeta("unit", counterDef.unit+"/sec")
output <- y output <- y
@@ -261,16 +257,16 @@ func (m *InfinibandCollector) Read(interval time.Duration, output chan lp.CCMess
} }
} }
} }
counterDef.lastState = counterDef.currentState counterDef.lastState = v
} }
// Sum up total values // Sum up total values
if m.config.SendTotalValues { if m.config.SendTotalValues {
switch { switch {
case counterDef.addToIBTotal: case counterDef.addToIBTotal:
ib_total += counterDef.currentState ib_total += v
case counterDef.addToIBTotalPkgs: case counterDef.addToIBTotalPkgs:
ib_total_pkts += counterDef.currentState ib_total_pkts += v
} }
} }
} }