@@ -25,6 +25,14 @@ import (
2525 "github.com/envoyproxy/ai-gateway/internal/tracing/openinference"
2626)
2727
28+ // clearEnv clears any OTEL configuration that could exist in the environment.
29+ func clearEnv (t * testing.T ) {
30+ t .Helper ()
31+ t .Setenv ("OTEL_EXPORTER_OTLP_ENDPOINT" , "" )
32+ t .Setenv ("OTEL_METRICS_EXPORTER" , "" )
33+ t .Setenv ("OTEL_SERVICE_NAME" , "" )
34+ }
35+
2836// TestNewTracingFromEnv_DefaultServiceName tests that the service name.
2937// defaults to "ai-gateway" when OTEL_SERVICE_NAME is not set.
3038func TestNewTracingFromEnv_DefaultServiceName (t * testing.T ) {
@@ -52,6 +60,7 @@ func TestNewTracingFromEnv_DefaultServiceName(t *testing.T) {
5260
5361 for _ , tt := range tests {
5462 t .Run (tt .name , func (t * testing.T ) {
63+ clearEnv (t )
5564 for k , v := range tt .env {
5665 t .Setenv (k , v )
5766 }
@@ -109,6 +118,7 @@ func TestNewTracingFromEnv_DisabledByEnv(t *testing.T) {
109118
110119 for _ , tt := range tests {
111120 t .Run (tt .name , func (t * testing.T ) {
121+ clearEnv (t )
112122 for k , v := range tt .env {
113123 t .Setenv (k , v )
114124 }
@@ -162,6 +172,7 @@ func TestNewTracingFromEnv_EndpointHierarchy(t *testing.T) {
162172
163173 for _ , tt := range tests {
164174 t .Run (tt .name , func (t * testing.T ) {
175+ clearEnv (t )
165176 for k , v := range tt .env {
166177 t .Setenv (k , v )
167178 }
@@ -226,6 +237,7 @@ func TestNewTracingFromEnv_ConsoleExporter(t *testing.T) {
226237
227238 for _ , tt := range tests {
228239 t .Run (tt .name , func (t * testing.T ) {
240+ clearEnv (t )
229241 for k , v := range tt .env {
230242 t .Setenv (k , v )
231243 }
@@ -274,6 +286,7 @@ func TestNewTracingFromEnv_Exporter(t *testing.T) {
274286 // Just test 2 exporters to prove the SDK is wired up correctly.
275287 for _ , exporter := range []string {"console" , "otlp" } {
276288 t .Run (exporter , func (t * testing.T ) {
289+ clearEnv (t )
277290 t .Setenv ("OTEL_TRACES_EXPORTER" , exporter )
278291
279292 var stdout bytes.Buffer
@@ -313,6 +326,7 @@ func TestNewTracingFromEnv_TracesSampler(t *testing.T) {
313326
314327 for _ , tt := range tests {
315328 t .Run (tt .sampler , func (t * testing.T ) {
329+ clearEnv (t )
316330 t .Setenv ("OTEL_TRACES_SAMPLER" , tt .sampler )
317331 collector , tracing := newTracingFromEnvForTest (t , io .Discard )
318332
@@ -359,6 +373,7 @@ func TestNewTracingFromEnv_OtelPropagators(t *testing.T) {
359373
360374 for _ , tt := range tests {
361375 t .Run (tt .propagator , func (t * testing.T ) {
376+ clearEnv (t )
362377 t .Setenv ("OTEL_PROPAGATORS" , tt .propagator )
363378 collector , tracing := newTracingFromEnvForTest (t , io .Discard )
364379
@@ -424,6 +439,7 @@ func TestNewTracingFromEnv_ChatCompletion_Redaction(t *testing.T) {
424439
425440 for _ , tt := range tests {
426441 t .Run (tt .name , func (t * testing.T ) {
442+ clearEnv (t )
427443 t .Setenv (openinference .EnvHideInputs , strconv .FormatBool (tt .hideInputs ))
428444 t .Setenv (openinference .EnvHideOutputs , strconv .FormatBool (tt .hideOutputs ))
429445
@@ -530,6 +546,7 @@ func TestNewTracingFromEnv_OTLPHeaders(t *testing.T) {
530546 }))
531547 t .Cleanup (ts .Close )
532548
549+ clearEnv (t )
533550 t .Setenv ("OTEL_EXPORTER_OTLP_HEADERS" , "Authorization=" + expectedAuthorization )
534551 t .Setenv ("OTEL_EXPORTER_OTLP_ENDPOINT" , ts .URL )
535552 t .Setenv ("OTEL_EXPORTER_OTLP_PROTOCOL" , "http/protobuf" )
@@ -558,6 +575,7 @@ func TestNewTracingFromEnv_OTLPHeaders(t *testing.T) {
558575func TestNewTracingFromEnv_HeaderAttributeMapping (t * testing.T ) {
559576 collector := testotel .StartOTLPCollector ()
560577 t .Cleanup (collector .Close )
578+ clearEnv (t )
561579 collector .SetEnv (t .Setenv )
562580
563581 mapping := map [string ]string {
@@ -626,6 +644,7 @@ func TestNewTracingFromEnv_Embeddings_Redaction(t *testing.T) {
626644
627645 for _ , tt := range tests {
628646 t .Run (tt .name , func (t * testing.T ) {
647+ clearEnv (t )
629648 t .Setenv (openinference .EnvHideEmbeddingsText , strconv .FormatBool (tt .hideEmbeddingsText ))
630649 t .Setenv (openinference .EnvHideEmbeddingsVectors , strconv .FormatBool (tt .hideEmbeddingsVectors ))
631650
0 commit comments