fix: windows_cpu_processor_utility_total is always 0 (#1966)

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>

(cherry picked from commit 9db4318ea9)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
Jan-Otto Kröpke
2025-04-05 22:20:07 +02:00
parent 6f0209ddb7
commit c300935170
4 changed files with 37 additions and 14 deletions

View File

@@ -31,6 +31,7 @@ func NewCounter(lastValue uint32) Counter {
func (c *Counter) AddValue(value uint32) {
c.totalValue += float64(value - c.lastValue)
c.lastValue = value
}
func (c *Counter) Value() float64 {

View File

@@ -20,20 +20,36 @@ import (
"testing"
"github.com/prometheus-community/windows_exporter/internal/utils"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestCounter(t *testing.T) {
t.Parallel()
c := utils.NewCounter(0)
assert.Equal(t, 0.0, c.Value()) //nolint:testifylint
require.Equal(t, 0.0, c.Value()) //nolint:testifylint
c.AddValue(1)
c.AddValue(10)
assert.Equal(t, 1.0, c.Value()) //nolint:testifylint
require.Equal(t, 10.0, c.Value()) //nolint:testifylint
c.AddValue(math.MaxUint32)
c.AddValue(50)
assert.Equal(t, float64(math.MaxUint32)+1.0, c.Value()) //nolint:testifylint
require.Equal(t, 50.0, c.Value()) //nolint:testifylint
c.AddValue(math.MaxUint32 - 10)
require.Equal(t, float64(math.MaxUint32)-10, c.Value()) //nolint:testifylint
c.AddValue(20)
require.Equal(t, float64(math.MaxUint32)+21, c.Value()) //nolint:testifylint
c.AddValue(40)
require.Equal(t, float64(math.MaxUint32)+41, c.Value()) //nolint:testifylint
c.AddValue(math.MaxUint32 - 10)
require.Equal(t, float64(math.MaxUint32)*2-9, c.Value()) //nolint:testifylint
}