Skip to content

Commit 0add644

Browse files
committed
Add telemetry test
1 parent 0b60ef8 commit 0add644

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed

service/telemetry/telemetry_test.go

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package telemetry
5+
6+
import (
7+
"context"
8+
"testing"
9+
"time"
10+
11+
"github.com/stretchr/testify/assert"
12+
"go.uber.org/zap"
13+
"go.uber.org/zap/zapcore"
14+
15+
"go.opentelemetry.io/collector/config/configtelemetry"
16+
)
17+
18+
func TestTelemetryConfiguration(t *testing.T) {
19+
tests := []struct {
20+
name string
21+
cfg *Config
22+
success bool
23+
}{
24+
{
25+
name: "Valid config",
26+
cfg: &Config{
27+
Logs: LogsConfig{
28+
Level: zapcore.DebugLevel,
29+
Encoding: "console",
30+
},
31+
Metrics: MetricsConfig{
32+
Level: configtelemetry.LevelBasic,
33+
Address: "127.0.0.1:3333",
34+
},
35+
},
36+
success: true,
37+
},
38+
{
39+
name: "Invalid config",
40+
cfg: &Config{
41+
Logs: LogsConfig{
42+
Level: zapcore.DebugLevel,
43+
},
44+
Metrics: MetricsConfig{
45+
Level: configtelemetry.LevelBasic,
46+
Address: "127.0.0.1:3333",
47+
},
48+
},
49+
success: false,
50+
},
51+
}
52+
53+
for _, tt := range tests {
54+
t.Run(tt.name, func(t *testing.T) {
55+
telemetry, err := New(context.Background(), Settings{ZapOptions: []zap.Option{}}, *tt.cfg)
56+
if tt.success {
57+
assert.NoError(t, err)
58+
assert.NotNil(t, telemetry)
59+
} else {
60+
assert.Error(t, err)
61+
assert.Nil(t, telemetry)
62+
}
63+
})
64+
}
65+
}
66+
67+
func TestSampledLoggerCreateFirstTime(t *testing.T) {
68+
tests := []struct {
69+
name string
70+
cfg *Config
71+
}{
72+
{
73+
name: "Default sampling",
74+
cfg: &Config{
75+
Logs: LogsConfig{
76+
Level: zapcore.DebugLevel,
77+
Encoding: "console",
78+
},
79+
Metrics: MetricsConfig{
80+
Level: configtelemetry.LevelBasic,
81+
Address: "127.0.0.1:3333",
82+
},
83+
},
84+
},
85+
{
86+
name: "Custom sampling",
87+
cfg: &Config{
88+
Logs: LogsConfig{
89+
Level: zapcore.DebugLevel,
90+
Encoding: "console",
91+
Sampling: &LogsSamplingConfig{
92+
Initial: 50,
93+
Tick: 2 * time.Second,
94+
Thereafter: 40,
95+
},
96+
},
97+
Metrics: MetricsConfig{
98+
Level: configtelemetry.LevelBasic,
99+
Address: "127.0.0.1:3333",
100+
},
101+
},
102+
},
103+
}
104+
105+
for _, tt := range tests {
106+
t.Run(tt.name, func(t *testing.T) {
107+
telemetry, err := New(context.Background(), Settings{ZapOptions: []zap.Option{}}, *tt.cfg)
108+
assert.NoError(t, err)
109+
assert.NotNil(t, telemetry)
110+
assert.Nil(t, telemetry.sampledLogger)
111+
getSampledLogger := telemetry.SampledLogger()
112+
assert.NotNil(t, getSampledLogger())
113+
assert.Equal(t, getSampledLogger(), telemetry.sampledLogger)
114+
})
115+
}
116+
}

0 commit comments

Comments
 (0)