1
+ // Copyright The OpenTelemetry Authors
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
1
15
package crdmetrics
2
16
3
17
import (
4
18
"context"
5
- "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
6
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7
19
"testing"
8
20
9
21
"github.com/stretchr/testify/assert"
@@ -12,11 +24,13 @@ import (
12
24
"go.opentelemetry.io/otel/attribute"
13
25
"go.opentelemetry.io/otel/sdk/metric"
14
26
"go.opentelemetry.io/otel/sdk/metric/metricdata"
27
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
15
28
"k8s.io/apimachinery/pkg/runtime"
16
29
"k8s.io/client-go/kubernetes/scheme"
17
30
"sigs.k8s.io/controller-runtime/pkg/client/fake"
18
31
19
32
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
33
+ "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
20
34
)
21
35
22
36
type expectedMetric struct {
@@ -78,118 +92,110 @@ func TestValueObservedMetrics(t *testing.T) {
78
92
s .AddKnownTypes (v1alpha1 .GroupVersion ,
79
93
& v1alpha1.OpenTelemetryCollector {},
80
94
& v1alpha1.OpenTelemetryCollectorList {},
95
+ )
96
+
97
+ s .AddKnownTypes (v1beta1 .GroupVersion ,
81
98
& v1beta1.OpenTelemetryCollector {},
82
99
& v1beta1.OpenTelemetryCollectorList {},
83
100
)
84
-
85
101
collector1 := v1alpha1.OpenTelemetryCollector {
86
102
ObjectMeta : metav1.ObjectMeta {
87
103
Name : "collector1" ,
88
- Namespace : "otel " ,
104
+ Namespace : "otel1 " ,
89
105
},
90
106
Spec : v1alpha1.OpenTelemetryCollectorSpec {
91
107
92
108
Mode : v1alpha1 .ModeSidecar ,
93
109
Config : `
94
- receivers:
95
- otlp:
96
- protocols:
97
- grpc:
98
- http:
99
- processors:
100
- memory_limiter:
101
- check_interval: 1s
102
- limit_percentage: 75
103
- spike_limit_percentage: 15
104
- batch:
105
- send_batch_size: 10000
106
- timeout: 10s
107
-
108
- exporters:
109
- debug:
110
-
111
- service:
112
- pipelines:
113
- traces:
114
- receivers: [otlp]
115
- processors: []
116
- exporters: [debug]
117
- ` ,
110
+ receivers:
111
+ otlp:
112
+ protocols:
113
+ grpc: null
114
+ http: null
115
+ processors:
116
+ memory_limiter:
117
+ check_interval: 1s
118
+ limit_percentage: 75
119
+ spike_limit_percentage: 15
120
+ batch:
121
+ send_batch_size: 10000
122
+ timeout: 10s
123
+ exporters:
124
+ debug: null
125
+ service:
126
+ pipelines:
127
+ traces:
128
+ receivers:
129
+ - otlp
130
+ ` ,
118
131
},
119
132
}
120
133
121
134
collector2 := v1alpha1.OpenTelemetryCollector {
122
135
ObjectMeta : metav1.ObjectMeta {
123
136
Name : "collector1" ,
124
- Namespace : "otel " ,
137
+ Namespace : "otel2 " ,
125
138
},
126
139
Spec : v1alpha1.OpenTelemetryCollectorSpec {
127
140
128
141
Mode : v1alpha1 .ModeSidecar ,
129
142
Config : `
130
- receivers:
131
- otlp:
132
- protocols:
133
- grpc:
134
- http:
135
- processors:
136
- memory_limiter:
137
- check_interval: 1s
138
- limit_percentage: 75
139
- spike_limit_percentage: 15
140
- batch:
141
- send_batch_size: 10000
142
- timeout: 10s
143
-
144
- exporters:
145
- debug:
146
-
147
- service:
148
- pipelines:
149
- traces:
150
- receivers: [otlp]
151
- processors: []
152
- exporters: [debug]
153
- ` ,
143
+ receivers:
144
+ otlp:
145
+ protocols:
146
+ grpc: null
147
+ http: null
148
+ processors:
149
+ memory_limiter:
150
+ check_interval: 1s
151
+ limit_percentage: 75
152
+ spike_limit_percentage: 15
153
+ batch:
154
+ send_batch_size: 10000
155
+ timeout: 10s
156
+ exporters:
157
+ debug: null
158
+ service:
159
+ pipelines:
160
+ traces:
161
+ receivers:
162
+ - otlp
163
+ ` ,
154
164
},
155
165
}
156
166
157
167
collector3 := v1beta1.OpenTelemetryCollector {
158
168
ObjectMeta : metav1.ObjectMeta {
159
169
Name : "collector1" ,
160
- Namespace : "otel " ,
170
+ Namespace : "otel3 " ,
161
171
},
162
172
Spec : v1beta1.OpenTelemetryCollectorSpec {
163
173
164
174
Mode : v1beta1 .ModeSidecar ,
165
175
Config : v1beta1.Config {
166
- Receivers : v1beta1.AnyConfig {map [string ]interface {}{
167
- ""
176
+ Receivers : v1beta1.AnyConfig {Object : map [string ]interface {}{
177
+ "otlp" : true ,
178
+ }},
179
+ Exporters : v1beta1.AnyConfig {Object : map [string ]interface {}{
180
+ "otlp" : true ,
181
+ }},
182
+ Processors : & v1beta1.AnyConfig {Object : map [string ]interface {}{
183
+ "batch" : true ,
168
184
}},
169
185
},
170
186
},
171
187
}
172
188
173
189
objs := []runtime.Object {
174
- & tempoGCS ,
175
- & tempoS3 ,
176
- & tempoOtherS3 ,
177
- & tempoUnmanaged ,
178
- & tempoUnmanaged2 ,
179
- & tempoTenantOpenshift ,
180
- & tempoTenantStatic ,
190
+ & collector1 ,
191
+ & collector2 ,
192
+ & collector3 ,
181
193
}
182
194
expected := []expectedMetric {
183
- newExpectedMetric (managedMetric , attribute .String ("state" , string (v1alpha1 .ManagementStateManaged )), 5 ),
184
- newExpectedMetric (managedMetric , attribute .String ("state" , string (v1alpha1 .ManagementStateUnmanaged )), 2 ),
185
- newExpectedMetric (storageBackendMetric , attribute .String ("type" , string (v1alpha1 .ObjectStorageSecretGCS )), 1 ),
186
- newExpectedMetric (storageBackendMetric , attribute .String ("type" , string (v1alpha1 .ObjectStorageSecretS3 )), 4 ),
187
- newExpectedMetric (storageBackendMetric , attribute .String ("type" , string (v1alpha1 .ObjectStorageSecretAzure )), 2 ),
188
- newExpectedMetric (multitenancy , attribute .String ("type" , "disabled" ), 5 ),
189
- newExpectedMetric (multitenancy , attribute .String ("type" , string (v1alpha1 .ModeOpenShift )), 1 ),
190
- newExpectedMetric (multitenancy , attribute .String ("type" , string (v1alpha1 .ModeStatic )), 1 ),
191
- newExpectedMetric (jaegerUIUsage , attribute .String ("enabled" , "true" ), 1 ),
192
- newExpectedMetric (jaegerUIUsage , attribute .String ("enabled" , "false" ), 6 ),
195
+ newExpectedMetric (receivers , attribute .String ("type" , "otlp" ), 3 ),
196
+ newExpectedMetric (exporters , attribute .String ("type" , "debug" ), 2 ),
197
+ newExpectedMetric (processors , attribute .String ("type" , "memory_limiter" ), 2 ),
198
+ newExpectedMetric (processors , attribute .String ("type" , "batch" ), 3 ),
193
199
}
194
200
195
201
cl := fake .NewClientBuilder ().WithScheme (s ).WithRuntimeObjects (objs ... ).Build ()
@@ -198,7 +204,7 @@ func TestValueObservedMetrics(t *testing.T) {
198
204
provider := metric .NewMeterProvider (metric .WithReader (reader ))
199
205
otel .SetMeterProvider (provider )
200
206
201
- instancesObservedValue := newTempoStackMetrics (cl )
207
+ instancesObservedValue := newOpenTelemetryCollectorMetrics (cl )
202
208
err := instancesObservedValue .Setup ()
203
209
require .NoError (t , err )
204
210
@@ -211,7 +217,7 @@ func TestValueObservedMetrics(t *testing.T) {
211
217
}
212
218
213
219
// Test deleting GCS storage
214
- err = cl .Delete (context .Background (), & tempoGCS )
220
+ err = cl .Delete (context .Background (), & collector1 )
215
221
require .NoError (t , err )
216
222
217
223
// Reset measurement batches
@@ -223,15 +229,10 @@ func TestValueObservedMetrics(t *testing.T) {
223
229
224
230
// Set new numbers
225
231
expected = []expectedMetric {
226
- newExpectedMetric (managedMetric , attribute .String ("state" , string (v1alpha1 .ManagementStateManaged )), 4 ),
227
- newExpectedMetric (managedMetric , attribute .String ("state" , string (v1alpha1 .ManagementStateUnmanaged )), 2 ),
228
- newExpectedMetric (storageBackendMetric , attribute .String ("type" , string (v1alpha1 .ObjectStorageSecretGCS )), 0 ),
229
- newExpectedMetric (storageBackendMetric , attribute .String ("type" , string (v1alpha1 .ObjectStorageSecretS3 )), 4 ),
230
- newExpectedMetric (storageBackendMetric , attribute .String ("type" , string (v1alpha1 .ObjectStorageSecretAzure )), 2 ),
231
- newExpectedMetric (multitenancy , attribute .String ("type" , string (v1alpha1 .ModeOpenShift )), 1 ),
232
- newExpectedMetric (multitenancy , attribute .String ("type" , string (v1alpha1 .ModeStatic )), 1 ),
233
- newExpectedMetric (jaegerUIUsage , attribute .String ("enabled" , "true" ), 0 ),
234
- newExpectedMetric (jaegerUIUsage , attribute .String ("enabled" , "false" ), 6 ),
232
+ newExpectedMetric (receivers , attribute .String ("type" , "otlp" ), 2 ),
233
+ newExpectedMetric (exporters , attribute .String ("type" , "debug" ), 1 ),
234
+ newExpectedMetric (processors , attribute .String ("type" , "memory_limiter" ), 1 ),
235
+ newExpectedMetric (processors , attribute .String ("type" , "batch" ), 2 ),
235
236
}
236
237
for _ , e := range expected {
237
238
assertLabelAndValues (t , e .name , metrics , e .labels , e .value )
0 commit comments