diff --git a/pkg/beholder/client.go b/pkg/beholder/client.go index cf66c39306..0b0f884fd0 100644 --- a/pkg/beholder/client.go +++ b/pkg/beholder/client.go @@ -434,7 +434,7 @@ func createConfigMetric(meter otelmetric.Meter, cfg Config) (otelmetric.Int64Gau // Metrics config attribute.String( - "metric_reader_interval", cfg.MetricReaderInterval.String()), + "metric_reader_interval", metricReaderInterval(cfg).String()), attribute.String( "metric_compressor", cfg.MetricCompressor), } @@ -544,7 +544,7 @@ func newMeterProvider(cfg Config, resource *sdkresource.Resource, auth Auth, cre } readerOpts := []sdkmetric.PeriodicReaderOption{ - sdkmetric.WithInterval(cfg.MetricReaderInterval), // Default is 10s + sdkmetric.WithInterval(metricReaderInterval(cfg)), // Zero uses Beholder default (1s) } for _, p := range cfg.MetricProducers { readerOpts = append(readerOpts, sdkmetric.WithProducer(p)) diff --git a/pkg/beholder/config.go b/pkg/beholder/config.go index 09ef907ed7..36ea1ed71f 100644 --- a/pkg/beholder/config.go +++ b/pkg/beholder/config.go @@ -163,6 +163,13 @@ func DefaultConfig() Config { } } +func metricReaderInterval(cfg Config) time.Duration { + if cfg.MetricReaderInterval > 0 { + return cfg.MetricReaderInterval + } + return DefaultConfig().MetricReaderInterval +} + func TestDefaultConfig() Config { config := DefaultConfig() // Should be only disabled for testing diff --git a/pkg/beholder/config_defaults_test.go b/pkg/beholder/config_defaults_test.go new file mode 100644 index 0000000000..85270ee886 --- /dev/null +++ b/pkg/beholder/config_defaults_test.go @@ -0,0 +1,15 @@ +package beholder + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" +) + +func TestMetricReaderInterval_zeroUsesDefault(t *testing.T) { + t.Parallel() + + assert.Equal(t, time.Second, metricReaderInterval(Config{})) + assert.Equal(t, 5*time.Second, metricReaderInterval(Config{MetricReaderInterval: 5 * time.Second})) +} diff --git a/pkg/beholder/httpclient.go b/pkg/beholder/httpclient.go index 4bc3c78db6..e5ad96bcfa 100644 --- a/pkg/beholder/httpclient.go +++ b/pkg/beholder/httpclient.go @@ -289,7 +289,7 @@ func newHTTPMeterProvider(config Config, resource *sdkresource.Resource, tlsConf sdkmetric.WithReader( sdkmetric.NewPeriodicReader( exporter, - sdkmetric.WithInterval(config.MetricReaderInterval), // Default is 10s + sdkmetric.WithInterval(metricReaderInterval(config)), // Zero uses Beholder default (1s) )), sdkmetric.WithResource(resource), sdkmetric.WithView(config.MetricViews...),