diff --git a/cli/command/telemetry_utils.go b/cli/command/telemetry_utils.go index 905f8a4614c0..680415b63770 100644 --- a/cli/command/telemetry_utils.go +++ b/cli/command/telemetry_utils.go @@ -9,6 +9,7 @@ import ( "github.com/docker/cli/cli/version" "github.com/pkg/errors" "github.com/spf13/cobra" + "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/metric" ) @@ -94,7 +95,9 @@ func startCobraCommandTimer(mp metric.MeterProvider, attrs []attribute.KeyValue) metric.WithAttributes(cmdStatusAttrs...), ) if mp, ok := mp.(MeterProvider); ok { - mp.ForceFlush(ctx) + if err := mp.ForceFlush(ctx); err != nil { + otel.Handle(err) + } } } } diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index 6e28a99ebc51..a8ef0cd63d10 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -360,7 +360,9 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error { mp := dockerCli.MeterProvider() if mp, ok := mp.(command.MeterProvider); ok { - defer mp.Shutdown(ctx) + if err := mp.Shutdown(ctx); err != nil { + otel.Handle(err) + } } else { fmt.Fprint(dockerCli.Err(), "Warning: Unexpected OTEL error, metrics may not be flushed") }