diff --git a/remappers/hostmetrics/cpu.go b/remappers/hostmetrics/cpu.go index c4be922..eba6d83 100644 --- a/remappers/hostmetrics/cpu.go +++ b/remappers/hostmetrics/cpu.go @@ -18,8 +18,6 @@ package hostmetrics import ( - "errors" - "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" @@ -146,7 +144,10 @@ func remapCPUMetrics( ) if numCores == 0 { - return errors.New("system.cpu.logical.count metric is missing in the hostmetrics") + // system.cpu.logical.count is optional, and if it's not + // present we can't calculate the normalized values. + // This is not an error, so we just return early. + return nil } totalNorm := totalPercent / float64(numCores) diff --git a/remappers/hostmetrics/hostmetrics_test.go b/remappers/hostmetrics/hostmetrics_test.go index a400d61..ac24cb4 100644 --- a/remappers/hostmetrics/hostmetrics_test.go +++ b/remappers/hostmetrics/hostmetrics_test.go @@ -29,7 +29,10 @@ import ( "github.com/stretchr/testify/assert" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" "go.uber.org/zap/zaptest" + "go.uber.org/zap/zaptest/observer" ) var ( @@ -348,10 +351,16 @@ func doTestRemap(t *testing.T, id string, remapOpts ...Option) { resource := pcommon.NewResource() resource.Attributes().FromRaw(tc.resourceAttrs) + core, observedLogs := observer.New(zapcore.WarnLevel) + logger := zap.New(core) + actual := pmetric.NewMetricSlice() - r := NewRemapper(zaptest.NewLogger(t), remapOpts...) + r := NewRemapper(logger, remapOpts...) r.Remap(sm, actual, resource) assert.Empty(t, cmp.Diff(tc.expected, testutils.MetricSliceToTestMetric(t, actual), cmpopts.EquateApprox(0, 0.001))) + + // There should be no warning or error logs. + assert.Zero(t, observedLogs.Len()) }) } }