From 0add644e22c4a375ff03200365ac769b2a08518a Mon Sep 17 00:00:00 2001 From: Antonio Jimenez Date: Thu, 7 Sep 2023 17:06:47 +0200 Subject: [PATCH] Add telemetry test --- service/telemetry/telemetry_test.go | 116 ++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 service/telemetry/telemetry_test.go diff --git a/service/telemetry/telemetry_test.go b/service/telemetry/telemetry_test.go new file mode 100644 index 00000000000..c1dd6556c1c --- /dev/null +++ b/service/telemetry/telemetry_test.go @@ -0,0 +1,116 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry + +import ( + "context" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" + + "go.opentelemetry.io/collector/config/configtelemetry" +) + +func TestTelemetryConfiguration(t *testing.T) { + tests := []struct { + name string + cfg *Config + success bool + }{ + { + name: "Valid config", + cfg: &Config{ + Logs: LogsConfig{ + Level: zapcore.DebugLevel, + Encoding: "console", + }, + Metrics: MetricsConfig{ + Level: configtelemetry.LevelBasic, + Address: "127.0.0.1:3333", + }, + }, + success: true, + }, + { + name: "Invalid config", + cfg: &Config{ + Logs: LogsConfig{ + Level: zapcore.DebugLevel, + }, + Metrics: MetricsConfig{ + Level: configtelemetry.LevelBasic, + Address: "127.0.0.1:3333", + }, + }, + success: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + telemetry, err := New(context.Background(), Settings{ZapOptions: []zap.Option{}}, *tt.cfg) + if tt.success { + assert.NoError(t, err) + assert.NotNil(t, telemetry) + } else { + assert.Error(t, err) + assert.Nil(t, telemetry) + } + }) + } +} + +func TestSampledLoggerCreateFirstTime(t *testing.T) { + tests := []struct { + name string + cfg *Config + }{ + { + name: "Default sampling", + cfg: &Config{ + Logs: LogsConfig{ + Level: zapcore.DebugLevel, + Encoding: "console", + }, + Metrics: MetricsConfig{ + Level: configtelemetry.LevelBasic, + Address: "127.0.0.1:3333", + }, + }, + }, + { + name: "Custom sampling", + cfg: &Config{ + Logs: LogsConfig{ + Level: zapcore.DebugLevel, + Encoding: "console", + Sampling: &LogsSamplingConfig{ + Initial: 50, + Tick: 2 * time.Second, + Thereafter: 40, + }, + }, + Metrics: MetricsConfig{ + Level: configtelemetry.LevelBasic, + Address: "127.0.0.1:3333", + }, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + telemetry, err := New(context.Background(), Settings{ZapOptions: []zap.Option{}}, *tt.cfg) + assert.NoError(t, err) + assert.NotNil(t, telemetry) + assert.Nil(t, telemetry.sampledLogger) + getSampledLogger := telemetry.SampledLogger() + assert.NotNil(t, getSampledLogger()) + assert.Equal(t, getSampledLogger(), telemetry.sampledLogger) + }) + } +}