Sfoglia il codice sorgente

otel: fix initialization / error-handling (#10717)

* If there's no `otel` key (or the value is `null`) in the config,
  don't return an error
* Propagate error from the exporter instead of panicking

Signed-off-by: Milas Bowman <[email protected]>
Milas Bowman 2 anni fa
parent
commit
ff3984e609
2 ha cambiato i file con 5 aggiunte e 5 eliminazioni
  1. 4 0
      internal/tracing/docker_context.go
  2. 1 5
      internal/tracing/mux.go

+ 4 - 0
internal/tracing/docker_context.go

@@ -94,6 +94,10 @@ func ConfigFromDockerContext(st store.Store, name string) (OTLPConfig, error) {
 	case map[string]interface{}:
 		otelCfg = m[otelConfigFieldName]
 	}
+	if otelCfg == nil {
+		return OTLPConfig{}, nil
+	}
+
 	otelMap, ok := otelCfg.(map[string]interface{})
 	if !ok {
 		return OTLPConfig{}, fmt.Errorf(

+ 1 - 5
internal/tracing/mux.go

@@ -18,7 +18,6 @@ package tracing
 
 import (
 	"context"
-	"log"
 
 	"github.com/hashicorp/go-multierror"
 	sdktrace "go.opentelemetry.io/otel/sdk/trace"
@@ -36,10 +35,7 @@ func (m MuxExporter) ExportSpans(ctx context.Context, spans []sdktrace.ReadOnlyS
 			return exporter.ExportSpans(ctx, spans)
 		})
 	}
-	if err := eg.Wait(); err != nil {
-		log.Fatal(err)
-	}
-	return nil
+	return eg.Wait()
 }
 
 func (m MuxExporter) Shutdown(ctx context.Context) error {