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 <milas.bowman@docker.com>
This commit is contained in:
Milas Bowman 2023-06-15 12:43:15 -04:00 committed by GitHub
parent 2efea2e9f5
commit ff3984e609
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View File

@ -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(

View File

@ -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 {