@@ -10,12 +10,6 @@ import (
10
10
11
11
"github.com/stretchr/testify/assert"
12
12
"github.com/stretchr/testify/require"
13
- "go.opentelemetry.io/otel/metric/noop"
14
- sdkmetric "go.opentelemetry.io/otel/sdk/metric"
15
- "go.opentelemetry.io/otel/sdk/resource"
16
- semconv "go.opentelemetry.io/otel/semconv/v1.21.0"
17
-
18
- "github.com/stacklok/toolhive/pkg/telemetry/providers"
19
13
)
20
14
21
15
// TestTelemetryProviderValidation tests the five main telemetry configuration scenarios
@@ -164,112 +158,6 @@ func TestTelemetryProviderValidation(t *testing.T) {
164
158
}
165
159
}
166
160
167
- // TestUnifiedMeterStrategyConfiguration tests the unified meter strategy configuration
168
- func TestUnifiedMeterStrategyConfiguration (t * testing.T ) {
169
- t .Parallel ()
170
- ctx := context .Background ()
171
-
172
- tests := []struct {
173
- name string
174
- strategy * providers.UnifiedMeterStrategy
175
- config providers.Config
176
- expectError bool
177
- description string
178
- }{
179
- {
180
- name : "OTLP only" ,
181
- strategy : & providers.UnifiedMeterStrategy {
182
- EnableOTLP : true ,
183
- EnablePrometheus : false ,
184
- },
185
- config : providers.Config {
186
- ServiceName : "test" ,
187
- OTLPEndpoint : "localhost:4318" ,
188
- Insecure : true ,
189
- },
190
- expectError : false ,
191
- description : "Should create meter provider with OTLP reader only" ,
192
- },
193
- {
194
- name : "Prometheus only" ,
195
- strategy : & providers.UnifiedMeterStrategy {
196
- EnableOTLP : false ,
197
- EnablePrometheus : true ,
198
- },
199
- config : providers.Config {
200
- ServiceName : "test" ,
201
- },
202
- expectError : false ,
203
- description : "Should create meter provider with Prometheus reader only" ,
204
- },
205
- {
206
- name : "Both OTLP and Prometheus" ,
207
- strategy : & providers.UnifiedMeterStrategy {
208
- EnableOTLP : true ,
209
- EnablePrometheus : true ,
210
- },
211
- config : providers.Config {
212
- ServiceName : "test" ,
213
- OTLPEndpoint : "localhost:4318" ,
214
- Insecure : true ,
215
- },
216
- expectError : false ,
217
- description : "Should create meter provider with both readers" ,
218
- },
219
- }
220
-
221
- for _ , tt := range tests {
222
- tt := tt // capture range variable
223
- t .Run (tt .name , func (t * testing.T ) {
224
- t .Parallel ()
225
-
226
- // Create resource for testing
227
- res , err := createTestResource (ctx , tt .config )
228
- require .NoError (t , err )
229
-
230
- // Test meter provider creation
231
- result , err := tt .strategy .CreateMeterProvider (ctx , tt .config , res )
232
-
233
- if tt .expectError {
234
- require .Error (t , err )
235
- return
236
- }
237
-
238
- require .NoError (t , err , tt .description )
239
- require .NotNil (t , result )
240
- require .NotNil (t , result .MeterProvider )
241
-
242
- // Validate provider type
243
- if tt .strategy .EnableOTLP || tt .strategy .EnablePrometheus {
244
- // Should be SDK meter provider when any reader is enabled
245
- assert .IsType (t , & sdkmetric.MeterProvider {}, result .MeterProvider ,
246
- "Should create SDK meter provider when readers are configured" )
247
- } else {
248
- // Should be no-op when nothing is enabled
249
- assert .IsType (t , noop.MeterProvider {}, result .MeterProvider ,
250
- "Should create no-op meter provider when no readers are configured" )
251
- }
252
-
253
- // Validate Prometheus handler
254
- if tt .strategy .EnablePrometheus {
255
- assert .NotNil (t , result .PrometheusHandler ,
256
- "Should have Prometheus handler when Prometheus is enabled" )
257
- } else {
258
- assert .Nil (t , result .PrometheusHandler ,
259
- "Should not have Prometheus handler when Prometheus is disabled" )
260
- }
261
-
262
- // Test shutdown if available - ignore connection errors during test shutdown
263
- if result .ShutdownFunc != nil {
264
- err := result .ShutdownFunc (ctx )
265
- if err != nil && ! isConnectionError (err ) {
266
- t .Errorf ("Shutdown error (non-connection): %v" , err )
267
- }
268
- }
269
- })
270
- }
271
- }
272
-
273
161
// getProviderTypeName returns a readable type name for telemetry providers
274
162
func getProviderTypeName (provider interface {}) string {
275
163
t := reflect .TypeOf (provider )
@@ -279,16 +167,6 @@ func getProviderTypeName(provider interface{}) string {
279
167
return t .PkgPath ()[len ("go.opentelemetry.io/otel/" ):] + "." + t .Name ()
280
168
}
281
169
282
- // createTestResource creates a resource for testing
283
- func createTestResource (ctx context.Context , config providers.Config ) (* resource.Resource , error ) {
284
- return resource .New (ctx ,
285
- resource .WithAttributes (
286
- semconv .ServiceName (config .ServiceName ),
287
- semconv .ServiceVersion ("1.0.0" ),
288
- ),
289
- )
290
- }
291
-
292
170
// isConnectionError checks if the error is a connection-related error that can be ignored in tests
293
171
func isConnectionError (err error ) bool {
294
172
errorStr := err .Error ()
0 commit comments